修复权限操作
This commit is contained in:
@@ -399,22 +399,25 @@ export async function getRoleRoutesWithPermissions(roleId: number): Promise<{
|
||||
return ids;
|
||||
};
|
||||
|
||||
// 收集所有已选中的权限ID(从当前角色的权限中)
|
||||
const collectPermissionIds = (routes: RouteInfo[]): number[] => {
|
||||
let ids: number[] = [];
|
||||
routes.forEach(route => {
|
||||
if (route.permissions) {
|
||||
ids = ids.concat(route.permissions.map(p => p.id));
|
||||
}
|
||||
if (route.children) {
|
||||
ids = ids.concat(collectPermissionIds(route.children));
|
||||
}
|
||||
});
|
||||
return ids;
|
||||
};
|
||||
// v3.5: 修复BUG - 删除了 collectPermissionIds 函数
|
||||
// BUG说明:从路由元数据收集权限ID是错误的,因为路由的permissions数组包含的仅仅是权限定义,
|
||||
// 而不是实际授权状态。实际授权状态应该从 `/api/v3/rbac/role-permissions` 接口获取。
|
||||
//
|
||||
// 之前的错误实现:
|
||||
// const collectPermissionIds = (routes: RouteInfo[]): number[] => {
|
||||
// let ids: number[] = [];
|
||||
// routes.forEach(route => {
|
||||
// if (route.permissions) {
|
||||
// ids = ids.concat(route.permissions.map(p => p.id));
|
||||
// }
|
||||
// });
|
||||
// return ids;
|
||||
// };
|
||||
//
|
||||
// 修复方案:返回空数组,由调用方使用 getRolePermissions() 获取实际授权数据
|
||||
|
||||
const selectedRouteIds = collectRouteIds(mappedRoutes);
|
||||
const selectedPermissionIds = collectPermissionIds(mappedRoutes);
|
||||
const selectedPermissionIds: number[] = []; // v3.5: 修复BUG - 返回空数组
|
||||
|
||||
return {
|
||||
routes: mappedRoutes,
|
||||
|
||||
Reference in New Issue
Block a user