ba33d517c1
后端: - 新增 Role / RolePermission 实体(自动 seed 系统角色) - PermissionService——通过 isAdmin / TenantMember 链路解析用户权限 - @Permission() 装饰器 + PermissionsGuard 守卫 - /api/permissions 和 /api/roles REST API - UserController 内联 role 检查迁移到 @Permission() - PermissionModule 全局注册 前端: - usePermissions hook——获取当前用户权限集 - PermissionGate 组件级门控 - PermissionSettingsView——角色列表+权限矩阵编辑页面 - SettingsView 新增「权限管理」Tab(仅 admin 可见) - 权限预览(26 项,7 分类) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
33 lines
631 B
TypeScript
33 lines
631 B
TypeScript
import {
|
|
Entity,
|
|
PrimaryGeneratedColumn,
|
|
Column,
|
|
CreateDateColumn,
|
|
ManyToOne,
|
|
JoinColumn,
|
|
} from 'typeorm';
|
|
import { Role } from './role.entity';
|
|
|
|
/**
|
|
* 角色-权限关联表
|
|
* 每个角色可以挂载多个权限
|
|
*/
|
|
@Entity('role_permissions')
|
|
export class RolePermission {
|
|
@PrimaryGeneratedColumn('uuid')
|
|
id: string;
|
|
|
|
@Column({ name: 'role_id' })
|
|
roleId: string;
|
|
|
|
@ManyToOne(() => Role, { onDelete: 'CASCADE' })
|
|
@JoinColumn({ name: 'role_id' })
|
|
role: Role;
|
|
|
|
@Column({ name: 'permission_key', length: 50 })
|
|
permissionKey: string;
|
|
|
|
@CreateDateColumn({ name: 'created_at' })
|
|
createdAt: Date;
|
|
}
|