update:删除原先获取角色权限得代码

This commit is contained in:
2021-07-01 15:44:17 +08:00
parent 9d04976276
commit 5a8c63b096
15 changed files with 26 additions and 191 deletions

View File

@@ -7,7 +7,6 @@ namespace Ewide.Core.Service
{
Task DeleteUserDataScopeListByOrgIdList(List<string> orgIdList);
Task DeleteUserDataScopeListByUserId(string userId);
Task<List<string>> GetUserDataScopeIdList(string userId);
Task GrantData(UpdateUserInput input);
}
}

View File

@@ -7,7 +7,6 @@ namespace Ewide.Core.Service
{
Task DeleteUserRoleListByRoleId(string roleId);
Task DeleteUserRoleListByUserId(string userId);
Task<List<string>> GetUserRoleDataScopeIdList(string userId, string orgId);
Task<List<string>> GetUserRoleIdList(string userId);
Task GrantRole(UpdateUserInput input);
}

View File

@@ -13,8 +13,6 @@ namespace Ewide.Core.Service
Task ExportUser([FromQuery] UserInput input);
Task<dynamic> GetUser([FromQuery] QueryUserInput input);
Task<dynamic> GetUserById(string userId);
Task<List<string>> GetUserDataScopeIdList();
Task<List<string>> GetUserDataScopeIdList(string userId);
Task<dynamic> GetUserOwnData([FromQuery] QueryUserInput input);
Task<dynamic> GetUserOwnArea([FromQuery] QueryUserInput input);
Task<dynamic> GetUserOwnRole([FromQuery] QueryUserInput input);

View File

@@ -63,26 +63,6 @@ namespace Ewide.Core.Service
}
/// <summary>
/// 获取用户的数据范围Id集合
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
public async Task<List<string>> GetUserDataScopeIdList(string userId)
{
var areaList = await _sysUserAreaRep.DetachedEntities.Where(u => u.SysUserId == userId).Select(u => u.AreaCode).ToListAsync();
//用户自定义的区域权限所对应的全部组织机构id
List<string> areaDataScopeIdList = new List<string>();
foreach (var areaNumberCode in areaList)
{
areaDataScopeIdList.AddRange(await _sysOrgRep.DetachedEntities.Where(p => p.AreaCode.StartsWith(areaNumberCode)).Select(p => p.Id).ToListAsync());
} //用户自定义的组织权限
var orgIdList = await _sysUserDataScopeRep.DetachedEntities
.Where(u => u.SysUserId == userId)
.Select(u => u.SysOrgId).ToListAsync();
return areaDataScopeIdList.Concat(orgIdList).Distinct().ToList();
}
/// <summary>
/// 根据机构Id集合删除对应的用户-数据范围关联信息
/// </summary>

View File

@@ -57,23 +57,6 @@ namespace Ewide.Core.Service
});
}
/// <summary>
/// 获取用户所有角色的数据范围组织机构Id集合
/// </summary>
/// <param name="userId"></param>
/// <param name="orgId"></param>
/// <returns></returns>
public async Task<List<string>> GetUserRoleDataScopeIdList(string userId, string orgId)
{
var roleIdList = await GetUserRoleIdList(userId);
// 获取这些角色对应的数据范围
if (roleIdList.Count > 0)
return await _sysRoleService.GetUserDataScopeIdList(roleIdList, orgId);
return roleIdList;
}
/// <summary>
/// 根据角色Id删除对应的用户-角色表关联信息
/// </summary>

View File

@@ -72,7 +72,7 @@ namespace Ewide.Core.Service
var pid = input.SysEmpParam.OrgId;
var sysEmpRep = Db.GetRepository<SysEmp>();
var dataScopes = await GetUserDataScopeIdList(_userManager.UserId);
var dataScopes = await _userManager.GetUserAllDataScopeList();
var users = await _sysUserRep.DetachedEntities
.Join(sysEmpRep.DetachedEntities, u => u.Id, e => e.Id, (u, e) => new { u, e })
.Join(_sysOrgRep.DetachedEntities, n => n.e.OrgId, o => o.Id, (n, o) => new { n, o })
@@ -411,47 +411,6 @@ namespace Ewide.Core.Service
await user.InsertAsync();
}
/// <summary>
/// 获取用户数据范围机构Id集合并缓存
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
[NonAction]
[UnitOfWork]
public async Task<List<string>> GetUserDataScopeIdList(string userId)
{
var dataScopes = await _sysCacheService.GetDataScope(userId); // 先从缓存里面读取
if (dataScopes == null || dataScopes.Count < 1)
{
var orgId = await _sysEmpService.GetEmpOrgId(userId);
// 获取该用户对应的数据范围集合
var userDataScopeIdListForUser = await _sysUserDataScopeService.GetUserDataScopeIdList(userId);
// 获取该用户的角色对应的数据范围集合
var userDataScopeIdListForRole = await _sysUserRoleService.GetUserRoleDataScopeIdList(userId, orgId);
dataScopes = userDataScopeIdListForUser.Concat(userDataScopeIdListForRole).Distinct().ToList(); // 并集
#if DEBUG
#else
await _sysCacheService.SetDataScope(userId, dataScopes); // 缓存结果
#endif
}
return dataScopes;
}
/// <summary>
/// 获取用户数据范围机构Id集合
/// </summary>
/// <returns></returns>
[NonAction]
public async Task<List<string>> GetUserDataScopeIdList()
{
var userId = _userManager.UserId;
var dataScopes = await GetUserDataScopeIdList(userId);
return dataScopes;
}
/// <summary>
/// 检查普通用户数据范围
@@ -463,7 +422,7 @@ namespace Ewide.Core.Service
// 如果当前用户不是超级管理员,则进行数据范围校验
if (!_userManager.SuperAdmin)
{
var dataScopes = await GetUserDataScopeIdList(_userManager.UserId);
var dataScopes = await _userManager.GetUserAllDataScopeList();
if (dataScopes == null || (userParam.SysEmpParam.OrgId != null && !dataScopes.Contains(userParam.SysEmpParam.OrgId)))
throw Oops.Oh(ErrorCode.D1013);
}