// RBAC 权限管理模块 — auto-generated
import { Router, Request, Response } from 'express';
import { authenticate, authorize } from '../middleware/auth';
import { RoleService } from '../services/role.service';
import { PermissionService } from '../services/permission.service';
const router = Router();
// 获取用户权限列表
router.get('/api/roles', authenticate, async (req: Request, res: Response) => {
const roles = await RoleService.findAll({ include: ['permissions'] });
res.json({ success: true, data: roles });
});
// 创建新角色(支持部门级继承)
router.post('/api/roles', authorize('admin'), async (req, res) => {
const { name, permissions, departmentId, inheritParent } = req.body;
const role = await RoleService.create({
name, permissions, departmentId,
inheritParent: inheritParent ?? true,
});
res.json({ success: true, data: role });
});
// 部门权限继承检查
router.get('/api/roles/:id/inherited', authenticate, async (req, res) => {
const inherited = await PermissionService.resolveInheritance(req.params.id);
res.json({ success: true, data: inherited });
});
// 更新角色权限
router.put('/api/roles/:id', authorize('admin'), async (req, res) => {
const updated = await RoleService.update(req.params.id, req.body);
res.json({ success: true, data: updated });
});
// 删除角色
router.delete('/api/roles/:id', authorize('admin'), async (req, res) => {
await RoleService.delete(req.params.id);
res.json({ success: true });
});
// 批量分配角色
router.post('/api/roles/batch-assign', authorize('admin'), async (req, res) => {
const { userIds, roleIds } = req.body;
const result = await RoleService.batchAssign(userIds, roleIds);
res.json({ success: true, assigned: result.length });
});