diff --git a/server/src/core/server/cron/accountDeletion.ts b/server/src/core/server/cron/accountDeletion.ts index 42f013d341..e57be6a35b 100644 --- a/server/src/core/server/cron/accountDeletion.ts +++ b/server/src/core/server/cron/accountDeletion.ts @@ -75,7 +75,7 @@ const deleteScheduledAccounts: ScheduledJobCommand = async ({ user.id, tenant.id, now, - tenant.dsa.enabled + tenant.dsa?.enabled ); // If the user has an email, then send them a confirmation that their account diff --git a/server/src/core/server/graph/mutators/Users.ts b/server/src/core/server/graph/mutators/Users.ts index 3f95e8869c..73b3d65428 100644 --- a/server/src/core/server/graph/mutators/Users.ts +++ b/server/src/core/server/graph/mutators/Users.ts @@ -189,7 +189,7 @@ export const Users = (ctx: GraphContext) => ({ input.userID, ctx.tenant.id, ctx.now, - ctx.tenant.dsa.enabled + ctx.tenant.dsa?.enabled ); }, cancelAccountDeletion: async ( diff --git a/server/src/core/server/models/settings/settings.ts b/server/src/core/server/models/settings/settings.ts index 1d99c2c9eb..d56eca99d1 100644 --- a/server/src/core/server/models/settings/settings.ts +++ b/server/src/core/server/models/settings/settings.ts @@ -2,6 +2,7 @@ import { GQLAuth, GQLAuthenticationTargetFilter, GQLCOMMENT_BODY_FORMAT, + GQLDSA_METHOD_OF_REDRESS, GQLEmailConfiguration, GQLFacebookAuthIntegration, GQLGoogleAuthIntegration, @@ -421,8 +422,14 @@ export const defaultRTEConfiguration: RTEConfiguration = { export interface DSAConfiguration { enabled: boolean; + methodOfRedress: { + method: GQLDSA_METHOD_OF_REDRESS; + }; } export const defaultDSAConfiguration: DSAConfiguration = { enabled: false, + methodOfRedress: { + method: GQLDSA_METHOD_OF_REDRESS.NONE, + }, }; diff --git a/server/src/core/server/services/comments/moderation/moderate.spec.ts b/server/src/core/server/services/comments/moderation/moderate.spec.ts index 921d061c58..e9bc849995 100644 --- a/server/src/core/server/services/comments/moderation/moderate.spec.ts +++ b/server/src/core/server/services/comments/moderation/moderate.spec.ts @@ -13,6 +13,7 @@ import moderate, { Moderate } from "./moderate"; import { GQLCOMMENT_STATUS, + GQLDSA_METHOD_OF_REDRESS, GQLUSER_ROLE, } from "coral-server/graph/schema/__generated__/types"; import { I18n } from "coral-server/services/i18n"; @@ -23,7 +24,10 @@ jest.mock("coral-server/models/action/moderation/comment"); it("requires a valid rejection reason if dsaFeatures are enabled", async () => { const tenant = createTenantFixture({ - dsa: { enabled: true }, + dsa: { + enabled: true, + methodOfRedress: { method: GQLDSA_METHOD_OF_REDRESS.NONE }, + }, }); const config = {} as Config; const story = createStoryFixture({ tenantID: tenant.id }); diff --git a/server/src/core/server/services/comments/moderation/moderate.ts b/server/src/core/server/services/comments/moderation/moderate.ts index 613bdecd4a..45e6abaff4 100644 --- a/server/src/core/server/services/comments/moderation/moderate.ts +++ b/server/src/core/server/services/comments/moderation/moderate.ts @@ -45,7 +45,7 @@ export default async function moderate( } ) { if ( - tenant.dsa.enabled && + tenant.dsa?.enabled && input.status === GQLCOMMENT_STATUS.REJECTED && !input.rejectionReason ) { diff --git a/server/src/core/server/services/comments/pipeline/phases/external.ts b/server/src/core/server/services/comments/pipeline/phases/external.ts index 93f7c8b272..bfc8103941 100644 --- a/server/src/core/server/services/comments/pipeline/phases/external.ts +++ b/server/src/core/server/services/comments/pipeline/phases/external.ts @@ -287,7 +287,7 @@ export const external: IntermediateModerationPhase = async (ctx) => { !ctx.tenant.integrations.external || ctx.tenant.integrations.external.phases.length === 0 || // (marcushaddon) DSA and external moderation are mutually exclusive for the time being - ctx.tenant.dsa.enabled + ctx.tenant.dsa?.enabled ) { return; }