🍉 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();
|
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();
|
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();
|
var maxDataScope = await db.Queryable<SysRole>().Where(u => roleIds.Contains(u.Id)).Select(u => u.DataScope).ToListAsync();
|
||||||
if (!maxDataScope.Any()) maxDataScope = [DataScopeEnum.Self];
|
if (!maxDataScope.Any()) maxDataScope = [DataScopeEnum.Self];
|
||||||
|
|
||||||
@ -327,6 +331,7 @@ public class SysAuthService : IDynamicApiController, ITransient
|
|||||||
OrgIds = orgIds,
|
OrgIds = orgIds,
|
||||||
PosIds = posIds,
|
PosIds = posIds,
|
||||||
RoleIds = roleIds,
|
RoleIds = roleIds,
|
||||||
|
MenuIds = menuIds,
|
||||||
Permissions = permissions,
|
Permissions = permissions,
|
||||||
UnauthorizedPermissions = unauthorizedPermissions,
|
UnauthorizedPermissions = unauthorizedPermissions,
|
||||||
DataScopeList = user.AccountType == AccountTypeEnum.SuperAdmin ? [DataScopeEnum.All] : maxDataScope,
|
DataScopeList = user.AccountType == AccountTypeEnum.SuperAdmin ? [DataScopeEnum.All] : maxDataScope,
|
||||||
|
|||||||
@ -52,11 +52,10 @@ public class SysMenuService : IDynamicApiController, ITransient
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var menuIdList = await GetMenuIdList();
|
|
||||||
var menuTree = await _sysMenuRep.AsQueryable()
|
var menuTree = await _sysMenuRep.AsQueryable()
|
||||||
.Where(u => u.Status == StatusEnum.Enable)
|
.Where(u => u.Status == StatusEnum.Enable)
|
||||||
.OrderBy(u => new { u.OrderNo, u.Id })
|
.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);
|
DeleteBtnFromMenuTree(menuTree);
|
||||||
return menuTree.Adapt<List<MenuOutput>>();
|
return menuTree.Adapt<List<MenuOutput>>();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -145,6 +145,11 @@ public class UserManager(
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public override List<long> PosIds => Manager?.PosIds;
|
public override List<long> PosIds => Manager?.PosIds;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 菜单Id集
|
||||||
|
/// </summary>
|
||||||
|
public override List<long> MenuIds => Manager?.MenuIds;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 权限集
|
/// 权限集
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@ -132,6 +132,11 @@ public class UserManagerDao
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public virtual List<long> PosIds { get; set; }
|
public virtual List<long> PosIds { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 菜单Id集
|
||||||
|
/// </summary>
|
||||||
|
public virtual List<long> MenuIds { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 移动端权限集
|
/// 移动端权限集
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user