feat(admin): configure model providers from database
This commit is contained in:
@@ -63,7 +63,7 @@ export function adminProofSigningSecret(
|
||||
): string {
|
||||
const secret = env.BETTER_AUTH_USER_SECRET?.trim();
|
||||
if (!secret || secret.length < 32) {
|
||||
throw new AdminAuthorizationError("MFA 服务暂时不可用", 503);
|
||||
throw new AdminAuthorizationError("安全验证服务暂时不可用", 503);
|
||||
}
|
||||
return secret;
|
||||
}
|
||||
@@ -86,27 +86,11 @@ export function readAdminMfaStatus(
|
||||
return resolveAdminMfaStatus(session.requiresMfa, enrolled, verified);
|
||||
}
|
||||
|
||||
export function requireAdminMfaIfRequired(
|
||||
request: Request,
|
||||
session: AdminSession,
|
||||
): AdminMfaStatus {
|
||||
const status = readAdminMfaStatus(request, session);
|
||||
if (!status.required) return status;
|
||||
if (!status.enrolled) {
|
||||
throw new AdminAuthorizationError("此管理员角色必须先启用 MFA", 403);
|
||||
}
|
||||
if (!status.verified) {
|
||||
throw new AdminAuthorizationError("请先完成当前会话的 MFA 验证", 403);
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
||||
export async function requireHighRiskAdminMutation(
|
||||
request: Request,
|
||||
permission: AdminPermission,
|
||||
): Promise<AdminSession> {
|
||||
const session = await requireAdminMutation(request, permission);
|
||||
requireAdminMfaIfRequired(request, session);
|
||||
|
||||
const origin = new URL(request.url).origin;
|
||||
const valid = verifyHighRiskAdminProof(
|
||||
|
||||
Reference in New Issue
Block a user