Просмотр исходного кода

😁角色列表接口增加权限控制(只能选择自己创建的角色)

zuohuaijun 2 лет назад
Родитель
Сommit
f64f2213d1

+ 4 - 5
Admin.NET/Admin.NET.Core/Service/Pos/SysPosService.cs

@@ -67,13 +67,12 @@ public class SysPosService : IDynamicApiController, ITransient
     [DisplayName("更新职位")]
     public async Task UpdatePos(UpdatePosInput input)
     {
-        var sysPos = await _sysPosRep.GetFirstAsync(u => u.Name == input.Name && u.Code == input.Code && u.Id != input.Id);
-        if (sysPos != null)
+        var isExist = await _sysPosRep.IsAnyAsync(u => u.Name == input.Name && u.Code == input.Code && u.Id != input.Id);
+        if (isExist)
             throw Oops.Oh(ErrorCodeEnum.D6000);
 
-        // 获取当前职位信息
-        var currentPos = await _sysPosRep.GetByIdAsync(input.Id) ?? throw Oops.Oh(ErrorCodeEnum.D6003);
-        if (!_userManager.SuperAdmin && currentPos.CreateUserId != _userManager.UserId)
+        var sysPos = await _sysPosRep.GetByIdAsync(input.Id) ?? throw Oops.Oh(ErrorCodeEnum.D6003);
+        if (!_userManager.SuperAdmin && sysPos.CreateUserId != _userManager.UserId)
             throw Oops.Oh(ErrorCodeEnum.D6002);
 
         await _sysPosRep.AsUpdateable(input.Adapt<SysPos>()).IgnoreColumns(true).ExecuteCommandAsync();

+ 3 - 1
Admin.NET/Admin.NET.Core/Service/Role/SysRoleService.cs

@@ -63,7 +63,9 @@ public class SysRoleService : IDynamicApiController, ITransient
     [DisplayName("获取角色列表")]
     public async Task<List<RoleOutput>> GetList()
     {
-        return await _sysRoleRep.AsQueryable().OrderBy(u => u.OrderNo).Select<RoleOutput>().ToListAsync();
+        return await _sysRoleRep.AsQueryable()
+            .WhereIF(!_userManager.SuperAdmin, u => u.CreateUserId == _userManager.UserId) // 若非超管,则只显示自己创建的角色
+            .OrderBy(u => u.OrderNo).Select<RoleOutput>().ToListAsync();
     }
 
     /// <summary>