diff options
| author | Mohamed Bassem <me@mbassem.com> | 2025-07-01 22:51:59 +0000 |
|---|---|---|
| committer | Mohamed Bassem <me@mbassem.com> | 2025-07-04 16:27:29 +0000 |
| commit | 545cac1967f6882780021407a474690fea3f11ed (patch) | |
| tree | c30ea2cbc05d061e6726df97baae946f3d6db920 /packages/trpc/routers/admin.ts | |
| parent | 73a0c951375d38d84cb1eaf5253b558c35882288 (diff) | |
| download | karakeep-545cac1967f6882780021407a474690fea3f11ed.tar.zst | |
feat: Add per user bookmark count quota
Diffstat (limited to 'packages/trpc/routers/admin.ts')
| -rw-r--r-- | packages/trpc/routers/admin.ts | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/packages/trpc/routers/admin.ts b/packages/trpc/routers/admin.ts index 91f4a34f..f46e17f2 100644 --- a/packages/trpc/routers/admin.ts +++ b/packages/trpc/routers/admin.ts @@ -18,8 +18,8 @@ import { } from "@karakeep/shared/queues"; import { getSearchIdxClient } from "@karakeep/shared/search"; import { - changeRoleSchema, resetPasswordSchema, + updateUserSchema, zAdminCreateUserSchema, } from "@karakeep/shared/types/admin"; @@ -331,18 +331,36 @@ export const adminAppRouter = router({ .mutation(async ({ input, ctx }) => { return createUser(input, ctx, input.role); }), - changeRole: adminProcedure - .input(changeRoleSchema) + updateUser: adminProcedure + .input(updateUserSchema) .mutation(async ({ input, ctx }) => { if (ctx.user.id == input.userId) { throw new TRPCError({ code: "BAD_REQUEST", - message: "Cannot change own role", + message: "Cannot update own user", }); } + + const updateData: Partial<typeof users.$inferInsert> = {}; + + if (input.role !== undefined) { + updateData.role = input.role; + } + + if (input.bookmarkQuota !== undefined) { + updateData.bookmarkQuota = input.bookmarkQuota; + } + + if (Object.keys(updateData).length === 0) { + throw new TRPCError({ + code: "BAD_REQUEST", + message: "No fields to update", + }); + } + const result = await ctx.db .update(users) - .set({ role: input.role }) + .set(updateData) .where(eq(users.id, input.userId)); if (!result.changes) { |
