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); } } }); }
public int Add(MenuPermissionInfo value, bool checkForDuplicates) { int id = Null.NullInteger; if (!checkForDuplicates) { id = this.Add(value); } else { bool isMatch = false; foreach (MenuPermissionInfo permission in this.List) { if (permission.PortalId == value.PortalId && permission.MenuId == value.MenuId && permission.PermissionID == value.PermissionID && permission.UserID == value.UserID && permission.RoleID == value.RoleID) { isMatch = true; break; } } if (!isMatch) { id = this.Add(value); } } return(id); }
public static void SaveMenuPermissions(int portalId, MenuItem menu, MenuPermissionInfo permissionInfo) { var user = UserController.Instance.GetCurrentUserInfo(); permissionInfo.MenuPermissionId = DataService.SavePersonaBarMenuPermission( portalId, menu.MenuId, permissionInfo.PermissionID, permissionInfo.RoleID, permissionInfo.UserID, permissionInfo.AllowAccess, user.UserID); ClearCache(portalId); }
public int Add(MenuPermissionInfo value) { return(this.List.Add(value)); }
public void Remove(MenuPermissionInfo value) { this.List.Remove(value); }
public void Insert(int index, MenuPermissionInfo value) { this.List.Insert(index, value); }
public int IndexOf(MenuPermissionInfo value) { return(this.List.IndexOf(value)); }
public bool Contains(MenuPermissionInfo value) { return(this.List.Contains(value)); }
private static void SaveMenuDefaultPermissions(int portalId, MenuItem menuItem, string roleName, bool ignoreExists) { try { var defaultPermissions = roleName.Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries).ToList(); if (defaultPermissions.Count > 1) { roleName = defaultPermissions[0]; } defaultPermissions.RemoveAt(0); var administratorRole = PortalController.Instance.GetPortal(portalId).AdministratorRoleName; var nullRoleId = Convert.ToInt32(Globals.glbRoleNothing); var permissions = GetPermissions(menuItem.MenuId) .Where(p => p.MenuId == Null.NullInteger || (roleName == administratorRole && defaultPermissions.Count == 0) || // Administrator gets all granular permissions only if no permission specified explicity. defaultPermissions.Contains(p.PermissionKey)); var roleId = nullRoleId; switch (roleName) { case Globals.glbRoleUnauthUserName: roleId = Convert.ToInt32(Globals.glbRoleUnauthUser); break; case Globals.glbRoleAllUsersName: roleId = Convert.ToInt32(Globals.glbRoleAllUsers); break; default: var role = RoleController.Instance.GetRoleByName(portalId, roleName); if (role != null && role.IsSystemRole) { roleId = role.RoleID; } else if (role != null) { Logger.Error($"Role \"{roleName}\" in portal \"{portalId}\" doesn't marked as system role, will ignore add this default permission to {menuItem.Identifier}."); } break; } if (roleId > nullRoleId) { if (!ignoreExists) { var menuPermissions = GetMenuPermissions(portalId, menuItem.MenuId); permissions = permissions.Where( x => !menuPermissions.ToList() .Exists(y => y.PermissionID == x.PermissionId && y.RoleID == roleId)); } foreach (var permission in permissions) { var menuPermissionInfo = new MenuPermissionInfo { MenuPermissionId = Null.NullInteger, MenuId = menuItem.MenuId, PermissionID = permission.PermissionId, RoleID = roleId, UserID = Null.NullInteger, AllowAccess = true, }; SaveMenuPermissions(portalId, menuItem, menuPermissionInfo); } } } catch (Exception ex) { Logger.Error(ex); } }