using System; using System.Collections.Generic; using MECF.Framework.Common.Account.Permissions; namespace MECF.Framework.Common.Account.Extends { /// /// 角色对象。Sic系统中对于各个操作权限以“角色”为单位进行设置。 /// [Serializable] public class Role { #region Variables private string _roleId; private string _roleName; private bool _autoLogout; private int _logoutTime; private string _permissionContent; private string _description; #endregion #region Constructors /// /// 构造角色的对象实例。 /// /// 角色ID /// 角色名称 /// 是否启用超时自动注销功能 /// 自动注销的超时时间,单位秒 /// 角色权限字符串 /// 当前账户是否为系统保留账户。 /// 角色描述 private Role(string id, string name, bool isAutoLogout, int autoLogoutTime, string permString, bool isBuildIn = false, string description = "") { RoleId = id; _roleName = name; _autoLogout = isAutoLogout; _logoutTime = autoLogoutTime; _description = description; _permissionContent = permString; IsSuper = false; IsBuildIn = isBuildIn; } /// /// 构造角色的对象实例。 /// /// 角色ID /// 角色名称 /// 是否启用超时自动注销功能 /// 自动注销的超时时间,单位秒 /// 角色权限列表 /// 当前账户是否为系统保留账户。 /// 角色描述 public Role(string id, string name, bool isAutoLogout, int autoLogoutTime, Dictionary permItemList, bool isBuildIn = false, string description = "") { RoleId = id; _roleName = name; _autoLogout = isAutoLogout; _logoutTime = autoLogoutTime; _description = description; PermissionControlItems = permItemList ?? new Dictionary(); IsSuper = false; IsBuildIn = isBuildIn; } #endregion #region Properties /// /// 设置或返回角色ID。 /// public string RoleId { get => _roleId; set => _roleId = value; } /// /// 设置或返回角色名称。 /// public string RoleName { get => _roleName; set => _roleName = value; } /// /// 设置或返回是否启用超时自动注销功能。 /// public bool IsAutoLogout { get => _autoLogout; set => _autoLogout = value; } /// /// 设置或返回自动注销的超时时间,单位秒。 /// public int LogoutTime { get => _logoutTime; set => _logoutTime = value; } /// /// 设置或返回描述当前角色权限的字串。 /// public string PermissionContent { get => _permissionContent; set => _permissionContent = value; } /// /// 权限控制项列表。 /// public Dictionary PermissionControlItems { get; } /// /// 设置或返回当前角色描述。 /// public string Description { get => _description; set => _description = value; } /// /// 设置或返回当前角色是否为超级用户。 /// public bool IsSuper { get; set; } /// /// 返回当前账户是否为系统保留账户。 /// public bool IsBuildIn { get; set; } #endregion #region Methods /// /// 获取指定项目的权限。 /// /// /// public virtual MenuPermissionEnum GetPermission(string name) { if (PermissionControlItems.TryGetValue(name, out var permissionEnum)) return permissionEnum; return MenuPermissionEnum.MP_NONE; } /// public override string ToString() { return $"ID = {RoleId}, Name = {RoleName}, Permission Items = {PermissionControlItems.Count}"; } #endregion } }