🍉 feat(Auth): 将用户菜单放入状态管理
This commit is contained in:
parent
839ff78203
commit
f7721c786b
@ -298,6 +298,10 @@ public class SysAuthService : IDynamicApiController, ITransient
|
||||
var posIds = await db.Queryable<SysPos>().InnerJoinIF<SysUserExtOrg>(user.AccountType != AccountTypeEnum.SuperAdmin, (u, a) => a.PosId == u.Id && a.UserId == user.Id).Select((u, a) => u.Id).ToListAsync();
|
||||
posIds = posIds.Concat([user.PosId]).Where(u => u != 0).ToList();
|
||||
|
||||
var menuIds = await db.Queryable<SysMenu>().InnerJoinIF<SysRoleMenu>(user.AccountType != AccountTypeEnum.SuperAdmin, (u, a) => a.MenuId == u.Id && roleIds.Contains(a.RoleId))
|
||||
.Where(u => u.Status == StatusEnum.Enable)
|
||||
.Select((u, a) => u.Id)
|
||||
.ToListAsync();
|
||||
var maxDataScope = await db.Queryable<SysRole>().Where(u => roleIds.Contains(u.Id)).Select(u => u.DataScope).ToListAsync();
|
||||
if (!maxDataScope.Any()) maxDataScope = [DataScopeEnum.Self];
|
||||
|
||||
@ -327,6 +331,7 @@ public class SysAuthService : IDynamicApiController, ITransient
|
||||
OrgIds = orgIds,
|
||||
PosIds = posIds,
|
||||
RoleIds = roleIds,
|
||||
MenuIds = menuIds,
|
||||
Permissions = permissions,
|
||||
UnauthorizedPermissions = unauthorizedPermissions,
|
||||
DataScopeList = user.AccountType == AccountTypeEnum.SuperAdmin ? [DataScopeEnum.All] : maxDataScope,
|
||||
|
||||
@ -52,11 +52,10 @@ public class SysMenuService : IDynamicApiController, ITransient
|
||||
}
|
||||
else
|
||||
{
|
||||
var menuIdList = await GetMenuIdList();
|
||||
var menuTree = await _sysMenuRep.AsQueryable()
|
||||
.Where(u => u.Status == StatusEnum.Enable)
|
||||
.OrderBy(u => new { u.OrderNo, u.Id })
|
||||
.Distinct().ToTreeAsync(u => u.Children, u => u.Pid, 0, menuIdList.Select(d => (object)d).ToArray());
|
||||
.Distinct().ToTreeAsync(u => u.Children, u => u.Pid, 0, _userManager.MenuIds.Select(d => (object)d).ToArray());
|
||||
DeleteBtnFromMenuTree(menuTree);
|
||||
return menuTree.Adapt<List<MenuOutput>>();
|
||||
}
|
||||
|
||||
@ -145,6 +145,11 @@ public class UserManager(
|
||||
/// </summary>
|
||||
public override List<long> PosIds => Manager?.PosIds;
|
||||
|
||||
/// <summary>
|
||||
/// 菜单Id集
|
||||
/// </summary>
|
||||
public override List<long> MenuIds => Manager?.MenuIds;
|
||||
|
||||
/// <summary>
|
||||
/// 权限集
|
||||
/// </summary>
|
||||
|
||||
@ -132,6 +132,11 @@ public class UserManagerDao
|
||||
/// </summary>
|
||||
public virtual List<long> PosIds { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 菜单Id集
|
||||
/// </summary>
|
||||
public virtual List<long> MenuIds { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 移动端权限集
|
||||
/// </summary>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user