WangDL 4dad572731 feat: add admin layout, auth, user management, and routing
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-21 17:19:58 +08:00

31 lines
947 B
TypeScript

import type { AdminRole } from '@/types/admin'
export const ADMIN_ROLE_LABELS: Record<AdminRole, string> = {
SUPER_ADMIN: '超级管理员',
ADMIN: '管理员',
OPERATIONS: '运营人员',
DEVELOPER: '开发者',
READONLY: '只读用户',
}
export const ADMIN_ROLE_COLORS: Record<AdminRole, string> = {
SUPER_ADMIN: 'red',
ADMIN: 'volcano',
OPERATIONS: 'orange',
DEVELOPER: 'blue',
READONLY: 'default',
}
export const ADMIN_ROLE_HIERARCHY: Record<AdminRole, AdminRole[]> = {
SUPER_ADMIN: ['SUPER_ADMIN', 'ADMIN', 'OPERATIONS', 'DEVELOPER', 'READONLY'],
ADMIN: ['ADMIN', 'OPERATIONS', 'DEVELOPER', 'READONLY'],
OPERATIONS: ['OPERATIONS', 'READONLY'],
DEVELOPER: ['DEVELOPER', 'READONLY'],
READONLY: ['READONLY'],
}
export function hasRole(currentRole: AdminRole | undefined, required: AdminRole): boolean {
if (!currentRole) return false
return ADMIN_ROLE_HIERARCHY[currentRole]?.includes(required) ?? false
}