Files
crawler-plugin/admin-frontend-vue/src/pages/account/user-delete-model.ts
T

25 lines
1.1 KiB
TypeScript

/** 用户删除确认模型(任务 51):删除确认文案 + 不可删原因,镜像 Java deleteUser 约束。 */
import type { AdminUser } from '../../types/admin'
/** 删除二次确认文案(对齐 admin.js:970 原文:半角引号、无补充句)。 */
export function deleteConfirmMessage(user: AdminUser | null | undefined): string {
const username = user?.username || ''
return `确定删除用户 "${username}" 吗?`
}
/** 返回不可删除原因;可删除时返回 undefined。 */
export function deleteBlockReason(
user: AdminUser | null | undefined,
currentUserId?: number | null,
): string | undefined {
if (!user) return '用户信息缺失,无法删除'
if (currentUserId != null && user.id === currentUserId) return '不能删除当前登录账号'
if ((user.role || '').trim().toLowerCase() === 'super_admin') return '不能删除超级管理员'
return undefined
}
/** 该用户当前是否允许删除(非缺失/非自己/非超管)。 */
export function isDeletableUser(user: AdminUser | null | undefined, currentUserId?: number | null): boolean {
return deleteBlockReason(user, currentUserId) === undefined
}