Exemple #1
0
            public static string GetReviewToastMarkup(PortalSettings PortalSettings)
            {
                string        Markup     = string.Empty;
                Pages         page       = GetLatestVersion(PortalSettings.ActiveTab.TabID, PortalSettings.UserInfo);
                WorkflowState State      = null;
                bool          ShowReview = false;

                if (page != null && page.StateID.HasValue)
                {
                    State = WorkflowManager.GetStateByID(page.StateID.Value);
                    if (State != null && WorkflowManager.HasReviewPermission(page.StateID.Value, PortalSettings.UserInfo))
                    {
                        ShowReview = WorkflowManager.GetWorkflowType(State.WorkflowID) == WorkflowTypes.ContentApproval && !WorkflowManager.IsFirstState(State.WorkflowID, State.StateID) && !WorkflowManager.IsLastState(State.WorkflowID, State.StateID);
                    }
                }

                if (State != null)
                {
                    string URL = ServiceProvider.NavigationManager.NavigateURL("", "mid=0", "icp=true", "guid=33d8efed-0f1d-471e-80a4-6a7f10e87a42");
                    string ReviewChangesBtn     = ShowReview ? "ReviewChangeMarkup.append(ReviewChangesBtn);" : string.Empty;
                    string Subject              = ShowReview ? State.Name : DotNetNuke.Services.Localization.Localization.GetString("PendingReview", Components.Constants.LocalResourcesFile);
                    string Message              = !ShowReview ? "ReviewChangeMarkup.append('" + DotNetNuke.Services.Localization.Localization.GetString("ThisPageIsWaiting", Components.Constants.LocalResourcesFile) + "');" : string.Empty;
                    string UnlockChangesBtn     = TabPermissionController.CanManagePage(PortalSettings.ActiveTab) ? "ReviewChangeMarkup.append(UnlockChangesBtn);" : string.Empty;
                    string LocalCanvasMarkup    = string.Empty;
                    string FirstStateName       = WorkflowManager.GetFirstStateID(State.WorkflowID).Name;
                    string ReviewChangeFunction = !ShowReview ? "ConfirmReviewChange('" + FirstStateName + "');" : "$('.gjs-cv-canvas__frames').removeClass('lockcanvas'); VJIsLocked='False'; $('.toast-close-button').click();";
                    if (State != null && ShowReview || (!string.IsNullOrEmpty(UnlockChangesBtn) && !WorkflowManager.IsFirstState(State.WorkflowID, State.StateID) && !WorkflowManager.IsLastState(State.WorkflowID, State.StateID)))
                    {
                        Markup = "var ReviewChangeMarkup=$('<div>'); var ReviewChangesBtn = $('<button>'); ReviewChangesBtn.text('" + DotNetNuke.Services.Localization.Localization.GetString("ReviewPage", Components.Constants.LocalResourcesFile) + "'); ReviewChangesBtn.addClass('btn btn-success btn-sm'); ReviewChangesBtn.click(function(){OpenPopUp(null,600,'right','','" + URL + "'); }); var UnlockChangesBtn = $('<button>'); UnlockChangesBtn.text('" + DotNetNuke.Services.Localization.Localization.GetString("MakeChanges", Components.Constants.LocalResourcesFile) + "'); UnlockChangesBtn.addClass('btn btn-danger btn-sm'); UnlockChangesBtn.click(function(){" + ReviewChangeFunction + " });" + Message + " " + ReviewChangesBtn + " " + UnlockChangesBtn + " window.parent.ShowNotification('" + Subject + "',ReviewChangeMarkup, 'info', '', false,false);" + LocalCanvasMarkup + "";
                    }
                }

                return(Markup);
            }
Exemple #2
0
        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 (UserInfo.IsSuperUser)
            {
                AccessRoles.Add("host");
            }

            if (TabPermissionController.CanManagePage(PortalSettings.Current.ActiveTab))
            {
                AccessRoles.Add("editpage");
            }

            return(string.Join(",", AccessRoles));
        }
 public static T ConvertToPageItem <T>(TabInfo tab, IEnumerable <TabInfo> portalTabs) where T : PageItem, new()
 {
     return(new T
     {
         Id = tab.TabID,
         Name = tab.LocalizedTabName,
         Url = tab.FullUrl,
         ChildrenCount = portalTabs?.Count(ct => ct.ParentId == tab.TabID) ?? 0,
         Status = GetTabStatus(tab),
         ParentId = tab.ParentId,
         Level = tab.Level,
         IsSpecial = TabController.IsSpecialTab(tab.TabID, PortalSettings.Current),
         TabPath = tab.TabPath.Replace("//", "/"),
         PageType = GetPageType(tab.Url),
         CanViewPage = TabPermissionController.CanViewPage(tab),
         CanManagePage = TabPermissionController.CanManagePage(tab),
         CanAddPage = TabPermissionController.CanAddPage(tab),
         CanAdminPage = TabPermissionController.CanAdminPage(tab),
         CanCopyPage = TabPermissionController.CanCopyPage(tab),
         CanDeletePage = TabPermissionController.CanDeletePage(tab),
         CanAddContentToPage = TabPermissionController.CanAddContentToPage(tab),
         CanNavigateToPage = TabPermissionController.CanNavigateToPage(tab),
         LastModifiedOnDate = tab.LastModifiedOnDate.ToString("MM/dd/yyyy h:mm:ss tt", CultureInfo.CreateSpecificCulture(tab.CultureCode ?? "en-US")),
         FriendlyLastModifiedOnDate = tab.LastModifiedOnDate.ToString("MM/dd/yyyy h:mm:ss tt"),
         PublishDate = tab.HasBeenPublished ? WorkflowHelper.GetTabLastPublishedOn(tab).ToString("MM/dd/yyyy h:mm:ss tt", CultureInfo.CreateSpecificCulture(tab.CultureCode ?? "en-US")) : "",
         PublishStatus = GetTabPublishStatus(tab),
         Tags = tab.Terms.Select(t => t.Name).ToArray(),
         TabOrder = tab.TabOrder
     });
 }
Exemple #4
0
        public HttpResponseMessage CopyPermissionsToChildren()
        {
            if (TabPermissionController.CanManagePage() && UserController.GetCurrentUserInfo().IsInRole("Administrators") &&
                ActiveTabHasChildren() && !PortalSettings.ActiveTab.IsSuperTab)
            {
                TabController.CopyPermissionsToChildren(PortalSettings.ActiveTab, PortalSettings.ActiveTab.TabPermissions);
                return(Request.CreateResponse(HttpStatusCode.OK));
            }

            return(Request.CreateResponse(HttpStatusCode.InternalServerError));
        }
 private bool IsPageAdmin()
 {
     return //TabPermissionController.CanAddContentToPage() ||
            (TabPermissionController.CanAddPage() ||
             TabPermissionController.CanAdminPage() ||
             TabPermissionController.CanCopyPage() ||
             TabPermissionController.CanDeletePage() ||
             TabPermissionController.CanExportPage() ||
             TabPermissionController.CanImportPage() ||
             TabPermissionController.CanManagePage());
 }
        public virtual JObject GetPagePermissions(TabInfo tab)
        {
            var permissions = new JObject
            {
                { "addContentToPage", TabPermissionController.CanAddContentToPage(tab) },
                { "addPage", TabPermissionController.CanAddPage(tab) },
                { "adminPage", TabPermissionController.CanAdminPage(tab) },
                { "copyPage", TabPermissionController.CanCopyPage(tab) },
                { "deletePage", TabPermissionController.CanDeletePage(tab) },
                { "exportPage", TabPermissionController.CanExportPage(tab) },
                { "importPage", TabPermissionController.CanImportPage(tab) },
                { "managePage", TabPermissionController.CanManagePage(tab) }
            };

            return(permissions);
        }
 public HttpResponseMessage GetContentLocalizationEnabled()
 {
     try
     {
         if (!TabPermissionController.CanManagePage())
         {
             return(GetForbiddenResponse());
         }
         return(Request.CreateResponse(HttpStatusCode.OK, new { Success = true, PortalSettings.ContentLocalizationEnabled }));
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.ToString()));
     }
 }
Exemple #8
0
        public void CopyPermissionsToDescendantPages(int pageId)
        {
            var portalSettings = PortalController.Instance.GetCurrentPortalSettings();
            var portalId       = portalSettings.PortalId;
            var tab            = _tabController.GetTab(pageId, portalId, false);

            if (tab == null)
            {
                throw new PageNotFoundException();
            }

            if (!TabPermissionController.CanManagePage(tab) || tab.IsSuperTab)
            {
                throw new PermissionsNotMetException(tab.TabID, Localization.GetString("CannotCopyPermissionsToDescendantPages"));
            }

            TabController.CopyPermissionsToChildren(tab, tab.TabPermissions);
        }
        protected override string RenderView()
        {
            var slug = Request.Params["slug"];

            if (!string.IsNullOrEmpty(slug))
            {
                return(MvcRenderingEngine.Render("ProductReviews", "Index", new { slug }));
            }
            if (!TabPermissionController.CanManagePage())
            {
                if (PortalSettings.HomeTabId != Null.NullInteger)
                {
                    if (PortalSettings.HomeTabId != PortalSettings.ActiveTab.TabID)
                    {
                        Response.Redirect(Globals.NavigateURL(PortalSettings.HomeTabId));
                    }
                }
            }
            return(string.Empty);
        }
Exemple #10
0
        protected override string RenderView()
        {
            // Remove plupload.js as it's not used (erwin)
            // ------------------------------------------
            //RegisterScript("plupload/plupload.full.js");
            //RegisterScript("plupload/FileUpload.js");
            RegisterUnobtrusiveValidateScripts();
            RegisterViewScript("Products.js");

            var isConcreteItemModule = false;
            var slug = (string)Settings["Slug"];

            if (!string.IsNullOrEmpty(slug))
            {
                isConcreteItemModule = true;
            }

            if (string.IsNullOrEmpty(slug))
            {
                slug = Request.Params["slug"];
            }

            if (!string.IsNullOrEmpty(slug))
            {
                return(MvcRenderingEngine.Render("Products", "Index", new { slug, isConcreteItemModule }));
            }
            if (!TabPermissionController.CanManagePage())
            {
                if (PortalSettings.HomeTabId != Null.NullInteger)
                {
                    if (PortalSettings.HomeTabId != PortalSettings.ActiveTab.TabID)
                    {
                        Response.Redirect(Globals.NavigateURL(PortalSettings.HomeTabId));
                    }
                }
            }
            return(string.Empty);
        }
 public virtual bool CanManagePage(int tabId)
 {
     return(this.CanAdminPage(tabId) || TabPermissionController.CanManagePage(this.GetTabById(tabId)));
 }
Exemple #12
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            imgAddModule.Click                 += imgAddModule_Click;
            optMode.SelectedIndexChanged       += optMode_SelectedIndexChanged;
            optModuleType.SelectedIndexChanged += optModuleType_SelectedIndexChanged;
            cboTabs.SelectedIndexChanged       += cboTabs_SelectedIndexChanged;
            cmdVisibility.Click                += cmdVisibility_Click;
            cboPanes.SelectedIndexChanged      += cboPanes_SelectedIndexChanged;
            cboPosition.SelectedIndexChanged   += cboPosition_SelectedIndexChanged;
            imgAdmin.Click     += imgAdmin_Click;
            cmdAdmin.Click     += cmdAdmin_Click;
            imgHost.Click      += imgHost_Click;
            cmdHost.Click      += cmdHost_Click;
            cmdAddModule.Click += AddModule_Click;

            cmdAddTab.Click        += PageFunctions_Click;
            cmdAddTabIcon.Click    += PageFunctions_Click;
            cmdEditTab.Click       += PageFunctions_Click;
            cmdEditTabIcon.Click   += PageFunctions_Click;
            cmdDeleteTab.Click     += PageFunctions_Click;
            cmdDeleteTabIcon.Click += PageFunctions_Click;
            cmdCopyTab.Click       += PageFunctions_Click;
            cmdCopyTabIcon.Click   += PageFunctions_Click;
            cmdExportTab.Click     += PageFunctions_Click;
            cmdExportTabIcon.Click += PageFunctions_Click;
            cmdImportTab.Click     += PageFunctions_Click;
            cmdImportTabIcon.Click += PageFunctions_Click;

            cmdExtensions.Click     += CommonTasks_Click;
            cmdExtensionsIcon.Click += CommonTasks_Click;
            cmdFiles.Click          += CommonTasks_Click;
            cmdFilesIcon.Click      += CommonTasks_Click;
            cmdRoles.Click          += CommonTasks_Click;
            cmdRolesIcon.Click      += CommonTasks_Click;
            cmdSite.Click           += CommonTasks_Click;
            cmdSiteIcon.Click       += CommonTasks_Click;
            cmdUsers.Click          += CommonTasks_Click;
            cmdUsersIcon.Click      += CommonTasks_Click;

            try
            {
                if (IsPageAdmin())
                {
                    tblControlPanel.Visible = true;
                    cmdVisibility.Visible   = true;
                    rowControlPanel.Visible = true;

                    Localize();

                    if (Globals.IsAdminControl())
                    {
                        cmdAddModule.Enabled = false;
                    }
                    if (!Page.IsPostBack)
                    {
                        optModuleType.Items.FindByValue("0").Selected = true;

                        if (!TabPermissionController.CanAddPage())
                        {
                            DisableAction(imgAddTabIcon, "iconbar_addtab_bw.gif", cmdAddTabIcon, cmdAddTab);
                        }
                        if (!TabPermissionController.CanManagePage())
                        {
                            DisableAction(imgEditTabIcon, "iconbar_edittab_bw.gif", cmdEditTabIcon, cmdEditTab);
                        }
                        if (!TabPermissionController.CanDeletePage() || TabController.IsSpecialTab(TabController.CurrentPage.TabID, PortalSettings))
                        {
                            DisableAction(imgDeleteTabIcon, "iconbar_deletetab_bw.gif", cmdDeleteTabIcon, cmdDeleteTab);
                        }
                        else
                        {
                            ClientAPI.AddButtonConfirm(cmdDeleteTab, Localization.GetString("DeleteTabConfirm", LocalResourceFile));
                            ClientAPI.AddButtonConfirm(cmdDeleteTabIcon, Localization.GetString("DeleteTabConfirm", LocalResourceFile));
                        }
                        if (!TabPermissionController.CanCopyPage())
                        {
                            DisableAction(imgCopyTabIcon, "iconbar_copytab_bw.gif", cmdCopyTabIcon, cmdCopyTab);
                        }
                        if (!TabPermissionController.CanExportPage())
                        {
                            DisableAction(imgExportTabIcon, "iconbar_exporttab_bw.gif", cmdExportTabIcon, cmdExportTab);
                        }
                        if (!TabPermissionController.CanImportPage())
                        {
                            DisableAction(imgImportTabIcon, "iconbar_importtab_bw.gif", cmdImportTabIcon, cmdImportTab);
                        }
                        if (!TabPermissionController.CanAddContentToPage())
                        {
                            pnlModules.Visible = false;
                        }
                        if (!GetModulePermission(PortalSettings.PortalId, "Site Settings"))
                        {
                            DisableAction(imgSiteIcon, "iconbar_site_bw.gif", cmdSiteIcon, cmdSite);
                        }
                        if (GetModulePermission(PortalSettings.PortalId, "User Accounts") == false)
                        {
                            DisableAction(imgUsersIcon, "iconbar_users_bw.gif", cmdUsersIcon, cmdUsers);
                        }
                        if (GetModulePermission(PortalSettings.PortalId, "Security Roles") == false)
                        {
                            DisableAction(imgRolesIcon, "iconbar_roles_bw.gif", cmdRolesIcon, cmdRoles);
                        }
                        if (GetModulePermission(PortalSettings.PortalId, "Digital Asset Management") == false)
                        {
                            DisableAction(imgFilesIcon, "iconbar_files_bw.gif", cmdFilesIcon, cmdFiles);
                        }
                        if (GetModulePermission(PortalSettings.PortalId, "Extensions") == false)
                        {
                            DisableAction(imgExtensionsIcon, "iconbar_extensions_bw.gif", cmdExtensionsIcon, cmdExtensions);
                        }
                        UserInfo objUser = UserController.GetCurrentUserInfo();
                        if (objUser != null)
                        {
                            if (objUser.IsSuperUser)
                            {
                                hypMessage.ImageUrl = Upgrade.UpgradeIndicator(DotNetNukeContext.Current.Application.Version, Request.IsLocal, Request.IsSecureConnection);
                                if (!String.IsNullOrEmpty(hypMessage.ImageUrl))
                                {
                                    hypMessage.ToolTip     = Localization.GetString("hypUpgrade.Text", LocalResourceFile);
                                    hypMessage.NavigateUrl = Upgrade.UpgradeRedirect();
                                }
                                cmdHost.Visible = true;
                            }
                            else //branding
                            {
                                if (PortalSecurity.IsInRole(PortalSettings.AdministratorRoleName) && Host.DisplayCopyright)
                                {
                                    hypMessage.ImageUrl    = "~/images/branding/iconbar_logo.png";
                                    hypMessage.ToolTip     = DotNetNukeContext.Current.Application.Description;
                                    hypMessage.NavigateUrl = Localization.GetString("hypMessageUrl.Text", LocalResourceFile);
                                }
                                else
                                {
                                    hypMessage.Visible = false;
                                }
                                cmdHost.Visible  = false;
                                cmdAdmin.Visible = GetModulePermission(PortalSettings.PortalId, "Console");
                            }
                            imgHost.Visible  = cmdHost.Visible;
                            imgAdmin.Visible = cmdAdmin.Visible;
                        }
                        BindData();
                        int intItem;
                        for (intItem = 0; intItem <= PortalSettings.ActiveTab.Panes.Count - 1; intItem++)
                        {
                            cboPanes.Items.Add(Convert.ToString(PortalSettings.ActiveTab.Panes[intItem]));
                        }
                        if (cboPanes.Items.FindByValue(Globals.glbDefaultPane) != null)
                        {
                            cboPanes.Items.FindByValue(Globals.glbDefaultPane).Selected = true;
                        }
                        if (cboPermission.Items.Count > 0)
                        {
                            cboPermission.SelectedIndex = 0; //view
                        }
                        LoadPositions();

                        if (!string.IsNullOrEmpty(Host.HelpURL))
                        {
                            var version = Globals.FormatVersion(DotNetNukeContext.Current.Application.Version, false);
                            cmdHelp.NavigateUrl     = Globals.FormatHelpUrl(Host.HelpURL, PortalSettings, version);
                            cmdHelpIcon.NavigateUrl = cmdHelp.NavigateUrl;
                            cmdHelp.Enabled         = true;
                            cmdHelpIcon.Enabled     = true;
                        }
                        else
                        {
                            cmdHelp.Enabled     = false;
                            cmdHelpIcon.Enabled = false;
                        }
                        SetMode(false);
                        SetVisibility(false);
                    }

                    //Register jQuery
                    jQuery.RequestRegistration();
                }
                else if (IsModuleAdmin())
                {
                    tblControlPanel.Visible = true;
                    cmdVisibility.Visible   = false;
                    rowControlPanel.Visible = false;
                    if (!Page.IsPostBack)
                    {
                        SetMode(false);
                        SetVisibility(false);
                    }
                }
                else
                {
                    tblControlPanel.Visible = false;
                }
            }
            catch (Exception exc) //Module failed to load
            {
                Exceptions.ProcessModuleLoadException(this, exc);
            }
        }
Exemple #13
0
        public override IConsoleResultModel Run()
        {
            try
            {
                var desktopModule = DesktopModuleController.GetDesktopModuleByModuleName(ModuleName, PortalId);
                if (desktopModule == null)
                {
                    return(new ConsoleErrorResultModel(string.Format(LocalizeString("Prompt_DesktopModuleNotFound"), ModuleName)));
                }

                var message = new KeyValuePair <HttpStatusCode, string>();
                var page    = TabController.Instance.GetTab(PageId, PortalSettings.PortalId);
                if (page == null)
                {
                    message = new KeyValuePair <HttpStatusCode, string>(HttpStatusCode.NotFound, string.Format(Localization.GetString("Prompt_PageNotFound", LocalResourceFile), PageId));
                    return(null);
                }
                if (!TabPermissionController.CanManagePage(page))
                {
                    message = new KeyValuePair <HttpStatusCode, string>(HttpStatusCode.NotFound, Localization.GetString("Prompt_InsufficientPermissions", LocalResourceFile));
                    return(null);
                }

                var moduleList = new List <ModuleInfo>();

                foreach (var objModuleDefinition in ModuleDefinitionController.GetModuleDefinitionsByDesktopModuleID(desktopModule.DesktopModuleID).Values)
                {
                    var objModule = new ModuleInfo();
                    objModule.Initialize(PortalSettings.PortalId);

                    objModule.PortalID    = PortalSettings.PortalId;
                    objModule.TabID       = PageId;
                    objModule.ModuleOrder = 0;
                    objModule.ModuleTitle = string.IsNullOrEmpty(ModuleTitle) ? objModuleDefinition.FriendlyName : ModuleTitle;
                    objModule.PaneName    = Pane;
                    objModule.ModuleDefID = objModuleDefinition.ModuleDefID;
                    if (objModuleDefinition.DefaultCacheTime > 0)
                    {
                        objModule.CacheTime = objModuleDefinition.DefaultCacheTime;
                        if (PortalSettings.DefaultModuleId > Null.NullInteger &&
                            PortalSettings.DefaultTabId > Null.NullInteger)
                        {
                            var defaultModule = ModuleController.Instance.GetModule(PortalSettings.DefaultModuleId,
                                                                                    PortalSettings.DefaultTabId, true);
                            if (defaultModule != null)
                            {
                                objModule.CacheTime = defaultModule.CacheTime;
                            }
                        }
                    }

                    ModuleController.Instance.InitialModulePermission(objModule, objModule.TabID, 0);

                    if (PortalSettings.ContentLocalizationEnabled)
                    {
                        var defaultLocale = LocaleController.Instance.GetDefaultLocale(PortalSettings.PortalId);
                        //check whether original tab is exists, if true then set culture code to default language,
                        //otherwise set culture code to current.
                        objModule.CultureCode =
                            TabController.Instance.GetTabByCulture(objModule.TabID, PortalSettings.PortalId, defaultLocale) !=
                            null
                                ? defaultLocale.Code
                                : PortalSettings.CultureCode;
                    }
                    else
                    {
                        objModule.CultureCode = Null.NullString;
                    }
                    objModule.AllTabs   = false;
                    objModule.Alignment = null;

                    ModuleController.Instance.AddModule(objModule);
                    moduleList.Add(objModule);

                    // Set position so future additions to page can operate correctly
                    var position = ModuleController.Instance.GetTabModule(objModule.TabModuleID).ModuleOrder + 1;
                }

                if (moduleList == null)
                {
                    return(new ConsoleErrorResultModel(message.Value));
                }
                if (moduleList.Count == 0)
                {
                    return(new ConsoleErrorResultModel(LocalizeString("Prompt_NoModulesAdded")));
                }
                var modules = moduleList.Select(newModule => ModuleController.Instance.GetTabModule(newModule.TabModuleID)).ToList();

                return(new ConsoleResultModel(string.Format(LocalizeString("Prompt_ModuleAdded"), modules.Count, moduleList.Count == 1 ? string.Empty : "s"))
                {
                    Data = modules, Records = modules.Count
                });
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                return(new ConsoleErrorResultModel(LocalizeString("Prompt_AddModuleError")));
            }
        }
 /// <summary>
 /// Checks if current user is page admin of the currentpage
 /// </summary>
 /// <returns>Returns true if current user has any admin permission. Otherwise returns false</returns>
 public static bool IsPageAdmin()
 {
     return(TabPermissionController.CanAddContentToPage() || TabPermissionController.CanAddPage() || TabPermissionController.CanAdminPage() || TabPermissionController.CanCopyPage() ||
            TabPermissionController.CanDeletePage() || TabPermissionController.CanExportPage() || TabPermissionController.CanImportPage() || TabPermissionController.CanManagePage());
 }
Exemple #15
0
        public List <ModuleInfo> AddNewModule(PortalSettings portalSettings, string title, int desktopModuleId, int tabId, string paneName, int position, int permissionType, string align, out KeyValuePair <HttpStatusCode, string> message)
        {
            message = new KeyValuePair <HttpStatusCode, string>();
            var page = TabController.Instance.GetTab(tabId, portalSettings.PortalId);

            if (page == null)
            {
                message = new KeyValuePair <HttpStatusCode, string>(HttpStatusCode.NotFound, string.Format(Localization.GetString("Prompt_PageNotFound", Constants.LocalResourcesFile), tabId));
                return(null);
            }
            if (!TabPermissionController.CanManagePage(page))
            {
                message = new KeyValuePair <HttpStatusCode, string>(HttpStatusCode.NotFound, Localization.GetString("Prompt_InsufficientPermissions", Constants.LocalResourcesFile));
                return(null);
            }

            var moduleList = new List <ModuleInfo>();

            foreach (var objModuleDefinition in ModuleDefinitionController.GetModuleDefinitionsByDesktopModuleID(desktopModuleId).Values)
            {
                var objModule = new ModuleInfo();
                objModule.Initialize(portalSettings.PortalId);

                objModule.PortalID    = portalSettings.PortalId;
                objModule.TabID       = tabId;
                objModule.ModuleOrder = position;
                objModule.ModuleTitle = string.IsNullOrEmpty(title) ? objModuleDefinition.FriendlyName : title;
                objModule.PaneName    = paneName;
                objModule.ModuleDefID = objModuleDefinition.ModuleDefID;
                if (objModuleDefinition.DefaultCacheTime > 0)
                {
                    objModule.CacheTime = objModuleDefinition.DefaultCacheTime;
                    if (portalSettings.DefaultModuleId > Null.NullInteger &&
                        portalSettings.DefaultTabId > Null.NullInteger)
                    {
                        var defaultModule = ModuleController.Instance.GetModule(portalSettings.DefaultModuleId,
                                                                                portalSettings.DefaultTabId, true);
                        if (defaultModule != null)
                        {
                            objModule.CacheTime = defaultModule.CacheTime;
                        }
                    }
                }

                ModuleController.Instance.InitialModulePermission(objModule, objModule.TabID, permissionType);

                if (portalSettings.ContentLocalizationEnabled)
                {
                    var defaultLocale = LocaleController.Instance.GetDefaultLocale(portalSettings.PortalId);
                    //check whether original tab is exists, if true then set culture code to default language,
                    //otherwise set culture code to current.
                    objModule.CultureCode =
                        TabController.Instance.GetTabByCulture(objModule.TabID, portalSettings.PortalId, defaultLocale) !=
                        null
                            ? defaultLocale.Code
                            : portalSettings.CultureCode;
                }
                else
                {
                    objModule.CultureCode = Null.NullString;
                }
                objModule.AllTabs   = false;
                objModule.Alignment = align;

                ModuleController.Instance.AddModule(objModule);
                moduleList.Add(objModule);

                // Set position so future additions to page can operate correctly
                position = ModuleController.Instance.GetTabModule(objModule.TabModuleID).ModuleOrder + 1;
            }
            return(moduleList);
        }
        protected bool CanEdit(int editTabId, string cultureCode)
        {
            Locale locale = LocaleController.Instance.GetLocale(cultureCode);

            return(TabPermissionController.CanManagePage(new TabController().GetTabByCulture(editTabId, PortalSettings.PortalId, locale)));
        }
        internal static bool IsPageAdminInternal()
        {
            bool _IsPageAdmin = Null.NullBoolean;

            if (TabPermissionController.CanAddContentToPage() || TabPermissionController.CanAddPage() || TabPermissionController.CanAdminPage() || TabPermissionController.CanCopyPage() ||
                TabPermissionController.CanDeletePage() || TabPermissionController.CanExportPage() || TabPermissionController.CanImportPage() || TabPermissionController.CanManagePage())
            {
                _IsPageAdmin = true;
            }

            return(_IsPageAdmin);
        }
Exemple #18
0
        protected void CmdUpdateClick(object sender, EventArgs e)
        {
            if (TabPermissionController.CanManagePage())
            {
                TabInfo selectedTab = null;
                if (!string.IsNullOrEmpty(this.PageLst.SelectedValue))
                {
                    int selectedTabID = int.Parse(this.PageLst.SelectedValue);
                    selectedTab = TabController.Instance.GetTab(selectedTabID, PortalSettings.ActiveTab.PortalID, false);
                }

                TabRelativeLocation tabLocation = TabRelativeLocation.NOTSET;
                if (!string.IsNullOrEmpty(this.LocationLst.SelectedValue))
                {
                    tabLocation = (TabRelativeLocation)Enum.Parse(typeof(TabRelativeLocation), this.LocationLst.SelectedValue);
                }

                TabInfo tab = this.CurrentTab;

                tab.TabName     = this.Name.Text;
                tab.IsVisible   = this.IncludeInMenu.Checked;
                tab.DisableLink = this.IsDisabled.Checked;
                tab.IsSecure    = this.IsSecure.Checked;
                tab.SkinSrc     = this.SkinLst.SelectedValue;

                string errMsg = string.Empty;
                try
                {
                    RibbonBarManager.SaveTabInfoObject(tab, selectedTab, tabLocation, null);
                }
                catch (DotNetNukeException ex)
                {
                    Exceptions.LogException(ex);
                    errMsg = (ex.ErrorCode != DotNetNukeErrorCode.NotSet) ? this.GetString("Err." + ex.ErrorCode) : ex.Message;
                }
                catch (Exception ex)
                {
                    Exceptions.LogException(ex);
                    errMsg = ex.Message;
                }

                // Clear the Tab's Cached modules
                DataCache.ClearModuleCache(PortalSettings.ActiveTab.TabID);

                // Update Cached Tabs as TabPath may be needed before cache is cleared
                TabInfo tempTab;
                if (TabController.Instance.GetTabsByPortal(PortalSettings.ActiveTab.PortalID).TryGetValue(tab.TabID, out tempTab))
                {
                    tempTab.TabPath = tab.TabPath;
                }

                if (string.IsNullOrEmpty(errMsg))
                {
                    this.Response.Redirect(this._navigationManager.NavigateURL(tab.TabID));
                }
                else
                {
                    errMsg = string.Format("<p>{0}</p><p>{1}</p>", this.GetString("Err.Header"), errMsg);
                    Web.UI.Utilities.RegisterAlertOnPageLoad(this, new MessageWindowParameters(errMsg)
                    {
                        Title = this.GetString("Err.Title")
                    });
                }
            }
        }
Exemple #19
0
        protected bool IsPageAdmin()
        {
            bool isPageAdmin = Null.NullBoolean;

            if (TabPermissionController.CanAddContentToPage() || TabPermissionController.CanAddPage() || TabPermissionController.CanAdminPage() || TabPermissionController.CanCopyPage() ||
                TabPermissionController.CanDeletePage() || TabPermissionController.CanExportPage() || TabPermissionController.CanImportPage() || TabPermissionController.CanManagePage())
            {
                isPageAdmin = true;
            }
            return(isPageAdmin);
        }
        protected virtual bool HasToolPermissions(string toolName)
        {
            bool isHostTool = false;

            if (this.ToolInfo.ToolName == toolName)
            {
                isHostTool = this.ToolInfo.IsHostTool;
            }
            else if (this.AllTools.ContainsKey(toolName))
            {
                isHostTool = this.AllTools[toolName].IsHostTool;
            }

            if (isHostTool && !UserController.Instance.GetCurrentUserInfo().IsSuperUser)
            {
                return(false);
            }

            bool returnValue = true;

            switch (toolName)
            {
            case "PageSettings":
            case "CopyDesignToChildren":
            case "CopyPermissionsToChildren":
                returnValue = TabPermissionController.CanManagePage();

                if (returnValue && toolName == "CopyPermissionsToChildren")
                {
                    if (!PortalSecurity.IsInRole("Administrators"))
                    {
                        returnValue = false;
                    }
                }

                break;

            case "CopyPage":
                returnValue = TabPermissionController.CanCopyPage();
                break;

            case "DeletePage":
                returnValue = TabPermissionController.CanDeletePage();
                break;

            case "ImportPage":
                returnValue = TabPermissionController.CanImportPage();
                break;

            case "ExportPage":
                returnValue = TabPermissionController.CanExportPage();
                break;

            case "NewPage":
                returnValue = TabPermissionController.CanAddPage();
                break;

            case "Help":
                returnValue = !string.IsNullOrEmpty(Host.HelpURL);
                break;

            default:
                // if it has a module definition, look it up and check permissions
                // if it doesn't exist, assume no permission
                string friendlyName = string.Empty;
                if (this.ToolInfo.ToolName == toolName)
                {
                    friendlyName = this.ToolInfo.ModuleFriendlyName;
                }
                else if (this.AllTools.ContainsKey(toolName))
                {
                    friendlyName = this.AllTools[toolName].ModuleFriendlyName;
                }

                if (!string.IsNullOrEmpty(friendlyName))
                {
                    returnValue = false;
                    ModuleInfo moduleInfo;

                    if (isHostTool)
                    {
                        moduleInfo = GetInstalledModule(Null.NullInteger, friendlyName);
                    }
                    else
                    {
                        moduleInfo = GetInstalledModule(PortalSettings.PortalId, friendlyName);
                    }

                    if (moduleInfo != null)
                    {
                        returnValue = ModulePermissionController.CanViewModule(moduleInfo);
                    }
                }

                break;
            }

            return(returnValue);
        }
        protected string BuildToolUrl(string toolName, bool isHostTool, string moduleFriendlyName,
                                      string controlKey, string navigateUrl, bool showAsPopUp)
        {
            if ((isHostTool && !UserController.GetCurrentUserInfo().IsSuperUser))
            {
                return("javascript:void(0);");
            }

            if ((!string.IsNullOrEmpty(navigateUrl)))
            {
                return(navigateUrl);
            }

            string returnValue = "javascript:void(0);";

            switch (toolName)
            {
            case "PageSettings":

                if (TabPermissionController.CanManagePage())
                {
                    returnValue = Globals.NavigateURL(PortalSettings.ActiveTab.TabID, "Tab", "action=edit&activeTab=settingTab");
                }

                break;

            case "CopyPage":

                if (TabPermissionController.CanCopyPage())
                {
                    returnValue = Globals.NavigateURL(PortalSettings.ActiveTab.TabID, "Tab", "action=copy&activeTab=copyTab");
                }

                break;

            case "DeletePage":

                if (TabPermissionController.CanDeletePage())
                {
                    returnValue = Globals.NavigateURL(PortalSettings.ActiveTab.TabID, "Tab", "action=delete");
                }

                break;

            case "PageTemplate":

                if (TabPermissionController.CanManagePage())
                {
                    returnValue = Globals.NavigateURL(PortalSettings.ActiveTab.TabID, "Tab", "action=edit&activeTab=advancedTab");
                }

                break;

            case "PagePermission":

                if (TabPermissionController.CanAdminPage())
                {
                    returnValue = Globals.NavigateURL(PortalSettings.ActiveTab.TabID, "Tab", "action=edit&activeTab=permissionsTab");
                }

                break;

            case "ImportPage":

                if (TabPermissionController.CanImportPage())
                {
                    returnValue = Globals.NavigateURL(PortalSettings.ActiveTab.TabID, "ImportTab");
                }

                break;

            case "ExportPage":

                if (TabPermissionController.CanExportPage())
                {
                    returnValue = Globals.NavigateURL(PortalSettings.ActiveTab.TabID, "ExportTab");
                }

                break;

            case "NewPage":

                if (DotNetNuke.Security.Permissions.TabPermissionController.CanAddPage())
                {
                    returnValue = Globals.NavigateURL("Tab", "activeTab=settingTab");
                }

                break;

            default:
                if ((!string.IsNullOrEmpty(moduleFriendlyName)))
                {
                    var additionalParams = new List <string>();
                    if ((toolName == "UploadFile" || toolName == "HostUploadFile"))
                    {
                        additionalParams.Add("ftype=File");
                        additionalParams.Add("rtab=" + PortalSettings.ActiveTab.TabID);
                    }
                    returnValue = GetTabURL(additionalParams, toolName, isHostTool,
                                            moduleFriendlyName, controlKey, showAsPopUp);
                }
                break;
            }
            return(returnValue);
        }
        protected string BuildToolUrl(string toolName, bool isHostTool, string moduleFriendlyName,
                                      string controlKey, string navigateUrl, bool showAsPopUp)
        {
            if (isHostTool && !UserController.Instance.GetCurrentUserInfo().IsSuperUser)
            {
                return("javascript:void(0);");
            }

            if (!string.IsNullOrEmpty(navigateUrl))
            {
                return(navigateUrl);
            }

            string returnValue = "javascript:void(0);";

            switch (toolName)
            {
            case "PageSettings":
                if (TabPermissionController.CanManagePage())
                {
                    returnValue = this._navigationManager.NavigateURL(this.PortalSettings.ActiveTab.TabID, "Tab", "action=edit&activeTab=settingTab");
                }

                break;

            case "CopyPage":
                if (TabPermissionController.CanCopyPage())
                {
                    returnValue = this._navigationManager.NavigateURL(this.PortalSettings.ActiveTab.TabID, "Tab", "action=copy&activeTab=copyTab");
                }

                break;

            case "DeletePage":
                if (TabPermissionController.CanDeletePage())
                {
                    returnValue = this._navigationManager.NavigateURL(this.PortalSettings.ActiveTab.TabID, "Tab", "action=delete");
                }

                break;

            case "PageTemplate":
                if (TabPermissionController.CanManagePage())
                {
                    returnValue = this._navigationManager.NavigateURL(this.PortalSettings.ActiveTab.TabID, "Tab", "action=edit&activeTab=advancedTab");
                }

                break;

            case "PageLocalization":
                if (TabPermissionController.CanManagePage())
                {
                    returnValue = this._navigationManager.NavigateURL(this.PortalSettings.ActiveTab.TabID, "Tab", "action=edit&activeTab=localizationTab");
                }

                break;

            case "PagePermission":
                if (TabPermissionController.CanAdminPage())
                {
                    returnValue = this._navigationManager.NavigateURL(this.PortalSettings.ActiveTab.TabID, "Tab", "action=edit&activeTab=permissionsTab");
                }

                break;

            case "ImportPage":
                if (TabPermissionController.CanImportPage())
                {
                    returnValue = this._navigationManager.NavigateURL(this.PortalSettings.ActiveTab.TabID, "ImportTab");
                }

                break;

            case "ExportPage":
                if (TabPermissionController.CanExportPage())
                {
                    returnValue = this._navigationManager.NavigateURL(this.PortalSettings.ActiveTab.TabID, "ExportTab");
                }

                break;

            case "NewPage":
                if (TabPermissionController.CanAddPage())
                {
                    returnValue = this._navigationManager.NavigateURL("Tab", "activeTab=settingTab");
                }

                break;

            case "PublishPage":
                if (TabPermissionController.CanAdminPage())
                {
                    returnValue = this._navigationManager.NavigateURL(this.PortalSettings.ActiveTab.TabID);
                }

                break;

            default:
                if (!string.IsNullOrEmpty(moduleFriendlyName))
                {
                    var additionalParams = new List <string>();
                    returnValue = this.GetTabURL(additionalParams, toolName, isHostTool,
                                                 moduleFriendlyName, controlKey, showAsPopUp);
                }

                break;
            }

            return(returnValue);
        }
Exemple #23
0
            public static ReviewSettings GetPageReviewSettings(PortalSettings PortalSettings)
            {
                int      TabID    = PortalSettings.ActiveTab.TabID;
                UserInfo UserInfo = PortalSettings.UserInfo;
                Pages    page     = GetLatestVersion(TabID, PortalSettings.UserInfo);

                bool   IsPageDraft               = false;
                bool   IsContentApproval         = false;
                bool   IsLocked                  = false;
                string NextStateName             = string.Empty;
                bool   IsModeratorEditPermission = false;
                int    CurruntWorkflowID         = WorkflowManager.GetDefaultWorkflow(TabID);

                if (page != null && page.StateID.HasValue)
                {
                    WorkflowState State = WorkflowManager.GetStateByID(page.StateID.Value);
                    if (State != null)
                    {
                        bool IsFirstState = WorkflowManager.IsFirstState(State.WorkflowID, State.StateID);
                        bool IsLastState  = WorkflowManager.IsLastState(State.WorkflowID, State.StateID);
                        IsPageDraft = WorkflowManager.IsFirstState(State.WorkflowID, State.StateID);
                        IsLocked    = !IsFirstState && !IsLastState;

                        if (IsLastState && State.WorkflowID != CurruntWorkflowID)
                        {
                            State = WorkflowManager.GetFirstStateID(CurruntWorkflowID);
                        }

                        if (WorkflowManager.GetWorkflowType(State.WorkflowID) == Core.Components.Enum.WorkflowTypes.ContentApproval)
                        {
                            IsContentApproval = true;


                            if (WorkflowManager.HasReviewPermission(State.StateID, UserInfo) && TabPermissionController.CanManagePage(PortalSettings.ActiveTab))
                            {
                                WorkflowState NextState = Core.Managers.WorkflowManager.GetStateByID(Core.Managers.WorkflowManager.GetNextStateID(State.WorkflowID, State.StateID));
                                NextStateName             = NextState != null ? NextState.Name : string.Empty;
                                IsModeratorEditPermission = true;
                            }
                            else
                            {
                                WorkflowState NextState = Core.Managers.WorkflowManager.GetStateByID(Core.Managers.WorkflowManager.GetNextStateID(State.WorkflowID, Core.Managers.WorkflowManager.GetFirstStateID(State.WorkflowID).StateID));
                                NextStateName = NextState != null ? NextState.Name : string.Empty;
                            }
                        }
                    }
                }
                else
                {
                    if (CurruntWorkflowID > 0)
                    {
                        IsContentApproval = Core.Managers.WorkflowManager.GetWorkflowType(CurruntWorkflowID) == Core.Components.Enum.WorkflowTypes.ContentApproval;
                        WorkflowState NextState = Core.Managers.WorkflowManager.GetStateByID(Core.Managers.WorkflowManager.GetNextStateID(CurruntWorkflowID, Core.Managers.WorkflowManager.GetFirstStateID(CurruntWorkflowID).StateID));
                        NextStateName = NextState != null ? NextState.Name : string.Empty;
                    }
                }

                ReviewSettings ReviewSetting = new ReviewSettings
                {
                    IsPageDraft               = IsPageDraft,
                    IsContentApproval         = IsContentApproval,
                    NextStateName             = NextStateName,
                    IsLocked                  = IsLocked,
                    IsModeratorEditPermission = IsModeratorEditPermission
                };

                return(ReviewSetting);
            }