public override bool IsAuthorized(AuthFilterContext context) { Requires.NotNull("context", context); var principal = Thread.CurrentPrincipal; if (!principal.Identity.IsAuthenticated) { return(false); } var currentPortal = TestablePortalController.Instance.GetCurrentPortalSettings(); bool isAdminUser = currentPortal.UserInfo.IsSuperUser || PortalSecurity.IsInRole(currentPortal.AdministratorRoleName); if (isAdminUser) { return(true); } bool isPageEditor = TabPermissionController.HasTabPermission("EDIT,CONTENT,MANAGE") || IsModuleAdmin(((DnnApiController)context.ActionContext.ControllerContext.Controller).PortalSettings); if (isPageEditor) { return(true); } return(false); }
public static string GetAccessRoles(UserInfo UserInfo) { List <string> AccessRoles = new List <string>(); if (UserInfo.UserID > 0) { AccessRoles.Add("user"); } else { AccessRoles.Add("anonymous"); } if (UserInfo.UserID > -1 && (UserInfo.IsInRole("Administrators"))) { AccessRoles.Add("admin"); } if (TabPermissionController.HasTabPermission("EDIT")) { AccessRoles.Add("edit"); } if (UserInfo.IsSuperUser) { AccessRoles.Add("host"); } return(string.Join(",", AccessRoles)); }
public static bool CanMovePage() { //Cannot move the host console page if ((IsHostConsolePage())) { return(false); } //Page Editors - Can only move children they have 'Manage' permission to, they cannot move the top level page if ((!PortalSecurity.IsInRole("Administrators"))) { int parentTabID = PortalSettings.Current.ActiveTab.ParentId; if ((parentTabID == Null.NullInteger)) { return(false); } TabInfo parentTab = TabController.Instance.GetTab(parentTabID, PortalSettings.Current.ActiveTab.PortalID, false); string permissionList = "MANAGE"; if ((!TabPermissionController.HasTabPermission(parentTab.TabPermissions, permissionList))) { return(false); } } return(true); }
/// <summary> /// Checks if current user is page editor of the passed tab /// </summary> /// <param name="tabId">Tab ID</param> /// <param name="portalSettings">Portal Settings related with the portal which contains the tab</param> /// <returns>Returns true if current user has a edit permission on the page or is admin of some module in the page. Otherwise, returns false</returns> public static bool IsPageEditor(int tabId, PortalSettings portalSettings) { var tabPermissions = TabPermissionController.GetTabPermissions(tabId, portalSettings.PortalId); return(TabPermissionController.HasTabPermission(tabPermissions, "EDIT,CONTENT,MANAGE") || IsModuleAdmin(portalSettings, TabController.Instance.GetTab(tabId, portalSettings.PortalId))); }
protected void Page_Load(object sender, EventArgs e) { JavaScript.RequestRegistration(CommonJs.jQuery, null, SpecificVersion.Latest); PageManager.Init(Page, PortalSettings); if (string.IsNullOrEmpty(Request.QueryString["mid"]) || (!string.IsNullOrEmpty(Request.QueryString["icp"]) && bool.Parse(Request.QueryString["icp"]) && (!string.IsNullOrEmpty(Request.QueryString["mid"]) && Request.QueryString["mid"] != "0"))) { if (page != null && page.StateID.HasValue) { HasReviewPermission = WorkflowManager.HasReviewPermission(page.StateID.Value, PortalSettings.UserInfo); } WebForms.LinkCSS(Page, "ThemeCSS", Page.ResolveUrl("~/Portals/" + PortalSettings.PortalId + "/vThemes/" + Core.Managers.ThemeManager.GetCurrentThemeName() + "/Theme.css")); WebForms.LinkCSS(Page, "SkinCSS", Page.ResolveUrl("~/Portals/_default/Skins/Vanjaro/Resources/css/skin.css")); //Skin js requried because using for openpopup update memeber Profile when user is registered user //VjDefaultPath used in Skin.js for loading icon. WebForms.RegisterClientScriptBlock(Page, "DefaultPath", "var VjThemePath='" + Page.ResolveUrl("~/Portals/_default/vThemes/" + Core.Managers.ThemeManager.GetCurrentThemeName()) + "'; var VjDefaultPath='" + Page.ResolveUrl("~/DesktopModules/Vanjaro/UXManager/Library/Resources/Images/") + "'; var VjSitePath='" + Page.ResolveUrl("~/DesktopModules/Vanjaro/") + "';", true); ClientResourceManager.RegisterScript(Page, Page.ResolveUrl("~/Portals/_default/Skins/Vanjaro/Resources/js/skin.js"), 2, "DnnFormBottomProvider"); ClientResourceManager.RegisterScript(Page, Page.ResolveUrl("~/DesktopModules/Vanjaro/Common/Frameworks/Bootstrap/4.5.0/js/bootstrap.min.js"), 1, "DnnFormBottomProvider"); string DirectoryPath = System.Web.Hosting.HostingEnvironment.MapPath("~/Portals/_default/vThemes/" + Core.Managers.ThemeManager.GetCurrentThemeName() + "/js/"); if ((TabPermissionController.HasTabPermission("EDIT") || (page != null && page.StateID.HasValue && HasReviewPermission)) && Directory.Exists(DirectoryPath)) { string script = ""; foreach (string file in Directory.GetFiles(DirectoryPath)) { string FileName = Path.GetFileName(file); if (!string.IsNullOrEmpty(FileName)) { if (FileName.EndsWith(".js")) { script += File.ReadAllText(DirectoryPath + "/" + FileName); } } } if (!string.IsNullOrEmpty(script.Trim())) { WebForms.RegisterStartupScript(Page, "ThemeBlocks", "LoadThemeBlocks = function (grapesjs) { grapesjs.plugins.add('ThemeBlocks', (editor, opts = {}) => { " + script + "}); };", true); } } else { string ThemeJS = "~/Portals/_default/vThemes/" + Core.Managers.ThemeManager.GetCurrentThemeName() + "/theme.js"; if (File.Exists(System.Web.Hosting.HostingEnvironment.MapPath(ThemeJS))) { ClientResourceManager.RegisterScript(Page, Page.ResolveUrl(ThemeJS)); } } } else { WebForms.LinkCSS(Page, "EditCSS", Page.ResolveUrl("~/Portals/_default/Skins/Vanjaro/Resources/css/edit.css")); } ResetModulePanes(); }
private static string GetReviewGlobalVariable(PortalSettings PortalSettings, bool HasReviewPermission) { string Script = string.Empty; if (TabPermissionController.HasTabPermission("EDIT") || HasReviewPermission) { ReviewSettings ReviewSetting = Core.Managers.PageManager.GetPageReviewSettings(PortalSettings); Script = "var VJIsPageDraft='" + ReviewSetting.IsPageDraft + "'; var VJIsContentApproval='" + ReviewSetting.IsContentApproval + "'; var VJNextStateName='" + ReviewSetting.NextStateName + "'; var VJIsLocked='" + ReviewSetting.IsLocked + "'; var VJIsModeratorEditPermission='" + ReviewSetting.IsModeratorEditPermission + "'; var VJLocal='" + Core.Managers.PageManager.GetCultureCode(PortalSettings) + "';"; } return(Script); }
private void context_PreRequestHandlerExecute(object sender, EventArgs e) { HttpApplication app = (HttpApplication)sender; if (app != null) { HttpContext context = app.Context; //Make sure we have a valid HttpContext and we're not dealing with static requests such as images etc... if (context != null && context.CurrentHandler is CDefault && context.Request.QueryString["popUp"] == null) { PortalSettings p = PortalController.Instance.GetCurrentSettings() as PortalSettings; if (p != null && p.UserInfo != null && TabPermissionController.HasTabPermission("EDIT")) { if (p.ActiveTab != null) { Page _Page = app.Context.CurrentHandler as Page; string TabSkinSrc = p.ActiveTab.SkinSrc != null?p.ActiveTab.SkinSrc.ToLower() : string.Empty; string QuerySkinSrc = context.Request.QueryString["SkinSrc"] != null ? context.Request.QueryString["SkinSrc"].ToLower() : null; if (TabSkinSrc == "[G]Skins/Vanjaro/Base.ascx".ToLower() || QuerySkinSrc == "[G]Skins/Vanjaro/Base".ToLower()) { ToggleUserMode(p); string ControlPanel = HostController.Instance.GetSettings().ContainsKey("ControlPanel") ? HostController.Instance.GetSettings()["ControlPanel"].Value.ToLower() : null; HostController.Instance.GetSettings()["ControlPanel"].Value = "DesktopModules/Vanjaro/UXManager/Library/Base.ascx"; _Page.PreRender += delegate(object ss, EventArgs ee) { HostController.Instance.GetSettings()["ControlPanel"].Value = "DesktopModules/admin/Dnn.PersonaBar/UserControls/PersonaBarContainer.ascx"; }; } else { string NavigateURL = p.ActiveTab.FullUrl; string Script = "<script>var VanjaroMigrate_CurrentTabURL = '" + NavigateURL + "'; </script>"; _Page.ClientScript.RegisterStartupScript(_Page.GetType(), "VJ-HttpMod-Div", Script); } } } } } }
/// <summary> /// Check if current user can see a specific page /// </summary> /// <param name="tab"> The TabInfo to be checked</param> /// <returns>True if current user can see the specific page. Otherwise, False</returns> internal static bool CanSeeVersionedPages(TabInfo tab) { if (!Thread.CurrentPrincipal.Identity.IsAuthenticated) { return(false); } var currentPortal = PortalController.Instance.GetCurrentPortalSettings(); var isAdminUser = currentPortal.UserInfo.IsSuperUser || PortalSecurity.IsInRole(currentPortal.AdministratorRoleName); if (isAdminUser) { return(true); } return(TabPermissionController.HasTabPermission(tab.TabPermissions, "EDIT,CONTENT,MANAGE")); }
private void LoadModuleInFrame() { if (!string.IsNullOrEmpty(Request.QueryString["mid"]) && TabPermissionController.HasTabPermission("EDIT")) { int mid = int.Parse(Request.QueryString["mid"]); List <ModuleInfo> ModulesToRemove = new List <ModuleInfo>(); foreach (ModuleInfo m in PortalSettings.ActiveTab.Modules) { if (m.ModuleID != mid) { ModulesToRemove.Add(m); } } foreach (ModuleInfo m in ModulesToRemove) { PortalSettings.ActiveTab.Modules.Remove(m); } } }
private Pages GetPage() { Pages page; if (!string.IsNullOrEmpty(Request.QueryString["revisionversion"]) && TabPermissionController.HasTabPermission("EDIT")) { page = PageManager.GetByVersion(PortalSettings.ActiveTab.TabID, Convert.ToInt32(Request.QueryString["revisionversion"]), PageManager.GetCultureCode(PortalSettings)); } else if (!string.IsNullOrEmpty(Request.QueryString["uxmode"]) && Convert.ToBoolean(Request.QueryString["uxmode"])) { page = PageManager.GetLatestVersion(PortalSettings.ActiveTab.TabID, true, PageManager.GetCultureCode(PortalSettings), true); } else { page = PageManager.GetLatestVersion(PortalSettings.ActiveTab.TabID, PageManager.GetCultureCode(PortalSettings)); } return(page); }
public static bool HasTabPermission(string permissionKey) { var principal = Thread.CurrentPrincipal; if (!principal.Identity.IsAuthenticated) { return(false); } var currentPortal = PortalController.Instance.GetCurrentPortalSettings(); bool isAdminUser = currentPortal.UserInfo.IsSuperUser || PortalSecurity.IsInRole(currentPortal.AdministratorRoleName); if (isAdminUser) { return(true); } return(TabPermissionController.HasTabPermission(permissionKey)); }
private BaseModel GetBaseModel() { BaseModel item = new BaseModel { LoadingImage = Page.ResolveUrl("~/DesktopModules/Vanjaro/UXManager/Library/Resources/Images/loading.gif"), AboutUrl = AppManager.GetAboutUrl(), Logo = Page.ResolveUrl("~/DesktopModules/Vanjaro/UXManager/Library/Resources/Images/Vanjaro.png"), MenuMarkUp = MenuManager.RenderMenu(MenuManager.ParseMenuCategoryTree(null), null), NotificationCount = Core.Managers.NotificationManager.RenderNotificationsCount(PortalSettings.PortalId), ToolbarMarkUp = ToolbarManager.RenderMenu(), LanguageMarkUp = LanguageManager.RenderLanguages(), HasShortcut = (ShortcutManager.GetShortcut().Where(x => x.Shortcut.Visibility).Count() > 0) }; item.ShortcutMarkUp = item.HasShortcut ? ShortcutManager.RenderShortcut() : string.Empty; item.HasTabEditPermission = TabPermissionController.HasTabPermission("EDIT"); item.ShowUXManagerToolbar = Editor.VjObjects.ShowUXManagerToolbar; item.ShowUXManager = string.IsNullOrEmpty(Core.Managers.CookieManager.GetValue("InitGrapejs")) ? false : Convert.ToBoolean(Core.Managers.CookieManager.GetValue("InitGrapejs")); return(item); }
public static Pages GetLatestVersion(int TabID, bool IgnoreDraft, string Locale, bool GetDefaultLocale) { UserInfo UserInfo = (PortalController.Instance.GetCurrentSettings() as PortalSettings).UserInfo; List <Pages> pages = GetPages(TabID).Where(a => a.Locale == Locale).ToList(); Pages page = new Pages(); if (!IgnoreDraft && (TabPermissionController.HasTabPermission("EDIT") || WorkflowManager.HasReviewPermission(UserInfo))) { page = pages.OrderByDescending(a => a.Version).FirstOrDefault(); } else { page = pages.Where(a => a.IsPublished == true).OrderByDescending(a => a.Version).FirstOrDefault(); } if (page == null && !string.IsNullOrEmpty(Locale) && GetDefaultLocale) { return(GetLatestVersion(TabID, IgnoreDraft, null, false)); } return(page); }
public static Pages GetLatestVersion(int TabID, UserInfo UserInfo) { List <Pages> pages = GetPages(TabID).ToList(); Pages page = new Pages(); try { if (TabPermissionController.HasTabPermission("EDIT") || WorkflowManager.HasReviewPermission(UserInfo)) { page = pages.OrderByDescending(a => a.Version).FirstOrDefault(); } else { page = pages.Where(a => a.IsPublished == true).OrderByDescending(a => a.Version).FirstOrDefault(); } } catch (Exception) { page = new Pages(); } return(page); }
internal static string GetAccessRoles(UserInfo UserInfo) { List <string> AccessRoles = new List <string>(); if (UserInfo.UserID > 0) { AccessRoles.Add("user"); } else { AccessRoles.Add("anonymous"); } if (UserInfo.IsSuperUser) { AccessRoles.Add("host"); AccessRoles.Add("review"); } if (UserInfo.UserID > -1 && (UserInfo.IsInRole("Administrators"))) { AccessRoles.Add("admin"); AccessRoles.Add("review"); } if (TabPermissionController.HasTabPermission("EDIT")) { AccessRoles.Add("pageedit"); } if (WorkflowManager.HasReviewPermission(UserInfo)) { AccessRoles.Add("review"); } return(string.Join(",", AccessRoles.Distinct())); }
public static int SaveTabInfoObject(TabInfo tab, TabInfo relativeToTab, TabRelativeLocation location, string templateFileId) { //Validation: //Tab name is required //Tab name is invalid string invalidType; if (!TabController.IsValidTabName(tab.TabName, out invalidType)) { switch (invalidType) { case "EmptyTabName": throw new DotNetNukeException("Page name is required.", DotNetNukeErrorCode.PageNameRequired); case "InvalidTabName": throw new DotNetNukeException("Page name is invalid.", DotNetNukeErrorCode.PageNameInvalid); } } else if ((Validate_IsCircularReference(tab.PortalID, tab.TabID))) { throw new DotNetNukeException("Cannot move page to that location.", DotNetNukeErrorCode.PageCircularReference); } bool usingDefaultLanguage = (tab.CultureCode == PortalSettings.Current.DefaultLanguage) || tab.CultureCode == null; if (PortalSettings.Current.ContentLocalizationEnabled) { if ((!usingDefaultLanguage)) { TabInfo defaultLanguageSelectedTab = tab.DefaultLanguageTab; if ((defaultLanguageSelectedTab == null)) { //get the siblings from the selectedtab and iterate through until you find a sibbling with a corresponding defaultlanguagetab //if none are found get a list of all the tabs from the default language and then select the last one var selectedTabSibblings = TabController.Instance.GetTabsByPortal(tab.PortalID).WithCulture(tab.CultureCode, true).AsList(); foreach (TabInfo sibling in selectedTabSibblings) { TabInfo siblingDefaultTab = sibling.DefaultLanguageTab; if (((siblingDefaultTab != null))) { defaultLanguageSelectedTab = siblingDefaultTab; break; } } //still haven't found it if ((defaultLanguageSelectedTab == null)) { var defaultLanguageTabs = TabController.Instance.GetTabsByPortal(tab.PortalID).WithCulture(PortalSettings.Current.DefaultLanguage, true).AsList(); defaultLanguageSelectedTab = defaultLanguageTabs[defaultLanguageTabs.Count]; //get the last tab } } relativeToTab = defaultLanguageSelectedTab; } } if ((location != TabRelativeLocation.NOTSET)) { //Check Host tab - don't allow adding before or after if ((IsHostConsolePage(relativeToTab) && (location == TabRelativeLocation.AFTER || location == TabRelativeLocation.BEFORE))) { throw new DotNetNukeException("You cannot add or move pages before or after the Host tab.", DotNetNukeErrorCode.HostBeforeAfterError); } TabInfo parentTab = GetParentTab(relativeToTab, location); string permissionList = "ADD,COPY,EDIT,MANAGE"; //Check permissions for Page Editors when moving or inserting if ((!PortalSecurity.IsInRole("Administrators"))) { if (((parentTab == null) || !TabPermissionController.HasTabPermission(parentTab.TabPermissions, permissionList))) { throw new DotNetNukeException("You do not have permissions to add or move pages to this location. You can only add or move pages as children of pages you can edit.", DotNetNukeErrorCode.PageEditorPermissionError); } } if (((parentTab != null))) { tab.ParentId = parentTab.TabID; tab.Level = parentTab.Level + 1; } else { tab.ParentId = Null.NullInteger; tab.Level = 0; } } if ((tab.TabID > Null.NullInteger && tab.TabID == tab.ParentId)) { throw new DotNetNukeException("Parent page is invalid.", DotNetNukeErrorCode.ParentTabInvalid); } tab.TabPath = Globals.GenerateTabPath(tab.ParentId, tab.TabName); //check whether have conflict between tab path and portal alias. if (TabController.IsDuplicateWithPortalAlias(PortalSettings.Current.PortalId, tab.TabPath)) { throw new DotNetNukeException("The page path is duplicate with a site alias", DotNetNukeErrorCode.DuplicateWithAlias); } try { if ((tab.TabID < 0)) { if ((tab.TabPermissions.Count == 0 && tab.PortalID != Null.NullInteger)) { //Give admin full permission ArrayList permissions = PermissionController.GetPermissionsByTab(); foreach (PermissionInfo permission in permissions) { TabPermissionInfo newTabPermission = new TabPermissionInfo(); newTabPermission.PermissionID = permission.PermissionID; newTabPermission.PermissionKey = permission.PermissionKey; newTabPermission.PermissionName = permission.PermissionName; newTabPermission.AllowAccess = true; newTabPermission.RoleID = PortalSettings.Current.AdministratorRoleId; tab.TabPermissions.Add(newTabPermission); } } PortalSettings _PortalSettings = PortalController.Instance.GetCurrentPortalSettings(); if (_PortalSettings.ContentLocalizationEnabled) { Locale defaultLocale = LocaleController.Instance.GetDefaultLocale(tab.PortalID); tab.CultureCode = defaultLocale.Code; } else { tab.CultureCode = Null.NullString; } if ((location == TabRelativeLocation.AFTER && (relativeToTab != null))) { tab.TabID = TabController.Instance.AddTabAfter(tab, relativeToTab.TabID); } else if ((location == TabRelativeLocation.BEFORE && (relativeToTab != null))) { tab.TabID = TabController.Instance.AddTabBefore(tab, relativeToTab.TabID); } else { tab.TabID = TabController.Instance.AddTab(tab); } if (_PortalSettings.ContentLocalizationEnabled) { TabController.Instance.CreateLocalizedCopies(tab); } TabController.Instance.UpdateTabSetting(tab.TabID, "CacheProvider", ""); TabController.Instance.UpdateTabSetting(tab.TabID, "CacheDuration", ""); TabController.Instance.UpdateTabSetting(tab.TabID, "CacheIncludeExclude", "0"); TabController.Instance.UpdateTabSetting(tab.TabID, "IncludeVaryBy", ""); TabController.Instance.UpdateTabSetting(tab.TabID, "ExcludeVaryBy", ""); TabController.Instance.UpdateTabSetting(tab.TabID, "MaxVaryByCount", ""); } else { TabController.Instance.UpdateTab(tab); if ((location == TabRelativeLocation.AFTER && (relativeToTab != null))) { TabController.Instance.MoveTabAfter(tab, relativeToTab.TabID); } else if ((location == TabRelativeLocation.BEFORE && (relativeToTab != null))) { TabController.Instance.MoveTabBefore(tab, relativeToTab.TabID); } } } catch (Exception ex) { Logger.Error(ex); if (ex.Message.StartsWith("Page Exists")) { throw new DotNetNukeException(ex.Message, DotNetNukeErrorCode.PageExists); } } // create the page from a template if (!string.IsNullOrEmpty(templateFileId)) { XmlDocument xmlDoc = new XmlDocument { XmlResolver = null }; try { var templateFile = FileManager.Instance.GetFile(Convert.ToInt32(templateFileId)); xmlDoc.Load(FileManager.Instance.GetFileContent(templateFile)); TabController.DeserializePanes(xmlDoc.SelectSingleNode("//portal/tabs/tab/panes"), tab.PortalID, tab.TabID, PortalTemplateModuleAction.Ignore, new Hashtable()); //save tab permissions DeserializeTabPermissions(xmlDoc.SelectNodes("//portal/tabs/tab/tabpermissions/permission"), tab); } catch (Exception ex) { Exceptions.LogException(ex); throw new DotNetNukeException("Unable to process page template.", ex, DotNetNukeErrorCode.DeserializePanesFailed); } } //todo: reload tab from db or send back tabid instead? return(tab.TabID); }
public static List <IUIData> GetData(string Identifier, Dictionary <string, string> parameters, UserInfo userInfo) { Dictionary <string, IUIData> Settings = new Dictionary <string, IUIData> { { "AppPath", new UIData { Name = "AppPath", Value = HttpContext.Current.Request.ApplicationPath.TrimEnd('/') + "/DesktopModules/Vanjaro/UXManager/Extensions/Menu/Pages" } } }; PagesController pc = new PagesController(); switch (Identifier.ToLower()) { case "setting_pages": { dynamic DeletedPages = Managers.PagesManager.GetDeletedPageList(); Settings.Add("PagesTree", new UIData { Name = "PagesTree", Options = Managers.PagesManager.GetPagesTreeView() }); Settings.Add("DeletedPages", new UIData { Name = "DeletedPages", Options = DeletedPages.Data }); Settings.Add("DeletedPagesCount", new UIData { Name = "DeletedPagesCount", Options = DeletedPages.totalRecords }); Settings.Add("PageItem", new UIData { Name = "PageItem", Options = new PageItem() }); Settings.Add("List_PageItem", new UIData { Name = "List_PageItem", Options = new List <PageItem>() }); Settings.Add("PageSetting", new UIData { Name = "PageSetting", Options = pc.GetDefaultPagesSettings(PortalSettings.Current.PortalId, PortalSettings.Current.CultureCode).Data }); Settings.Add("DefaultPagesSettingsRequest", new UIData { Name = "DefaultPagesSettingsRequest", Options = new UpdateDefaultPagesSettingsRequest() }); Settings.Add("PageMoveRequest", new UIData { Name = "PageMoveRequest", Options = new PageMoveRequest() }); Settings.Add("HasTabPermission", new UIData { Name = "HasTabPermission", Value = Factories.AppFactory.GetAccessRoles(userInfo).Contains("admin").ToString().ToLower() }); return(Settings.Values.ToList()); } case "setting_detail": { int pid = 0; bool copy = false; string ParentPageValue = "-1", SitemapPriorityValue = "-1"; if (parameters.Count > 0) { pid = int.Parse(parameters["pid"]); if (parameters.ContainsKey("copy")) { copy = bool.Parse(parameters["copy"]); } } bool HasTabPermission = pid > 0 ? TabPermissionController.HasTabPermission(TabController.Instance.GetTab(pid, PortalSettings.Current.PortalId).TabPermissions, "EDIT") : true; Settings.Add("HasTabPermission", new UIData { Name = "HasTabPermission", Value = HasTabPermission.ToString() }); if (copy) { Settings.Add("IsCopy", new UIData { Name = "IsCopy", Value = copy.ToString() }); } if (HasTabPermission) { PageSettings pageSettings = new PageSettings(); pageSettings = pid > 0 ? Managers.PagesManager.GetPageDetails(pid).Data : Managers.PagesManager.GetDefaultSettings(); if (copy) { pageSettings.Name += "_Copy"; pageSettings.AbsoluteUrl = null; } ParentPageValue = pid > 0 && pageSettings.ParentId.HasValue ? pageSettings.ParentId.ToString() : ParentPageValue; SitemapPriorityValue = pid > 0 && pageSettings.SiteMapPriority != Null.NullInteger ? pageSettings.SiteMapPriority.ToString() : SitemapPriorityValue; if (pageSettings.TabId > 0) { Settings.Add("PageUrls", new UIData { Name = "PageUrls", Options = GetCustomUrls(pageSettings.TabId) }); } else { Settings.Add("PageUrls", new UIData { Name = "PageUrls", Options = "" }); } if (pageSettings.SiteAliases != null) { Settings.Add("SiteAlias", new UIData { Name = "SiteAlias", Options = pageSettings.SiteAliases.Where(x => x.Key == PortalSettings.Current.PortalAlias.PortalAliasID), OptionsText = "Value", OptionsValue = "Key", Value = PortalSettings.Current.PortalAlias.PortalAliasID.ToString() }); } Settings.Add("DeletedModules", new UIData { Name = "DeletedModules", Options = Managers.PagesManager.GetAllDeletedModules(pid, PortalSettings.Current.CultureCode) }); //disableLink Yes and Display In Menu Yes mean Folder Page if (string.IsNullOrEmpty(pageSettings.PageType)) { pageSettings.PageType = "Standard"; } pageSettings.PageType = pageSettings.PageType.ToLower() == "url" ? "URL" : (pageSettings.DisableLink && pageSettings.IncludeInMenu) ? "Folder" : "Standard"; pageSettings.AllowIndex = pid > 0 ? pageSettings.AllowIndex : true; string SiteUrl = PortalSettings.Current.PortalAlias != null ? PortalSettings.Current.PortalAlias.HTTPAlias : ServiceProvider.NavigationManager.NavigateURL(); List <Layout> pageLayouts = Managers.PagesManager.GetLayouts(); Settings.Add("PagesTemplate", new UIData { Name = "PagesTemplate", Options = pageSettings }); Settings.Add("PageLayouts", new UIData { Name = "PageLayouts", Options = pageLayouts }); Settings.Add("Permissions", new UIData { Name = "Permissions", Options = Managers.PagesManager.GetPagePermission(pageSettings, PortalSettings.Current.PortalId) }); Settings.Add("ParentPage", new UIData { Name = "ParentPage", Options = Library.Managers.PageManager.GetParentPages(PortalSettings.Current).Select(a => new { a.TabID, a.TabName }), OptionsText = "TabName", OptionsValue = "TabID", Value = ParentPageValue }); Settings.Add("SitemapPriority", new UIData { Name = "SitemapPriority", Options = "", OptionsText = "label", OptionsValue = "value", Value = SitemapPriorityValue }); Settings.Add("URLType", new UIData { Name = "URLType", Options = Managers.UrlManager.StatusCodes, OptionsText = "Value", OptionsValue = "Key", Value = "200" }); Settings.Add("WorkingPageUrls", new UIData { Name = "WorkingPageUrls", Options = new SeoUrl() { SaveUrl = new DotNetNuke.Entities.Urls.SaveUrlDto() } }); Settings.Add("ModuleItem", new UIData { Name = "ModuleItem", Options = new Recyclebin.ModuleItem() }); Settings.Add("List_ModuleItem", new UIData { Name = "List_ModuleItem", Options = new List <Recyclebin.ModuleItem>() }); Settings.Add("DefaultPageTitle", new UIData { Name = "DefaultPageTitle", Value = GetPageTitle(pid, PortalSettings.Current.PortalId) }); Settings.Add("SiteUrl", new UIData { Name = "SiteUrl", Value = SiteUrl.EndsWith("/") ? SiteUrl : SiteUrl + "/" }); int defaultWorkflow = Core.Managers.WorkflowManager.GetDefaultWorkflow(pageSettings.TabId); Settings.Add("ddlWorkFlows", new UIData { Name = "ddlWorkFlows", Options = Core.Managers.WorkflowManager.GetDDLWorkflow(PortalSettings.Current.PortalId, false), OptionsText = "Text", OptionsValue = "Value", Value = defaultWorkflow.ToString() }); Settings.Add("MaxRevisions", new UIData { Name = "MaxRevisions", Value = Core.Managers.WorkflowManager.GetMaxRevisions(pageSettings.TabId).ToString() }); Settings.Add("ReplaceTokens", new UIData { Name = "ReplaceTokens", Value = Core.Managers.SettingManager.GetValue(PortalSettings.Current.PortalId, pageSettings.TabId, Identifier, "ReplaceTokens", AppFactory.GetViews()) ?? bool.FalseString }); Settings.Add("WorkflowStateInfo", new UIData { Name = "WorkflowStateInfo", Value = Core.Managers.WorkflowManager.GetWorkflowStatesInfo(defaultWorkflow) }); DotNetNuke.Services.Localization.Locale DefaultLocale = DotNetNuke.Services.Localization.LocaleController.Instance.GetDefaultLocale(PortalSettings.Current.PortalId); Settings.Add("IsDefaultLocale", new UIData { Name = "IsDefaultLocale", Options = pid > 0 ? DefaultLocale.Code == PortalSettings.Current.CultureCode : true, Value = DefaultLocale.Code }); Settings.Add("LocalizedPage", new UIData { Name = "LocalizedPage", Options = Managers.PagesManager.AddDefaultLocalization(pid, pageSettings) }); Settings.Add("Languages", new UIData { Name = "Languages", Value = PortalSettings.Current.CultureCode, Options = LocalizationManager.GetActiveLocale(PortalSettings.Current.PortalId).Where(a => a.Value.ToLower() == PortalSettings.Current.CultureCode.ToLower()), OptionsText = "Text", OptionsValue = "Value" }); } return(Settings.Values.ToList()); } case "setting_savetemplateas": { int pid = 0; if (parameters.Count > 0) { pid = int.Parse(parameters["pid"]); } PageSettings pageSettings = new PageSettings(); pageSettings = pid > 0 ? Managers.PagesManager.GetPageDetails(pid).Data : Managers.PagesManager.GetDefaultSettings(); Settings.Add("Name", new UIData { Name = "Name", Value = pageSettings.Name }); Settings.Add("PID", new UIData { Name = "PID", Value = pid.ToString() }); Settings.Add("Icon", new UIData { Name = "Icon", Value = "" }); return(Settings.Values.ToList()); } case "setting_recyclebin": { Settings.Add("DeletedPages", new UIData { Name = "DeletedPages", Options = Managers.PagesManager.GetDeletedPageList().Data }); return(Settings.Values.ToList()); } case "setting_choosetemplate": { int pid = PortalSettings.Current.ActiveTab.TabID; bool HasTabPermission = pid > 0 ? TabPermissionController.HasTabPermission(TabController.Instance.GetTab(pid, PortalSettings.Current.PortalId).TabPermissions, "EDIT") : true; PageSettings pageSettings = new PageSettings(); pageSettings = pid > 0 ? Managers.PagesManager.GetPageDetails(pid).Data : Managers.PagesManager.GetDefaultSettings(); List <Layout> pageLayouts = Managers.PagesManager.GetLayouts(); Settings.Add("HasTabPermission", new UIData { Name = "HasTabPermission", Value = HasTabPermission.ToString() }); Settings.Add("PagesTemplate", new UIData { Name = "PagesTemplate", Options = pageSettings }); Settings.Add("PageLayouts", new UIData { Name = "PageLayouts", Options = pageLayouts }); Settings.Add("DisplayChooseTemplate", new UIData { Name = "DisplayChooseTemplate", Options = (PageManager.GetPages(PortalSettings.Current.ActiveTab.TabID).Count == 0) }); return(Settings.Values.ToList()); } default: return(null); } }
protected void Page_Load(object sender, EventArgs e) { if (Request.QueryString["m2v"] == null) { m2v = null; } else { m2v = Convert.ToBoolean(Request.QueryString["m2v"]); } if (IsAllowed()) { if (string.IsNullOrEmpty(Request.QueryString["ctl"]) && (string.IsNullOrEmpty(Request.QueryString["icp"]) || Convert.ToBoolean(Request.QueryString["icp"]) == false)) { if (string.IsNullOrEmpty(Request.QueryString["uxmode"])) { Literal lt = new Literal(); IDictionary <string, object> dynObjects = new ExpandoObject() as IDictionary <string, object>; dynObjects.Add("Setting", GetBaseModel()); string Template = RazorEngineManager.RenderTemplate("VanjaroUXManager", Page.ResolveUrl("~/DesktopModules/Vanjaro/UXManager/Library/"), "Base", dynObjects); Template = new DNNLocalizationEngine(null, Server.MapPath("~/DesktopModules/Vanjaro/UXManager/Library/App_LocalResources/Shared.resx"), ShowMissingKeys).Parse(Template); lt.Text = Template; Controls.Add(lt); } string DirectoryPath = System.Web.Hosting.HostingEnvironment.MapPath("~/DesktopModules/Vanjaro/UXManager/Library/Resources/tui/"); if (Directory.Exists(DirectoryPath)) { foreach (string file in Directory.GetFiles(DirectoryPath)) { string FileName = Path.GetFileName(file); if (!string.IsNullOrEmpty(FileName)) { if (FileName.EndsWith(".js")) { WebForms.RegisterClientScriptInclude(Page, FileName.Replace(".", ""), Page.ResolveUrl("~/DesktopModules/Vanjaro/UXManager/Library/Resources/tui/" + FileName), false); } else { WebForms.LinkCSS(Page, FileName.Replace(".", ""), Page.ResolveUrl("~/DesktopModules/Vanjaro/UXManager/Library/Resources/tui/" + FileName), false); } } } } WebForms.LinkCSS(Page, "UXManagerAppCss", Page.ResolveUrl("~/DesktopModules/Vanjaro/UXManager/Library/Resources/StyleSheets/app.css")); WebForms.LinkCSS(Page, "GrapesJsCss", Page.ResolveUrl("~/DesktopModules/Vanjaro/UXManager/Library/Resources/Scripts/GrapesJs/css/grapes.min.css")); WebForms.LinkCSS(Page, "GrapickJsCss", Page.ResolveUrl("~/DesktopModules/Vanjaro/UXManager/Library/Resources/Scripts/GrapesJs/css/grapick.min.css")); WebForms.RegisterClientScriptInclude(Page, "GrapesJsJs", Page.ResolveUrl("~/DesktopModules/Vanjaro/UXManager/Library/Resources/Scripts/uxmanager.min.js"), false); WebForms.LinkCSS(Page, "GrapesJsPanelCss", Page.ResolveUrl("~/DesktopModules/Vanjaro/UXManager/Library/Resources/Scripts/jsPanel/jspanel.min.css")); WebForms.LinkCSS(Page, "GrapesJspluginCss", Page.ResolveUrl("~/DesktopModules/Vanjaro/UXManager/Library/Resources/Scripts/GrapesJsManagers/css/uxmanager.css")); WebForms.LinkCSS(Page, "FontawesomeV4Css", Page.ResolveUrl("~/DesktopModules/Vanjaro/UXManager/Library/Resources/Scripts/GrapesJs/css/fontawesome/v4.css")); if (!IsAllowed()) { WebForms.RegisterClientScriptBlock(Page, "MenuSettingsBlocks", "$(document).ready(function(){$('[href=\"#MenuSettings\"]').click();$('#mode-switcher').remove();setTimeout(function(){$('.gjs-cv-canvas__frames').css('pointer-events','none');}, 100); });", true); } LocalizeGrapeJS(); FrameworkManager.Load(this, "FontAwesome"); } string NavigateURL = PageManager.GetCurrentTabUrl(PortalSettings); string ClientScript = "var AppMenus=" + JsonConvert.SerializeObject(AppManager.GetAll(AppType.Module)) + "; var m2vPageTabUrl='" + NavigateURL + "'; var CurrentTabUrl ='" + NavigateURL + "'; var IsAdmin=" + PortalSettings.UserInfo.IsInRole("Administrators").ToString().ToLower() + ";"; WebForms.RegisterClientScriptBlock(Page, "GrapesJsAppsExts", ClientScript, true); if (TabPermissionController.HasTabPermission("EDIT") && !Request.QueryString.AllKeys.Contains("mid")) { string OpenPopup = string.Empty; if (m2v.HasValue && !m2v.Value && (Vanjaro.Core.Managers.PageManager.GetPages(PortalSettings.ActiveTab.TabID).Count == 0)) { OpenPopup = "#/choosetemplate"; } else if (Request.QueryString["m2vsetup"] != null && Request.QueryString["m2vsetup"] == "page") { OpenPopup = "#detail"; } if (!string.IsNullOrEmpty(OpenPopup)) { NavigateURL = PageManager.GetCurrentTabUrl(PortalSettings, "&mid=0&icp=true&guid=10E56C75-548E-4A10-822E-52E6AA2AB45F" + OpenPopup); WebForms.RegisterStartupScript(Page, "m2v", "<script type=\"text/javascript\" vanjarocore=\"true\">OpenPopUp(event, 800,'right','Choose Template', '" + NavigateURL + "')</script>", false); } } } }
private void AddModulePanes() { //Get the Page Markup if (!IsAllowed()) { if (FindControlRecursive(this, "ContentPane") == null) { Controls.Add(ParseControl("<div id=\"ContentPane\" runat=\"server\" />")); } BuildPanes(); return; } if (string.IsNullOrEmpty(Request.QueryString["ctl"])) { if (FindControlRecursive(this, "ContentPane") == null) { Controls.Add(ParseControl("<div id=\"ContentPane\" runat=\"server\" />")); } Control ContentPane = FindControlRecursive(this, "ContentPane"); StringBuilder sb = new StringBuilder(); page = GetPage(); if (page != null) { InjectStyle(page); if (page.ReplaceTokens) { sb.Append(new TokenReplace().ReplaceEnvironmentTokens(page.Content)); } else { sb.Append(page.Content.ToString()); } } if (page != null && page.StateID.HasValue) { HasReviewPermission = WorkflowManager.HasReviewPermission(page.StateID.Value, PortalSettings.UserInfo); } if (TabPermissionController.HasTabPermission("EDIT") || (page != null && page.StateID.HasValue && HasReviewPermission)) { FrameworkManager.Load(this, "jQuerySweetAlert"); FrameworkManager.Load(this, "Toastr"); } if ((TabPermissionController.HasTabPermission("EDIT") || HasReviewPermission)) { WebForms.RegisterClientScriptBlock(Page, "ReviewGlobalVariable", GetReviewGlobalVariable(PortalSettings, HasReviewPermission), true); } if (!TabPermissionController.HasTabPermission("EDIT") && HasReviewPermission) { FrameworkManager.Load(this, "FontAwesome"); } if (TabPermissionController.HasTabPermission("EDIT")) { try { string Fonts = JsonConvert.SerializeObject(Core.Managers.ThemeManager.GetDDLFonts("all")); WebForms.RegisterClientScriptBlock(Page, "VJThemeFonts", "var VJFonts=" + Fonts + ";", true); } catch (Exception) { } } HtmlDocument html = new HtmlDocument(); html.LoadHtml(sb.ToString()); InjectBlocks(page, html); string ClassName = "vj-wrapper"; if (!string.IsNullOrEmpty(Request.QueryString["m2v"]) && string.IsNullOrEmpty(Request.QueryString["pv"])) { ClassName += " m2vDisplayNone"; } ContentPane.Controls.Add(ParseControl("<div class=\"" + ClassName + "\"><div id=\"VjContentPane\">" + InjectModules(html.DocumentNode.OuterHtml) + "</div></div>")); InjectLoginAuthentication(); } else { string FolderPath = HttpContext.Current.Server.MapPath("~/Portals/_default/vThemes/" + Core.Managers.ThemeManager.GetCurrentThemeName() + "/Layout.Edit.html"); string Content = System.IO.File.ReadAllText(FolderPath); Controls.Add(ParseControl(Content)); } BuildPanes(); }
private bool IsAllowed() { if (PortalSettings.UserId > 0 && TabPermissionController.CanViewPage() && (TabPermissionController.HasTabPermission("EDIT") || MenuManager.GetExtentions().Count > 0)) { return(true); } else { return(false); } }
/// <summary> /// Sets the visibility. /// </summary> private void SetVisibility() { this.Visible = this.IsAdmin; this.ModuleSettingsItem.Visible = TabPermissionController.HasTabPermission("EDIT"); }
/// <summary> /// Gets an instance of the Employment module with the given <paramref name="moduleDefinition"/> and <paramref name="jobGroupId"/> which can be viewed by the current user. /// </summary> /// <param name="portalSettings">The portal id.</param> /// <param name="moduleDefinition">The module definition.</param> /// <param name="jobGroupId">ID of the Job Group displayed on the module.</param> /// <returns>A non-deleted <see cref="ModuleInfo"/> with the given <paramref name="moduleDefinition"/>, or null if none exists.</returns> public static ModuleInfo GetCurrentModuleByDefinition(PortalSettings portalSettings, ModuleDefinition moduleDefinition, int?jobGroupId) { var moduleController = new ModuleController(); var tabController = new TabController(); // GetModulesByDefinition's obsolete status was rescinded after DNN 5.0 #pragma warning disable 618 return((from ModuleInfo module in moduleController.GetModulesByDefinition(portalSettings.PortalId, moduleDefinition.ToString()) where !module.IsDeleted && PortalSecurity.HasNecessaryPermission(SecurityAccessLevel.View, portalSettings, module) let moduleJobGroupSetting = ModuleSettings.JobGroupId.GetValueAsInt32For(EmploymentController.DesktopModuleName, module, ModuleSettings.JobGroupId.DefaultValue) let tab = tabController.GetTab(module.TabID, portalSettings.PortalId, false) where tab != null && !tab.IsDeleted && TabPermissionController.HasTabPermission(tab.TabPermissions, "VIEW") && (jobGroupId.Equals(moduleJobGroupSetting) || moduleJobGroupSetting == null) orderby !jobGroupId.Equals(moduleJobGroupSetting), moduleJobGroupSetting != null // false then true (i.e. job groups are equal *first*, then module's job group is null) select module).FirstOrDefault()); #pragma warning restore 618 }
public bool HasTabPermission(string PermissionKey) { return(TabPermissionController.HasTabPermission(PortalSettings.ActiveTab.TabPermissions, PermissionKey)); }
/// <summary> /// Sets the visibility. /// </summary> private void SetVisibility() { this.SettingsLink.Visible = TabPermissionController.HasTabPermission("EDIT"); this.HostLink.Visible = this.UserInfo.IsSuperUser; }