diff --git a/backend/src/api/routes/users.ts b/backend/src/api/routes/users.ts index a36f849ad..aab22a75b 100644 --- a/backend/src/api/routes/users.ts +++ b/backend/src/api/routes/users.ts @@ -89,6 +89,12 @@ router.get( router.post( "/signup", + validateConfiguration({ + criteria: (configuration) => { + return configuration.users.signUp; + }, + invalidMessage: "Sign up is temporarily disabled", + }), authenticateRequest(), RateLimit.userSignup, validateRequest({ diff --git a/backend/src/constants/base-configuration.ts b/backend/src/constants/base-configuration.ts index 1ddde95eb..bf660a05e 100644 --- a/backend/src/constants/base-configuration.ts +++ b/backend/src/constants/base-configuration.ts @@ -30,6 +30,7 @@ export const BASE_CONFIGURATION: MonkeyTypes.Configuration = { apeKeySaltRounds: 5, }, users: { + signUp: false, discordIntegration: { enabled: false, }, @@ -213,6 +214,10 @@ export const CONFIGURATION_FORM_SCHEMA: ObjectSchema = { type: "object", label: "Users", fields: { + signUp: { + type: "boolean", + label: "Enabled", + }, xp: { type: "object", label: "XP", diff --git a/backend/src/types/types.d.ts b/backend/src/types/types.d.ts index ae557dc3f..87ef94b90 100644 --- a/backend/src/types/types.d.ts +++ b/backend/src/types/types.d.ts @@ -29,6 +29,7 @@ declare namespace MonkeyTypes { }; }; users: { + signUp: boolean; autoBan: { enabled: boolean; maxCount: number;