Skip to content

Commit

Permalink
fix(bulk script editor): restrict to user organization
Browse files Browse the repository at this point in the history
  • Loading branch information
ajohn25 committed Aug 4, 2023
1 parent 35410cb commit 2d562dd
Show file tree
Hide file tree
Showing 6 changed files with 13 additions and 20 deletions.
5 changes: 3 additions & 2 deletions libs/gql-schema/schema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ const rootSchema = `
searchString: String!
replaceString: String!
campaignIds: [String!]!
organizationId: String!
}
input ContactActionInput {
Expand Down Expand Up @@ -261,7 +262,7 @@ const rootSchema = `
notices(organizationId: String): NoticePage!
campaignGroups(organizationId: String! after: Cursor, first: Int): CampaignGroupPage!
campaignNavigation(campaignId: String!): CampaignNavigation!
bulkUpdateScriptChanges(organizationId: String!, findAndReplace: BulkUpdateScriptInput!): [ScriptUpdateChange!]!
bulkUpdateScriptChanges(findAndReplace: BulkUpdateScriptInput!): [ScriptUpdateChange!]!
superadmins: [User!]
optOuts(organizationId: String!): [OptOutByCampaign!]!
isValidAttachment(fileUrl: String!): Boolean!
Expand All @@ -282,7 +283,7 @@ const rootSchema = `
saveCampaignGroups(organizationId: String!, campaignGroups: [CampaignGroupInput!]!): [CampaignGroup!]!
deleteCampaignGroup(organizationId: String!, campaignGroupId: String!): Boolean!
filterLandlines(id:String!): Campaign
bulkUpdateScript(organizationId:String!, findAndReplace: BulkUpdateScriptInput!): [ScriptUpdateResult]
bulkUpdateScript(findAndReplace: BulkUpdateScriptInput!): [ScriptUpdateResult]
deleteJob(campaignId:String!, id:String!): JobRequest
copyCampaign(id: String!): Campaign
copyCampaigns(sourceCampaignId: String!, quantity: Int!, targetOrgId: String): [Campaign!]!
Expand Down
4 changes: 0 additions & 4 deletions libs/spoke-codegen/src/graphql/bulk-script-editor.graphql
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,9 @@ query GetCampaignsBulkScriptEditor(
}

query GetScriptUpdateChanges(
$organizationId: String!
$findAndReplace: BulkUpdateScriptInput!
) {
bulkUpdateScriptChanges(
organizationId: $organizationId
findAndReplace: $findAndReplace
) {
id
Expand All @@ -32,11 +30,9 @@ query GetScriptUpdateChanges(
}

mutation BulkUpdateScript(
$organizationId: String!
$findAndReplace: BulkUpdateScriptInput!
) {
bulkUpdateScript(
organizationId: $organizationId
findAndReplace: $findAndReplace
) {
campaignId
Expand Down
5 changes: 3 additions & 2 deletions src/schema.graphql
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ input BulkUpdateScriptInput {
searchString: String!
replaceString: String!
campaignIds: [String!]!
organizationId: String!
}

input ContactActionInput {
Expand Down Expand Up @@ -227,7 +228,7 @@ type RootQuery {
notices(organizationId: String): NoticePage!
campaignGroups(organizationId: String! after: Cursor, first: Int): CampaignGroupPage!
campaignNavigation(campaignId: String!): CampaignNavigation!
bulkUpdateScriptChanges(organizationId: String!, findAndReplace: BulkUpdateScriptInput!): [ScriptUpdateChange!]!
bulkUpdateScriptChanges(findAndReplace: BulkUpdateScriptInput!): [ScriptUpdateChange!]!
superadmins: [User!]
optOuts(organizationId: String!): [OptOutByCampaign!]!
isValidAttachment(fileUrl: String!): Boolean!
Expand All @@ -248,7 +249,7 @@ type RootMutation {
saveCampaignGroups(organizationId: String!, campaignGroups: [CampaignGroupInput!]!): [CampaignGroup!]!
deleteCampaignGroup(organizationId: String!, campaignGroupId: String!): Boolean!
filterLandlines(id:String!): Campaign
bulkUpdateScript(organizationId:String!, findAndReplace: BulkUpdateScriptInput!): [ScriptUpdateResult]
bulkUpdateScript(findAndReplace: BulkUpdateScriptInput!): [ScriptUpdateResult]
deleteJob(campaignId:String!, id:String!): JobRequest
copyCampaign(id: String!): Campaign
copyCampaigns(sourceCampaignId: String!, quantity: Int!, targetOrgId: String): [Campaign!]!
Expand Down
5 changes: 3 additions & 2 deletions src/server/api/lib/bulk-script-editor.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ export const getStepsToUpdate = async (
trx: Knex.Transaction,
findAndReplace: BulkUpdateScriptInput
) => {
const { searchString, campaignIds } = findAndReplace;
const { searchString, campaignIds, organizationId } = findAndReplace;
const campaignsIds = campaignIds.map((cid: string) => parseInt(cid, 10));

// Using array_to_string is easier and faster than using unnest(script_options) (https://stackoverflow.com/a/7222285)
Expand All @@ -25,7 +25,8 @@ export const getStepsToUpdate = async (
.join("campaign", "campaign_id", "campaign.id")
.whereRaw("array_to_string(script_options, '||') like ?", [
`%${searchString}%`
]);
])
.where({ organization_id: organizationId });
if (campaignsIds.length > 0) {
interactionStepsToChangeQuery = interactionStepsToChangeQuery.whereIn(
"campaign_id",
Expand Down
7 changes: 2 additions & 5 deletions src/server/api/root-mutations.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1115,11 +1115,8 @@ const rootMutations = {
return loaders.campaign.load(id);
},

bulkUpdateScript: async (
_root,
{ organizationId, findAndReplace },
{ user }
) => {
bulkUpdateScript: async (_root, { findAndReplace }, { user }) => {
const { organizationId } = findAndReplace;
await accessRequired(user, organizationId, "OWNER");

const scriptUpdatesResult = await r.knex.transaction(async (trx) => {
Expand Down
7 changes: 2 additions & 5 deletions src/server/api/root-resolvers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -442,11 +442,8 @@ const rootResolvers = {
nextCampaignId
};
},
bulkUpdateScriptChanges: async (
_root,
{ organizationId, findAndReplace },
{ user }
) => {
bulkUpdateScriptChanges: async (_root, { findAndReplace }, { user }) => {
const { organizationId } = findAndReplace;
await accessRequired(user, organizationId, "OWNER");

const steps = await r.knex.transaction((trx) => {
Expand Down

0 comments on commit 2d562dd

Please sign in to comment.