🍉 feat(Auth): 将用户菜单放入状态管理

This commit is contained in:
喵你个汪呀 2025-09-04 12:23:17 +08:00
parent 839ff78203
commit f7721c786b
4 changed files with 16 additions and 2 deletions

View File

@ -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,

View File

@ -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>>();
}

View File

@ -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>

View File

@ -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>