parent
a913ebe2b5
commit
86aed90177
|
@ -139,5 +139,21 @@ namespace MECF.Framework.Common.Account.Extends
|
|||
|
||||
#endregion
|
||||
|
||||
#region Methods
|
||||
|
||||
/// <summary>
|
||||
/// 获取指定项目的权限。
|
||||
/// </summary>
|
||||
/// <param name="name"></param>
|
||||
/// <returns></returns>
|
||||
public MenuPermissionEnum GetPermission(string name)
|
||||
{
|
||||
if (PermissionControlItems.TryGetValue(name, out var permissionEnum))
|
||||
return permissionEnum;
|
||||
|
||||
return MenuPermissionEnum.MP_NONE;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.ServiceModel.Description;
|
||||
using System.Text;
|
||||
using System.Xml.Linq;
|
||||
using Aitex.Core.RT.Log;
|
||||
|
@ -91,25 +90,47 @@ namespace MECF.Framework.Common.Account.Extends
|
|||
var strAutoLogoutTime = roleNode.Attribute("logouttime").Value;
|
||||
int.TryParse(strAutoLogoutTime, out var logoutTime);
|
||||
var isAutoLogout = ((strIsAutoLogout == "1"));
|
||||
|
||||
|
||||
var strBuildIn = roleNode.Attribute("buildin")?.Value ?? "false";
|
||||
if (!bool.TryParse(strBuildIn, out var isBuildIn))
|
||||
isBuildIn = false;
|
||||
// ID为0 ~ 3的角色强制为系统内置角色,禁止删除
|
||||
// ID为0 ~ 3的角色强制为系统内置角色,禁止删除
|
||||
if (strRoleId is "0" or "1" or "2" or "3")
|
||||
isBuildIn = true;
|
||||
|
||||
var strDescription = roleNode.Attribute("description")?.Value ?? "";
|
||||
|
||||
|
||||
// 旧版的权限保存方式为字符串形式,新版更改为<Perm />节点列表。
|
||||
// 为兼容旧格式,此处应该判断roleNode节点中的内容,将旧版自动转换为PermissionControlItem列表
|
||||
var permContent= roleNode.Value;
|
||||
var helper = new PermissionHelper();
|
||||
helper.ParsePermission(permContent);
|
||||
var role = new Role(strRoleId, strRoleName, isAutoLogout, logoutTime, helper.MenuPermissionDictionary, isBuildIn, strDescription);
|
||||
list.Add(role);
|
||||
if (roleNode.FirstNode is XText)
|
||||
{
|
||||
var permContent = roleNode.Value;
|
||||
var helper = new PermissionHelper();
|
||||
helper.ParsePermission(permContent);
|
||||
var role = new Role(strRoleId, strRoleName, isAutoLogout, logoutTime,
|
||||
helper.MenuPermissionDictionary, isBuildIn, strDescription);
|
||||
list.Add(role);
|
||||
}
|
||||
else
|
||||
{
|
||||
var permList = new Dictionary<string, MenuPermissionEnum>();
|
||||
foreach (var xe in roleNode.Elements("Perm"))
|
||||
{
|
||||
var permName = xe.Attribute("name")?.Value;
|
||||
var strPermValue = xe.Attribute("value")?.Value ?? "1";
|
||||
if (!int.TryParse(strPermValue, out var permValue))
|
||||
permValue = (int)MenuPermissionEnum.MP_NONE;
|
||||
|
||||
if (!string.IsNullOrEmpty(permName))
|
||||
permList[permName] = (MenuPermissionEnum)permValue;
|
||||
}
|
||||
|
||||
var role = new Role(strRoleId, strRoleName, isAutoLogout, logoutTime,
|
||||
permList, isBuildIn, strDescription);
|
||||
list.Add(role);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
var roleAdmin = new Role("-1", "Administrators", true, 20, null, true, null)
|
||||
{
|
||||
IsSuper = true
|
||||
|
|
|
@ -84,12 +84,7 @@ namespace MECF.Framework.UI.Client.CenterViews.Configs.Roles
|
|||
foreach (var role in roles)
|
||||
{
|
||||
var ri = new RoleItem(role);
|
||||
|
||||
// 从Role的权限字串创建权限列表。
|
||||
var permHelper = new PermissionHelper();
|
||||
permHelper.ParsePermission(role.PermissionContent);
|
||||
|
||||
var headerPerm = RolePermissionMapper.FromMenuPermissionEnum(permHelper.GetPermissionByID("Header"));
|
||||
var headerPerm = RolePermissionMapper.FromMenuPermissionEnum(role.PermissionControlItems["Header"]);
|
||||
var mp = new PermissionControlItem("Header", headerPerm, "Header");
|
||||
|
||||
ri.AddMenuInfo(mp);
|
||||
|
@ -102,7 +97,7 @@ namespace MECF.Framework.UI.Client.CenterViews.Configs.Roles
|
|||
var appName = topMenuItem.ResKey + "." + subMenuItem.ResKey;
|
||||
var id = subMenuItem.MenuID;
|
||||
var appPerm = RolePermissionMapper.FromMenuPermissionEnum(
|
||||
permHelper.GetPermissionByID(id));
|
||||
role.GetPermission(id));
|
||||
var perm = new PermissionControlItem(appName, appPerm, id);
|
||||
ri.AddMenuInfo(perm);
|
||||
}
|
||||
|
@ -111,7 +106,7 @@ namespace MECF.Framework.UI.Client.CenterViews.Configs.Roles
|
|||
foreach (var recipeInfo in _recipeColumnPermSource)
|
||||
{
|
||||
var recipePerm = RolePermissionMapper.FromMenuPermissionEnum(
|
||||
permHelper.GetPermissionByID(recipeInfo.Name));
|
||||
role.GetPermission(recipeInfo.Name));
|
||||
var perm = new PermissionControlItem(recipeInfo.Name, recipePerm);
|
||||
ri.AddRecipeInfo(perm);
|
||||
}
|
||||
|
@ -119,7 +114,7 @@ namespace MECF.Framework.UI.Client.CenterViews.Configs.Roles
|
|||
foreach (var stepInfo in _recipeStepPermSource)
|
||||
{
|
||||
var stepPerm = RolePermissionMapper.FromMenuPermissionEnum(
|
||||
permHelper.GetPermissionByID(stepInfo.Name));
|
||||
role.GetPermission(stepInfo.Name));
|
||||
var perm = new PermissionControlItem(stepInfo.Name, stepPerm);
|
||||
ri.AddStepInfo(perm);
|
||||
}
|
||||
|
@ -127,7 +122,7 @@ namespace MECF.Framework.UI.Client.CenterViews.Configs.Roles
|
|||
foreach (var contentInfo in _contentPermSource)
|
||||
{
|
||||
var contentPerm = RolePermissionTrueFalseMapper.FromMenuPermissionEnum(
|
||||
permHelper.GetPermissionByID(contentInfo.Name));
|
||||
role.GetPermission(contentInfo.Name));
|
||||
var perm = new PermissionControlItem(contentInfo.Name, contentPerm, description:contentInfo.Description);
|
||||
|
||||
ri.AddContentInfo(perm);
|
||||
|
|
Loading…
Reference in New Issue