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