fix(admin): record audit clears and passkey 2fa status

This commit is contained in:
shuaiplus
2026-07-05 23:45:18 +08:00
parent c53d71fc28
commit d028b194e7
+11 -4
View File
@@ -69,18 +69,22 @@ export async function handleAdminListUsers(
const storage = new StorageService(env.DB); const storage = new StorageService(env.DB);
const users = await storage.getAllUsers(); const users = await storage.getAllUsers();
return jsonResponse({ const data = await Promise.all(users.map(async user => {
data: users.map(user => ({ const hasTwoFactorPasskey = await storage.countAccountPasskeyCredentialsByUserId(user.id, 'twoFactor') > 0;
return {
id: user.id, id: user.id,
email: user.email, email: user.email,
name: user.name, name: user.name,
role: user.role, role: user.role,
status: user.status, status: user.status,
twoFactorEnabled: !!user.totpSecret || Boolean(user.yubikeyKey1 || user.yubikeyKey2 || user.yubikeyKey3 || user.yubikeyKey4 || user.yubikeyKey5), twoFactorEnabled: !!user.totpSecret || Boolean(user.yubikeyKey1 || user.yubikeyKey2 || user.yubikeyKey3 || user.yubikeyKey4 || user.yubikeyKey5) || hasTwoFactorPasskey,
creationDate: user.createdAt, creationDate: user.createdAt,
revisionDate: user.updatedAt, revisionDate: user.updatedAt,
object: 'user', object: 'user',
})), };
}));
return jsonResponse({
data,
object: 'list', object: 'list',
continuationToken: null, continuationToken: null,
}); });
@@ -183,6 +187,9 @@ export async function handleAdminClearAuditLogs(
} }
const storage = new StorageService(env.DB); const storage = new StorageService(env.DB);
const deleted = await storage.clearAuditLogs(); const deleted = await storage.clearAuditLogs();
await writeAuditLog(storage, actorUser.id, 'admin.audit.clear', 'auditLog', null, {
deleted,
}, request);
return jsonResponse({ object: 'auditLogClear', deleted }); return jsonResponse({ object: 'auditLogClear', deleted });
} }