fix(housekeeping): harden people account workflows

This commit is contained in:
Simo committed 2026-08-29 13:13:04 +02:00
1 parent e1b31ff773
commit 25b76437ff
41 files changed
+2657 -838

No files matched your search

+11 -21
View File
@@ -3,7 +3,7 @@
import { and, eq } from "drizzle-orm";
import { z } from "zod";
import {
createLegacyPeopleMutationContext,
createPeopleMutationInvocation,
type PeopleMutationOperation,
peopleMutationService,
} from "@/features/housekeeping/domains/people/services/mutations";
@@ -116,16 +116,11 @@ const legacyMessages: Partial<Record<PeopleMutationOperation, string>> = {
async function executeLegacy(
ctx: { session: { user: { id: number; username: string; rank: number } } },
permission: string,
operation: PeopleMutationOperation,
input: unknown,
) {
const result = await peopleMutationService.execute(
createLegacyPeopleMutationContext(
ctx.session.user,
permission,
createCorrelationId(),
),
createPeopleMutationInvocation(ctx.session.user, createCorrelationId()),
operation,
input,
);
@@ -148,7 +143,7 @@ export const updateUser = adminAction(
{ permission: PERMS.USERS_EDIT, schema: updateUserInput },
async (ctx) => {
const { id: userId, ...fields } = ctx.data;
await executeLegacy(ctx, PERMS.USERS_EDIT, "user.update", {
await executeLegacy(ctx, "user.update", {
userId,
fields,
});
@@ -159,7 +154,7 @@ export const updateUser = adminAction(
export const banUser = adminAction(
{ permission: PERMS.USERS_BAN, schema: banUserSchema },
async (ctx) => {
await executeLegacy(ctx, PERMS.USERS_BAN, "user.ban", ctx.data);
await executeLegacy(ctx, "user.ban", ctx.data);
return actionOk();
},
);
@@ -169,7 +164,7 @@ const userIdSchema = z.object({ userId: z.coerce.number().int().positive() });
export const unbanUser = adminAction(
{ permission: PERMS.USERS_BAN, schema: userIdSchema },
async (ctx) => {
await executeLegacy(ctx, PERMS.USERS_BAN, "user.unban", ctx.data);
await executeLegacy(ctx, "user.unban", ctx.data);
return actionOk();
},
);
@@ -177,12 +172,7 @@ export const unbanUser = adminAction(
export const resetPassword = adminAction(
{ permission: PERMS.USERS_RESET_PASSWORD, schema: userIdSchema },
async (ctx) => {
const snapshot = await executeLegacy(
ctx,
PERMS.USERS_RESET_PASSWORD,
"user.reset-password",
ctx.data,
);
const snapshot = await executeLegacy(ctx, "user.reset-password", ctx.data);
return actionOk({
newPassword: String(snapshot.output?.newPassword ?? ""),
});
@@ -192,7 +182,7 @@ export const resetPassword = adminAction(
export const disconnectUser = adminAction(
{ permission: PERMS.USERS_EDIT, schema: userIdSchema },
async (ctx) => {
await executeLegacy(ctx, PERMS.USERS_EDIT, "user.disconnect", ctx.data);
await executeLegacy(ctx, "user.disconnect", ctx.data);
return actionOk();
},
);
@@ -203,7 +193,7 @@ const alertUserSchema = userIdSchema.extend({
export const alertUser = adminAction(
{ permission: PERMS.USERS_EDIT, schema: alertUserSchema },
async (ctx) => {
await executeLegacy(ctx, PERMS.USERS_EDIT, "user.alert", ctx.data);
await executeLegacy(ctx, "user.alert", ctx.data);
return actionOk();
},
);
@@ -214,7 +204,7 @@ const muteSchema = userIdSchema.extend({
export const muteUser = adminAction(
{ permission: PERMS.USERS_EDIT, schema: muteSchema },
async (ctx) => {
await executeLegacy(ctx, PERMS.USERS_EDIT, "user.mute", ctx.data);
await executeLegacy(ctx, "user.mute", ctx.data);
return actionOk();
},
);
@@ -222,7 +212,7 @@ export const muteUser = adminAction(
export const unmuteUser = adminAction(
{ permission: PERMS.USERS_EDIT, schema: userIdSchema },
async (ctx) => {
await executeLegacy(ctx, PERMS.USERS_EDIT, "user.unmute", ctx.data);
await executeLegacy(ctx, "user.unmute", ctx.data);
return actionOk();
},
);
@@ -233,7 +223,7 @@ const sendCreditsSchema = userIdSchema.extend({
export const sendCredits = adminAction(
{ permission: PERMS.USERS_EDIT, schema: sendCreditsSchema },
async (ctx) => {
await executeLegacy(ctx, PERMS.USERS_EDIT, "user.send-currency", ctx.data);
await executeLegacy(ctx, "user.send-currency", ctx.data);
return actionOk();
},
);