feat: 完成TikTok短剧管理后台基础功能开发
本次提交搭建了完整的后台管理系统,包含: 1. 登录认证与权限校验体系 2. 工作台、短剧、用户、角色、人员、日志等全业务模块 3. 响应式布局与通用样式组件 4. 菜单动态过滤与路由权限控制 5. 移除了README中冗余的权限管理菜单项
This commit is contained in:
22
src/utils/permission.ts
Normal file
22
src/utils/permission.ts
Normal file
@@ -0,0 +1,22 @@
|
||||
import type { AdminProfile, Permission } from '../api/types';
|
||||
|
||||
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));
|
||||
}
|
||||
Reference in New Issue
Block a user