private void SaveEditPermission(int portalId, MenuItem menuItem) { var viewPermission = MenuPermissionController.GetPermissions(menuItem.MenuId).FirstOrDefault(p => p.PermissionKey == "VIEW"); var editPermission = MenuPermissionController.GetPermissions(menuItem.MenuId).FirstOrDefault(p => p.PermissionKey == "EDIT"); if (viewPermission == null || editPermission == null) { return; } var permissions = MenuPermissionController.GetMenuPermissions(portalId, menuItem.Identifier).ToList(); permissions.ForEach(p => { if (p.PermissionID == viewPermission.PermissionId) { if (!permissions.Any(c => c.PermissionID == editPermission.PermissionId && c.RoleID == p.RoleID && c.UserID == p.UserID)) { var menuPermissionInfo = new MenuPermissionInfo { MenuPermissionId = Null.NullInteger, MenuId = menuItem.MenuId, PermissionID = editPermission.PermissionId, RoleID = p.RoleID, UserID = p.UserID, AllowAccess = p.AllowAccess, }; MenuPermissionController.SaveMenuPermissions(portalId, menuItem, menuPermissionInfo); } } }); }
private void AddPermissions(MenuItem menuItem, IDictionary <string, object> settings) { var user = UserController.Instance.GetCurrentUserInfo(); var portalSettings = PortalSettings.Current; if (!settings.ContainsKey("isAdmin") && portalSettings != null) { settings.Add("isAdmin", user.IsInRole(portalSettings.AdministratorRoleName)); } if (!settings.ContainsKey("isHost")) { settings.Add("isHost", user.IsSuperUser); } if (!settings.ContainsKey("permissions") && portalSettings != null) { var menuPermissions = MenuPermissionController.GetPermissions(menuItem.MenuId) .Where(p => p.MenuId == menuItem.MenuId); var portalId = portalSettings.PortalId; var permissions = new Dictionary <string, bool>(); foreach (var permission in menuPermissions) { var key = permission.PermissionKey; var hasPermission = MenuPermissionController.HasMenuPermission(portalId, menuItem, key); permissions.Add(key, hasPermission); } settings.Add("permissions", permissions); } }
public override bool IsAuthorized(AuthFilterContext context) { var menuItem = GetMenuByIdentifier(); var portalSettings = PortalSettings.Current; if (menuItem == null || portalSettings == null) { return(false); } return(MenuPermissionController.HasMenuPermission(portalSettings.PortalId, menuItem, Permission)); }
private void UpdateEditPermissions() { var menuItems = PersonaBarRepository.Instance.GetMenu().AllItems; foreach (PortalInfo portal in PortalController.Instance.GetPortals()) { var portalId = portal.PortalID; if (MenuPermissionController.PermissionAlreadyInitialized(portalId)) { menuItems.ForEach(i => this.SaveEditPermission(portalId, i)); } } }
private void SaveMenuPermission(MenuItem menuItem, string roleName) { var portals = PortalController.Instance.GetPortals(); foreach (PortalInfo portal in portals) { var portalId = portal.PortalID; //when default permission already initialized, then package need to save default permission immediately. if (MenuPermissionController.PermissionAlreadyInitialized(portalId)) { MenuPermissionController.SaveMenuDefaultPermissions(portalId, menuItem, roleName); } } }
public bool IsVisible(PortalSettings portalSettings, UserInfo user, MenuItem menuItem) { var visible = menuItem.Enabled && !(user.IsSuperUser && !menuItem.AllowHost) && MenuPermissionController.CanView(portalSettings.PortalId, menuItem); if (visible) { var menuController = GetMenuItemController(menuItem); visible = menuController == null || menuController.Visible(menuItem); } return(visible); }
public override bool IsAuthorized(AuthFilterContext context) { var menuItem = GetMenuByIdentifier(); var portalSettings = PortalSettings.Current; if (menuItem == null || portalSettings == null) { return(false); } if (!CheckPermissionForAdmin && PortalSecurity.IsInRole(Constants.AdminsRoleName)) { return(true); } //Permissions seperated by & should be treated with AND operand. //Permissions seperated by , are internally treated with OR operand. var allPermissionGroups = Permission.Split(new[] { '&' }, StringSplitOptions.RemoveEmptyEntries); return(allPermissionGroups.All(allPermissions => MenuPermissionController.HasMenuPermission(portalSettings.PortalId, menuItem, allPermissions))); }
private void SavePermissionDefinitions() { if (!_menuItems.Any()) { return; } foreach (var definition in _permissionDefinitions) { var identifier = definition.Identifier; var menu = _menuItems.FirstOrDefault(m => string.IsNullOrEmpty(identifier) || m.Identifier == identifier); if (menu?.MenuId <= 0) { menu = PersonaBarRepository.Instance.GetMenuItem(identifier); } if (menu != null) MenuPermissionController.SavePersonaBarPermission(menu.MenuId, definition.Key, definition.Name); } }
private void AddPermissions(MenuItem menuItem, IDictionary <string, object> settings) { var portalSettings = PortalSettings.Current; if (!settings.ContainsKey("permissions") && portalSettings != null) { var menuPermissions = MenuPermissionController.GetPermissions(menuItem.MenuId) .Where(p => p.PermissionKey != "VIEW"); var portalId = portalSettings.PortalId; var permissions = new Dictionary <string, bool>(); foreach (var permission in menuPermissions) { var key = permission.PermissionKey; var hasPermission = MenuPermissionController.HasMenuPermission(portalId, menuItem, key); permissions.Add(key, hasPermission); } settings.Add("permissions", permissions); } }
public bool IsVisible(PortalSettings portalSettings, UserInfo user, MenuItem menuItem) { var visible = menuItem.Enabled && !(user.IsSuperUser && !menuItem.AllowHost) && MenuPermissionController.CanView(portalSettings.PortalId, menuItem); if (visible) { try { var menuController = this.GetMenuItemController(menuItem); visible = menuController == null || menuController.Visible(menuItem); } catch (Exception ex) { Logger.Error(ex); visible = false; } } return(visible); }
public virtual bool CanViewPageList(int menuId) { var permissions = MenuPermissionController.GetMenuPermissions(PortalSettings.Current.PortalId, menuId); return(MenuPermissionController.HasMenuPermission(new MenuPermissionCollection(permissions), "VIEW_PAGE_LIST") || this.IsPageAdmin()); }