|
@@ -821,11 +821,9 @@ namespace VirgoUI.Client
|
|
|
//ClientApp.Instance.UserContext.Token = token;
|
|
|
ClientApp.Instance.UserContext.LastAccessTime = DateTime.Now;
|
|
|
ClientApp.Instance.UserContext.IsLogin = true;
|
|
|
-
|
|
|
//Load menu by role
|
|
|
//filer menu if necessary...
|
|
|
- ClientApp.Instance.MenuManager.LoadMenu(RoleAccountProvider.Instance.GetMenusByRole(role.RoleID, ClientApp.Instance.MenuLoader.MenuList));
|
|
|
-
|
|
|
+ ClientApp.Instance.MenuManager.LoadMenu(RoleAccountProvider.Instance.GetMenusByRole(role.RoleID, ClientApp.Instance.MenuLoader.MenuList));
|
|
|
IsAutoLogout = role.IsAutoLogout;
|
|
|
LogoutTime = role.LogoutTime;
|
|
|
InitMenu(); //bind menu to main view
|
|
@@ -976,6 +974,28 @@ namespace VirgoUI.Client
|
|
|
|
|
|
}
|
|
|
|
|
|
+ private Dictionary<string, int> _permissionMap;
|
|
|
+
|
|
|
+ private void ParsePermissions(string permissionString)
|
|
|
+ {
|
|
|
+ _permissionMap = permissionString
|
|
|
+ .Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries)
|
|
|
+ .Select(part => part.Split(','))
|
|
|
+ .Where(arr => arr.Length == 2)
|
|
|
+ .ToDictionary(
|
|
|
+ arr => arr[0].Trim(),
|
|
|
+ arr => int.TryParse(arr[1].Trim(), out var val) ? val : 0);
|
|
|
+ }
|
|
|
+ public bool PageEnabled
|
|
|
+ {
|
|
|
+ get
|
|
|
+ {
|
|
|
+ if (_permissionMap == null || !_permissionMap.TryGetValue("Header", out var level))
|
|
|
+ return true;
|
|
|
+ return level == 3;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
protected override bool OnTimer()
|
|
|
{
|
|
|
try
|
|
@@ -984,9 +1004,16 @@ namespace VirgoUI.Client
|
|
|
List<Role> roles = RoleAccountProvider.Instance.GetRoles();
|
|
|
if (!string.IsNullOrEmpty(ClientApp.Instance.UserContext.RoleName))
|
|
|
{
|
|
|
+ //var _Permission = roles.Find(AccountManager.GetSingleRolePermission(RoleName));
|
|
|
+ //PageEnabled = true;
|
|
|
+ //var permissions = AccountManager.GetSingleRolePermission(ClientApp.Instance.UserContext.RoleName);
|
|
|
+ //var permission = ClientApp.Instance.UserContext.Role.MenuPermission;
|
|
|
+ ParsePermissions(ClientApp.Instance.UserContext.Role.MenuPermission);
|
|
|
+
|
|
|
Role role = roles.Find(x => x.RoleName == ClientApp.Instance.UserContext.RoleName);
|
|
|
LogoutTime = role.LogoutTime;
|
|
|
IsAutoLogout = role.IsAutoLogout;
|
|
|
+ //NotifyOfPropertyChange(() => PageEnabled);
|
|
|
int intervaltime = GetLastInputTime();
|
|
|
//if (System.DateTime.Now >= ClientApp.Instance.UserContext.LoginTime.AddMinutes(LogoutTime) && IsLogin && IsAutoLogout)
|
|
|
if (intervaltime >= LogoutTime * 60 && IsLogin && IsAutoLogout)
|