fix(#I120CR): 修复菜单授权问题

#Comment
comment #I120CR

#Issue
link https://gitee.com/LongbowEnterprise/dashboard/issues?id=I120CR
This commit is contained in:
Argo Zhang 2019-09-11 15:10:02 +08:00
parent c6a741ebb4
commit 63948e970b
No known key found for this signature in database
GPG Key ID: 152E398953DDF19F
2 changed files with 6 additions and 3 deletions

View File

@ -1,4 +1,5 @@
using MongoDB.Driver;
using Longbow.Configuration;
using MongoDB.Driver;
using System;
using System.Collections.Generic;
using System.Linq;
@ -50,7 +51,8 @@ namespace Bootstrap.Client.DataAccess.MongoDB
public override IEnumerable<string> RetrievesByUrl(string url)
{
var menu = DbManager.Menus.Find(md => md.Url.StartsWith(url)).FirstOrDefault();
var ret = RoleHelper.Retrieves().Where(md => md.Menus.Any(m => m == menu.Id)).Select(m => m.RoleName).ToList();
var appId = ConfigurationManager.GetValue("AppId", "2");
var ret = RoleHelper.Retrieves().Where(md => md.Menus.Any(m => m == menu.Id) && md.Apps.Any(m => m == appId)).Select(m => m.RoleName).ToList();
if (!ret.Any(r => r.Equals("Administrators", StringComparison.OrdinalIgnoreCase))) ret.Add("Administrators");
return ret;
}

View File

@ -1,4 +1,5 @@
using Bootstrap.Security.DataAccess;
using Longbow.Configuration;
using System.Collections.Generic;
namespace Bootstrap.Client.DataAccess
@ -21,6 +22,6 @@ namespace Bootstrap.Client.DataAccess
/// 从Navigators -> GroupNavigatorRole -> Role查查询某个用户所拥有的角色
/// </summary>
/// <returns></returns>
public virtual IEnumerable<string> RetrievesByUrl(string url) => DbHelper.RetrieveRolesByUrl(url);
public virtual IEnumerable<string> RetrievesByUrl(string url) => DbHelper.RetrieveRolesByUrl(url, ConfigurationManager.GetValue("AppId", "2"));
}
}