diff --git a/server/scripts/__KT_DATABASE_MIGRATION/user-settings.ts b/server/scripts/__KT_DATABASE_MIGRATION/user-settings.ts new file mode 100644 index 000000000..4a9eb0b60 --- /dev/null +++ b/server/scripts/__KT_DATABASE_MIGRATION/user-settings.ts @@ -0,0 +1,15 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ + +import db from "external/mongo/db"; +import MigrateRecords from "./migrate"; +import { DEFAULT_USER_SETTINGS } from "server/router/api/v1/auth/auth"; + +function ConvertFn(c: any) { + return { userID: c.id, preferences: DEFAULT_USER_SETTINGS }; +} + +(async () => { + await MigrateRecords(db["user-settings"], "users", ConvertFn); + + process.exit(0); +})(); diff --git a/server/scripts/__KT_DATABASE_MIGRATION/users.ts b/server/scripts/__KT_DATABASE_MIGRATION/users.ts index fb8a94084..bbdca2c0c 100644 --- a/server/scripts/__KT_DATABASE_MIGRATION/users.ts +++ b/server/scripts/__KT_DATABASE_MIGRATION/users.ts @@ -30,7 +30,7 @@ function ConvertFn(c: any): PublicUserDocument { } (async () => { - await MigrateRecords(db, "users", ConvertFn); + await MigrateRecords(db.users, "users", ConvertFn); process.exit(0); })(); diff --git a/server/src/server/router/api/v1/auth/auth.ts b/server/src/server/router/api/v1/auth/auth.ts index 125ea8af7..574fd5025 100644 --- a/server/src/server/router/api/v1/auth/auth.ts +++ b/server/src/server/router/api/v1/auth/auth.ts @@ -76,9 +76,10 @@ export async function AddNewInvite(user: PublicUserDocument) { return result; } -const DEFAULT_USER_SETTINGS: UserSettings["preferences"] = { +export const DEFAULT_USER_SETTINGS: UserSettings["preferences"] = { developerMode: false, invisible: false, + contentiousContent: false, }; export function HashPassword(plaintext: string) { diff --git a/server/src/server/router/api/v1/users/_userID/settings/router.ts b/server/src/server/router/api/v1/users/_userID/settings/router.ts index f49826f19..78e2ac51b 100644 --- a/server/src/server/router/api/v1/users/_userID/settings/router.ts +++ b/server/src/server/router/api/v1/users/_userID/settings/router.ts @@ -51,6 +51,7 @@ router.patch( prValidate({ invisible: "*boolean", developerMode: "*boolean", + contentiousContent: "*boolean", }), async (req, res) => { const user = req[SYMBOL_TachiData]!.requestedUser!; @@ -58,6 +59,7 @@ router.patch( const preferences = { invisible: req.body.invisible, developerMode: req.body.developerMode, + contentiousContent: req.body.contentiousContent, }; DeleteUndefinedProps(preferences);