import type { AdminInfo } from './types'; const TOKEN_KEY = 'admin_token'; const ADMIN_KEY = 'admin_info'; export function setAuth(token: string, admin: AdminInfo): void { localStorage.setItem(TOKEN_KEY, token); localStorage.setItem(ADMIN_KEY, JSON.stringify(admin)); } export function getToken(): string | null { if (typeof window === 'undefined') return null; return localStorage.getItem(TOKEN_KEY); } export function getAdmin(): AdminInfo | null { if (typeof window === 'undefined') return null; const s = localStorage.getItem(ADMIN_KEY); return s ? (JSON.parse(s) as AdminInfo) : null; } export function clearAuth(): void { localStorage.removeItem(TOKEN_KEY); localStorage.removeItem(ADMIN_KEY); } export function isSuperAdmin(): boolean { return getAdmin()?.role === 'super_admin'; } /** 当前 admin 是否有权做某操作(super_admin 恒可;否则角色需在 allowed 内)。与后端 require_role 对齐。 */ export function canDo(allowed: string[]): boolean { const role = getAdmin()?.role; return role === 'super_admin' || (role != null && allowed.includes(role)); }