Browse Source

!725 修复给普通账号分配(账号管理)菜单权限后,此时数据权限只有二级主体的权限,却可以通过点击一级主体看到一级主体下所有的账号
Merge pull request !725 from 虫虫虫虫虫/next

zuohuaijun 2 years ago
parent
commit
71553a7746
1 changed files with 13 additions and 2 deletions
  1. 13 2
      Admin.NET/Admin.NET.Core/Service/User/SysUserService.cs

+ 13 - 2
Admin.NET/Admin.NET.Core/Service/User/SysUserService.cs

@@ -45,8 +45,19 @@ public class SysUserService : IDynamicApiController, ITransient
     [DisplayName("获取用户分页列表")]
     public async Task<SqlSugarPagedList<SysUser>> Page(PageUserInput input)
     {
-        var orgList = input.OrgId > 0 ? await _sysOrgService.GetChildIdListWithSelfById(input.OrgId) :
-            _userManager.SuperAdmin ? null : await _sysOrgService.GetUserOrgIdList(); // 各管理员只能看到自己机构下的用户列表
+        //得到用户可以管理的机构Id集
+        var userCanMangeList = await _sysOrgService.GetUserOrgIdList();
+        List<long> orgList = null;
+        if (input.OrgId > 0)  //指定选择的机构查询时
+        {
+            orgList = await _sysOrgService.GetChildIdListWithSelfById(input.OrgId);
+            orgList = _userManager.SuperAdmin ? orgList : orgList.Where(t => userCanMangeList.Contains(t)).ToList();
+        }
+        else
+        {
+            // 各管理员只能看到自己机构下的用户列表
+            orgList = _userManager.SuperAdmin ? null : userCanMangeList;
+        }
 
         return await _sysUserRep.AsQueryable()
             .Where(u => u.AccountType != AccountTypeEnum.SuperAdmin)