|
@@ -42,9 +42,11 @@ public class SysRoleService : IDynamicApiController, ITransient
|
|
|
[DisplayName("获取角色分页列表")]
|
|
[DisplayName("获取角色分页列表")]
|
|
|
public async Task<SqlSugarPagedList<SysRole>> Page(PageRoleInput input)
|
|
public async Task<SqlSugarPagedList<SysRole>> Page(PageRoleInput input)
|
|
|
{
|
|
{
|
|
|
|
|
+ // 当前用户已拥有的角色集合
|
|
|
|
|
+ var roleIdList = _userManager.SuperAdmin ? new List<long>() : await _sysUserRoleService.GetUserRoleIdList(_userManager.UserId);
|
|
|
return await _sysRoleRep.AsQueryable()
|
|
return await _sysRoleRep.AsQueryable()
|
|
|
.WhereIF(!_userManager.SuperAdmin, u => u.TenantId == _userManager.TenantId) // 若非超管,则只能操作本租户的角色
|
|
.WhereIF(!_userManager.SuperAdmin, u => u.TenantId == _userManager.TenantId) // 若非超管,则只能操作本租户的角色
|
|
|
- .WhereIF(!_userManager.SuperAdmin && !_userManager.SysAdmin, u => u.CreateUserId == _userManager.UserId) // 若非超管且非系统管理员,则只能操作自己创建的角色
|
|
|
|
|
|
|
+ .WhereIF(!_userManager.SuperAdmin && !_userManager.SysAdmin, u => u.CreateUserId == _userManager.UserId || roleIdList.Contains(u.Id)) // 若非超管且非系统管理员,则只能操作自己创建的角色|自己拥有的角色
|
|
|
.WhereIF(!string.IsNullOrWhiteSpace(input.Name), u => u.Name.Contains(input.Name))
|
|
.WhereIF(!string.IsNullOrWhiteSpace(input.Name), u => u.Name.Contains(input.Name))
|
|
|
.WhereIF(!string.IsNullOrWhiteSpace(input.Code), u => u.Code.Contains(input.Code))
|
|
.WhereIF(!string.IsNullOrWhiteSpace(input.Code), u => u.Code.Contains(input.Code))
|
|
|
.OrderBy(u => new { u.OrderNo, u.Id })
|
|
.OrderBy(u => new { u.OrderNo, u.Id })
|