Skip to content

Commit 3176935

Browse files
committed
Log impersonation stop
1 parent 8d91211 commit 3176935

1 file changed

Lines changed: 22 additions & 0 deletions

File tree

apps/webapp/app/models/admin.server.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { SearchParams } from "~/routes/admin._index";
55
import {
66
clearImpersonationId,
77
commitImpersonationSession,
8+
getImpersonationId,
89
setImpersonationId,
910
} from "~/services/impersonation.server";
1011
import { requireUser } from "~/services/session.server";
@@ -243,6 +244,27 @@ export async function redirectWithImpersonation(request: Request, userId: string
243244
}
244245

245246
export async function clearImpersonation(request: Request, path: string) {
247+
const user = await requireUser(request);
248+
const targetId = await getImpersonationId(request);
249+
250+
if (targetId) {
251+
const xff = request.headers.get("x-forwarded-for");
252+
const ipAddress = extractClientIp(xff);
253+
254+
try {
255+
await prisma.impersonationAuditLog.create({
256+
data: {
257+
action: "STOP",
258+
adminId: user.id,
259+
targetId,
260+
ipAddress,
261+
},
262+
});
263+
} catch (error) {
264+
logger.error("Failed to create impersonation audit log", { error, adminId: user.id, targetId });
265+
}
266+
}
267+
246268
const session = await clearImpersonationId(request);
247269

248270
return redirect(path, {

0 commit comments

Comments
 (0)