/// <summary> /// Returns the value indicating that the access to the specified action is denied. /// </summary> /// <param name="action">The action to check access to.</param> /// <returns>true, if the access to the action is denied; otherwise, false.</returns> public virtual bool AccessDenied(Action action) { bool accessDenied = false; if (action != null) { if (action.ActionId == ActionProvider.SettingsDiagnosticPageActionId) { UserContext user = UserContext.Current; accessDenied = (!(SettingProvider.GroupSettingsExist && (user.GroupIdList.Count > 0))); } else if ((action.ActionId == ActionProvider.SetupEntitiesPageActionId) || (action.ActionId == ActionProvider.EntitiesFieldsPageActionId) || (action.ActionId == ActionProvider.EntityFieldsPageActionId) || (action.ActionId == ActionProvider.EntityFieldListsValuesPageActionId)) { accessDenied = ((!FrameworkConfiguration.Current.Entities.Enabled) || (EntityFieldProvider.Entities.FindAllByEnableHierarchy(false).Count == 0)); } else if (action.ActionId == ActionProvider.UserAssociateToOrganizationStructurePageActionId) { accessDenied = ((!FrameworkConfiguration.Current.Entities.Enabled) || (EntityFieldProvider.Entities["4cda22f3-4f01-4768-8608-938dc6a06825"] == null)); } else if ((action.ActionId == ActionProvider.RulesEnginePageActionId) || (action.ActionId == ActionProvider.RulesPageActionId) || (action.ActionId == ActionProvider.RuleParametersPageActionId)) { accessDenied = ((!FrameworkConfiguration.Current.RulesEngines.Enabled) || (!FrameworkConfiguration.Current.Entities.Enabled) || (RuleEngineProvider.RulesEngines.Count == 0)); } else if ((action.ActionId == ActionProvider.TreesPageActionId) || (action.ActionId == ActionProvider.TreePageActionId) || (action.ActionId == ActionProvider.NodeTypePageActionId)) { accessDenied = ((!FrameworkConfiguration.Current.Entities.Enabled) || (EntityFieldProvider.Entities.FindAllByEnableHierarchy(true).Count == 0)); } else if (action.ActionId == ActionProvider.InstancesPageActionId) { accessDenied = (!FrameworkConfiguration.Current.WebApplication.EnableMultipleInstances); } else if (action.ActionId == ActionProvider.CustomUrlsPageActionId) { accessDenied = (!FrameworkConfiguration.Current.WebApplication.CustomUrl.Enabled); } else if ((action.ActionId == ActionProvider.StartPageActionId) || (action.ActionId == ActionProvider.StartGlobalNavigationLinkActionId)) { accessDenied = (FrameworkConfiguration.Current.WebApplication.MasterPage.Theme != MasterPageTheme.Modern); } else if ((action.ActionId == ActionProvider.LdapIntegrationPageActionId) || (action.ActionId == ActionProvider.LdapGroupMappingsPageActionId) || (action.ActionId == ActionProvider.LdapServerSettingsPageActionId) || (action.ActionId == ActionProvider.LdapUserInfoPageActionId)) { accessDenied = (!(FrameworkConfiguration.Current.WebApplication.Integration.Ldap.Enabled && UserContext.Current.Organization.Beta)); } else if (action.ActionId == ActionProvider.CustomStyleSheetPageActionId) { accessDenied = (!FrameworkConfiguration.Current.WebApplication.MasterPage.EnableCustomStyleSheet); } else if (action.ActionId == ActionProvider.MyAccountGlobalNavigationLinkActionId) { if (FrameworkConfiguration.Current.WebApplication.MasterPage.Theme == MasterPageTheme.Modern) { UserContext user = UserContext.Current; accessDenied = ((user != null) && (user.OrganizationId == Guid.Empty)); } else { accessDenied = true; } } else if (action.ActionId == ActionProvider.GoogleIntegrationPageActionId) { accessDenied = (!FrameworkConfiguration.Current.WebApplication.Integration.Google.Enabled); } else if (action.ActionId == ActionProvider.ActivityReportActionId) { accessDenied = (!FrameworkConfiguration.Current.WebApplication.Integration.Chargify.Enabled); } else if (action.ActionId == ActionProvider.LoginGlobalNavigationLinkActionId) { UserContext user = UserContext.Current; accessDenied = ((user != null) && (user.OrganizationId != Guid.Empty)); } else if (action.ActionId == ActionProvider.LoginAsUserGlobalNavigationLinkActionId) { UserContext user = UserContext.Current; accessDenied = (!((user != null) && user.CanLogOnAsUser && (user.OrganizationId == Guid.Empty))); } else if (ActionProvider.IsSetupPage(action)) { UserContext user = UserContext.Current; accessDenied = (!((user != null) && user.IsFrameworkAdministrator && (user.OrganizationId == Guid.Empty))); } else if (action.ActionId == ActionProvider.PageHelpGlobalNavigationLinkActionId) { accessDenied = (FrameworkConfiguration.Current.WebApplication.MasterPage.Theme != MasterPageTheme.Modern); } } return(accessDenied); }