增加功能:MongoDB数据库支持角色对应用程序授权功能 #IRY3N
This commit is contained in:
parent
006c91c198
commit
c262c09c5f
|
@ -0,0 +1,39 @@
|
|||
using MongoDB.Driver;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace Bootstrap.DataAccess.MongoDB
|
||||
{
|
||||
public class App : DataAccess.App
|
||||
{
|
||||
/// <summary>
|
||||
/// 根据角色ID指派部门
|
||||
/// </summary>
|
||||
/// <param name="roleId"></param>
|
||||
/// <returns></returns>
|
||||
public override IEnumerable<DataAccess.App> RetrievesByRoleId(string roleId)
|
||||
{
|
||||
var apps = DictHelper.RetrieveApps().Where(d => d.Key.CompareTo("0") > 0).Select(d => new DataAccess.App()
|
||||
{
|
||||
Id = d.Key,
|
||||
AppName = d.Value
|
||||
}).ToList();
|
||||
var role = RoleHelper.Retrieves().Cast<Role>().FirstOrDefault(r => r.Id == roleId);
|
||||
apps.ForEach(p => p.Checked = (role != null && role.Apps.Contains(p.Id)) ? "checked" : "");
|
||||
return apps;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 根据角色ID以及选定的App ID,保到角色应用表
|
||||
/// </summary>
|
||||
/// <param name="roleId"></param>
|
||||
/// <param name="appIds"></param>
|
||||
/// <returns></returns>
|
||||
public override bool SaveByRoleId(string roleId, IEnumerable<string> appIds)
|
||||
{
|
||||
var ret = DbManager.Roles.UpdateOne(md => md.Id == roleId, Builders<Role>.Update.Set(md => md.Apps, appIds));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -14,6 +14,11 @@ namespace Bootstrap.DataAccess.MongoDB
|
|||
/// </summary>
|
||||
public IEnumerable<string> Menus { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 此角色关联的所有应用程序
|
||||
/// </summary>
|
||||
public IEnumerable<string> Apps { get; set; }
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
|
@ -38,7 +43,8 @@ namespace Bootstrap.DataAccess.MongoDB
|
|||
{
|
||||
RoleName = p.RoleName,
|
||||
Description = p.Description,
|
||||
Menus = new List<string>()
|
||||
Menus = new List<string>(),
|
||||
Apps = new List<string>()
|
||||
});
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -25,7 +25,8 @@
|
|||
"5bd7b8445fa31256f77e4ba2",
|
||||
"5bd9b3d868aa001661776f56",
|
||||
"5bd7b8445fa31256f77e4ba4"
|
||||
]
|
||||
],
|
||||
"Apps": []
|
||||
},
|
||||
{
|
||||
"_id": ObjectId("5bd7cc105fa31256f77e4eb8"),
|
||||
|
@ -45,6 +46,7 @@
|
|||
"5bd7b8445fa31256f77e4ba2",
|
||||
"5bd9b3d868aa001661776f56",
|
||||
"5bd7b8445fa31256f77e4ba4"
|
||||
]
|
||||
],
|
||||
"Apps": []
|
||||
}
|
||||
]
|
||||
|
|
Loading…
Reference in New Issue