From 4938027aa50f0745de4e5058df8e0eb2fbcdda77 Mon Sep 17 00:00:00 2001 From: wintel Date: Thu, 18 Jul 2024 21:52:02 +0800 Subject: [PATCH] =?UTF-8?q?fix=20#IADLX5=20=E4=B8=BA=E8=A7=92=E8=89=B2?= =?UTF-8?q?=E5=88=86=E9=85=8D=E6=8C=89=E9=92=AE=E6=9D=83=E9=99=90=E4=B8=8D?= =?UTF-8?q?=E8=B5=B7=E4=BD=9C=E7=94=A8=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AuthStrategies/NormalAuthStrategy.cs | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/OpenAuth.App/AuthStrategies/NormalAuthStrategy.cs b/OpenAuth.App/AuthStrategies/NormalAuthStrategy.cs index 95101c63..9fd04ba5 100644 --- a/OpenAuth.App/AuthStrategies/NormalAuthStrategy.cs +++ b/OpenAuth.App/AuthStrategies/NormalAuthStrategy.cs @@ -44,8 +44,10 @@ namespace OpenAuth.App var moduleIds = SugarClient.Queryable().Where( u => (u.Key == Define.ROLEMODULE && _userRoleIds.Contains(u.FirstId))).Select(u => u.SecondId).ToList(); + var elementIds = GetElementIds(); - return SugarClient.Queryable().Where(m =>moduleIds.Contains(m.Id)).Includes(x=>x.Elements).ToList(); + return SugarClient.Queryable().Where(m =>moduleIds.Contains(m.Id)) + .Includes(x=>x.Elements.Where(u=>elementIds.Contains(u.Id)).ToList()).ToList(); } } @@ -54,14 +56,24 @@ namespace OpenAuth.App { get { - var elementIds = SugarClient.Queryable().Where( - u => - (u.Key == Define.ROLEELEMENT && _userRoleIds.Contains(u.FirstId))).Select(u => u.SecondId).ToList(); + var elementIds = GetElementIds(); var usermoduleelements = SugarClient.Queryable().Where(u => elementIds.Contains(u.Id)); return usermoduleelements.ToList(); } } + /// + /// 获取角色可访问的菜单Id + /// + /// + private List GetElementIds() + { + var elementIds = SugarClient.Queryable().Where( + u => + (u.Key == Define.ROLEELEMENT && _userRoleIds.Contains(u.FirstId))).Select(u => u.SecondId).ToList(); + return elementIds; + } + public List Roles { get { return SugarClient.Queryable().Where(u => _userRoleIds.Contains(u.Id)).ToList(); }