1. 合并拆分的API类型定义到统一的api/interface.ts文件 2. 删除旧的api/client.ts与api/types.ts文件 3. 重构所有页面与组件的API调用方式,统一使用api/index.ts导出的接口 4. 调整组件文件结构,将分散的组件按模块整理 5. 统一类型导入路径,移除冗余的类型重复定义
23 lines
666 B
TypeScript
23 lines
666 B
TypeScript
import type { AdminProfile, Permission } from '../api';
|
|
|
|
export function getPermissionCodes(profile: AdminProfile | null) {
|
|
if (!profile) {
|
|
return [];
|
|
}
|
|
if (profile.isSuperAdmin || profile.permissions[0] === '*') {
|
|
return ['*'];
|
|
}
|
|
return (profile.permissions as Permission[]).map((permission) => permission.code);
|
|
}
|
|
|
|
export function hasPermissions(profile: AdminProfile | null, requiredPermissions?: string[]) {
|
|
if (!requiredPermissions?.length) {
|
|
return true;
|
|
}
|
|
const codes = getPermissionCodes(profile);
|
|
if (codes.includes('*')) {
|
|
return true;
|
|
}
|
|
return requiredPermissions.every((permission) => codes.includes(permission));
|
|
}
|