update:删除原先获取角色权限得代码
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user