Beispiel #1
0
        /// -----------------------------------------------------------------------------
        /// <summary>
        /// OnInit runs when the Skin is initialised.
        /// </summary>
        /// <history>
        ///     [cnurse]	07/04/2005	Documented
        ///     [cnurse]    12/05/2007  Refactored
        ///     [cnurse]    04/17/2009  Refactored to use SkinAdapter
        /// </history>
        /// -----------------------------------------------------------------------------
        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);

            //Load the Panes
            LoadPanes();

            //Load the Module Control(s)
            bool success = Globals.IsAdminControl() ? ProcessSlaveModule() : ProcessMasterModules();

            //Load the Control Panel
            InjectControlPanel();

            //Register any error messages on the Skin
            if (Request.QueryString["error"] != null && Host.ShowCriticalErrors)
            {
                AddPageMessage(this, Localization.GetString("CriticalError.Error"), " ", ModuleMessage.ModuleMessageType.RedError);

                if (UserController.Instance.GetCurrentUserInfo().IsSuperUser)
                {
                    ServicesFramework.Instance.RequestAjaxScriptSupport();
                    ServicesFramework.Instance.RequestAjaxAntiForgerySupport();

                    JavaScript.RequestRegistration(CommonJs.jQueryUI);
                    JavaScript.RegisterClientReference(Page, ClientAPI.ClientNamespaceReferences.dnn_dom);
                    ClientResourceManager.RegisterScript(Page, "~/resources/shared/scripts/dnn.logViewer.js");
                }
            }

            if (!TabPermissionController.CanAdminPage() && !success)
            {
                //only display the warning to non-administrators (administrators will see the errors)
                AddPageMessage(this, Localization.GetString("ModuleLoadWarning.Error"), string.Format(Localization.GetString("ModuleLoadWarning.Text"), PortalSettings.Email), ModuleMessage.ModuleMessageType.YellowWarning);
            }

            InvokeSkinEvents(SkinEventType.OnSkinInit);

            if (HttpContext.Current != null && HttpContext.Current.Items.Contains(OnInitMessage))
            {
                var messageType = ModuleMessage.ModuleMessageType.YellowWarning;
                if (HttpContext.Current.Items.Contains(OnInitMessageType))
                {
                    messageType = (ModuleMessage.ModuleMessageType)Enum.Parse(typeof(ModuleMessage.ModuleMessageType), HttpContext.Current.Items[OnInitMessageType].ToString(), true);
                }
                AddPageMessage(this, string.Empty, HttpContext.Current.Items[OnInitMessage].ToString(), messageType);
            }

            //Process the Panes attributes
            ProcessPanes();
        }
Beispiel #2
0
 public static bool CanShowTab(TabInfo objTab, bool isAdminMode, bool showDisabled, bool showHidden)
 {
     //if tab is visible, not deleted, not expired (or admin), and user has permission to see it...
     if ((objTab.IsVisible || showHidden) && !objTab.IsDeleted && (!objTab.DisableLink || showDisabled) &&
         (((objTab.StartDate < DateTime.Now || objTab.StartDate == Null.NullDate) && (objTab.EndDate > DateTime.Now || objTab.EndDate == Null.NullDate)) || isAdminMode) &&
         TabPermissionController.CanNavigateToPage(objTab))
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
        public override string GetDocUrl(SearchResult searchResult)
        {
            var url           = Localization.Localization.GetString("SEARCH_NoLink");
            var tabController = new TabController();

            var tab = tabController.GetTab(searchResult.TabId, searchResult.PortalId, false);

            if (TabPermissionController.CanViewPage(tab))
            {
                url = Globals.NavigateURL(searchResult.TabId, string.Empty, searchResult.QueryString);
            }

            return(url);
        }
        protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                string TabId = GridView1.DataKeys[e.Row.RowIndex].Value.ToString();
                string RoleId = ddlRoleList.SelectedValue;
                int    PermissionId = Convert.ToInt32(ddlPermissionList.SelectedValue);
                string SelectedTabId = null, UserId = null;
                TabPermissionController tab_permission_obj = new TabPermissionController();
                DataTable dt = tab_permission_obj.GetListByRoleIdPermissionId(RoleId, PermissionId);

                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    SelectedTabId = dt.Rows[i]["TabId"].ToString();
                    if (dt.Rows[i]["UserId"].ToString() != string.Empty)
                    {
                        UserId = dt.Rows[i]["UserId"].ToString();
                    }
                    else
                    {
                        if (Session["UserId"] != null && Session["UserId"].ToString() != string.Empty)
                        {
                            UserId = Session["UserId"].ToString();
                        }
                    }

                    if (TabId == SelectedTabId)
                    {
                        CheckBox chkSelectedPermissionRight = (CheckBox)e.Row.Cells[2].FindControl("chkSelectedPermissionRight");
                        if (chkSelectedPermissionRight != null)
                        {
                            chkSelectedPermissionRight.Checked = true;
                        }

                        CheckBox chkSelectedAllowAccessRight = (CheckBox)e.Row.Cells[3].FindControl("chkSelectedAllowAccessRight");
                        if (chkSelectedAllowAccessRight != null)
                        {
                            chkSelectedAllowAccessRight.Checked = true;
                        }

                        //TextBox txtUserId = (TextBox)e.Row.Cells[4].FindControl("txtUserId");
                        //txtUserId.Text = UserId;
                        //txtUserId.Attributes.Add("value", txtUserId.Text);

                        DropDownList ddlUserList = (DropDownList)e.Row.FindControl("ddlUserList");
                        PopulateUserList(ddlUserList, UserId);
                    }
                }
            }
        }
Beispiel #5
0
        /// -----------------------------------------------------------------------------
        /// <summary>
        /// ProcessContentPane processes the ContentPane, setting its style and other
        /// attributes.
        /// </summary>
        private void ProcessContentPane()
        {
            this.SetAlignment();

            this.SetBackground();

            this.SetBorder();

            // display visual indicator if module is only visible to administrators
            string viewRoles = this.ModuleConfiguration.InheritViewPermissions
                                   ? TabPermissionController.GetTabPermissions(this.ModuleConfiguration.TabID, this.ModuleConfiguration.PortalID).ToString("VIEW")
                                   : this.ModuleConfiguration.ModulePermissions.ToString("VIEW");

            string pageEditRoles   = TabPermissionController.GetTabPermissions(this.ModuleConfiguration.TabID, this.ModuleConfiguration.PortalID).ToString("EDIT");
            string moduleEditRoles = this.ModuleConfiguration.ModulePermissions.ToString("EDIT");

            viewRoles       = viewRoles.Replace(";", string.Empty).Trim().ToLowerInvariant();
            pageEditRoles   = pageEditRoles.Replace(";", string.Empty).Trim().ToLowerInvariant();
            moduleEditRoles = moduleEditRoles.Replace(";", string.Empty).Trim().ToLowerInvariant();

            var showMessage  = false;
            var adminMessage = Null.NullString;

            if (viewRoles.Equals(this.PortalSettings.AdministratorRoleName, StringComparison.InvariantCultureIgnoreCase) &&
                (moduleEditRoles.Equals(this.PortalSettings.AdministratorRoleName, StringComparison.InvariantCultureIgnoreCase) ||
                 string.IsNullOrEmpty(moduleEditRoles)) &&
                pageEditRoles.Equals(this.PortalSettings.AdministratorRoleName, StringComparison.InvariantCultureIgnoreCase))
            {
                adminMessage = Localization.GetString("ModuleVisibleAdministrator.Text");
                showMessage  = !this.ModuleConfiguration.HideAdminBorder && !Globals.IsAdminControl();
            }

            if (this.ModuleConfiguration.StartDate >= DateTime.Now)
            {
                adminMessage = string.Format(Localization.GetString("ModuleEffective.Text"), this.ModuleConfiguration.StartDate);
                showMessage  = !Globals.IsAdminControl();
            }

            if (this.ModuleConfiguration.EndDate <= DateTime.Now)
            {
                adminMessage = string.Format(Localization.GetString("ModuleExpired.Text"), this.ModuleConfiguration.EndDate);
                showMessage  = !Globals.IsAdminControl();
            }

            if (showMessage)
            {
                this.AddAdministratorOnlyHighlighting(adminMessage);
            }
        }
Beispiel #6
0
        private void ModuleMoveToPanePostBack(Utilities.ClientAPIPostBackEventArgs args)
        {
            PortalSettings PortalSettings = (PortalSettings)HttpContext.Current.Items["PortalSettings"];

            if (TabPermissionController.CanAdminPage())
            {
                int              intModuleID = Convert.ToInt32(args.EventArguments["moduleid"]);
                string           strPaneName = Convert.ToString(args.EventArguments["pane"]);
                int              intOrder    = Convert.ToInt32(args.EventArguments["order"]);
                ModuleController objModules  = new ModuleController();
                objModules.UpdateModuleOrder(PortalSettings.ActiveTab.TabID, intModuleID, intOrder, strPaneName);
                objModules.UpdateTabModuleOrder(PortalSettings.ActiveTab.TabID);
                PaneControl.Page.Response.Redirect(PaneControl.Page.Request.RawUrl, true);
            }
        }
Beispiel #7
0
        public void DeletePage(PageItem page)
        {
            var portalSettings = PortalController.Instance.GetCurrentPortalSettings();
            var tab            = TabController.Instance.GetTab(page.Id, portalSettings.PortalId);

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

            if (TabPermissionController.CanDeletePage(tab))
            {
                TabController.Instance.SoftDeleteTab(tab.TabID, portalSettings);
            }
        }
        public static bool CanViewModule(ModuleInfo objModule)
        {
            bool canView = Null.NullBoolean;

            if (objModule.InheritViewPermissions)
            {
                TabInfo objTab = new TabController().GetTab(objModule.TabID, objModule.PortalID, false);
                canView = TabPermissionController.CanViewPage(objTab);
            }
            else
            {
                canView = provider.CanViewModule(objModule);
            }
            return(canView);
        }
        private int DeleteOldData()
        {
            string RoleId       = ddlRoleList.SelectedValue;
            int    PermissionId = Convert.ToInt32(ddlPermissionList.SelectedValue);
            TabPermissionController tab_permission_obj = new TabPermissionController();
            DataTable dt = tab_permission_obj.GetListByRoleIdPermissionId(RoleId, PermissionId);
            int       TabPermissionId = -1, result = -1;

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                TabPermissionId = Convert.ToInt32(dt.Rows[i]["TabPermissionId"].ToString());
                result          = tab_permission_obj.DeleteTabPermission(TabPermissionId);
            }
            return(result);
        }
Beispiel #10
0
        private void PublishTabInternal(TabInfo tab)
        {
            var allUsersRoleId = int.Parse(Globals.glbRoleAllUsers);

            var existPermission = this.GetAlreadyPermission(tab, "VIEW", allUsersRoleId);

            if (existPermission != null)
            {
                tab.TabPermissions.Remove(existPermission);
            }

            tab.TabPermissions.Add(this.GetTabPermissionByRole(tab.TabID, "VIEW", allUsersRoleId));
            TabPermissionController.SaveTabPermissions(tab);
            this.ClearTabCache(tab);
        }
        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);
                            }
                        }
                    }
                }
            }
        }
 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()));
     }
 }
        private bool PermissionsNotProperlySet()
        {
            List <PermissionInfoBase> permissions;

            if (ModuleConfiguration.InheritViewPermissions)
            {
                var tabPermissionCollection = TabPermissionController.GetTabPermissions(TabId, PortalId);
                permissions = tabPermissionCollection.ToList();
            }
            else
            {
                permissions = ModuleConfiguration.ModulePermissions.ToList();
            }

            return(permissions.Find(PermissionPredicate) != null);
        }
        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);
        }
Beispiel #15
0
        public int AddTab(TabInfo objTab, bool AddAllTabsModules)
        {
            int intTabId;

            objTab.TabPath = Globals.GenerateTabPath(objTab.ParentId, objTab.TabName);
            intTabId       = DataProvider.Instance().AddTab(objTab.PortalID, objTab.TabName, objTab.IsVisible, objTab.DisableLink, objTab.ParentId, objTab.IconFile, objTab.Title, objTab.Description, objTab.KeyWords, objTab.Url, objTab.SkinSrc, objTab.ContainerSrc, objTab.TabPath, objTab.StartDate, objTab.EndDate, objTab.RefreshInterval, objTab.PageHeadText);

            TabPermissionController objTabPermissionController = new TabPermissionController();

            if (objTab.TabPermissions != null)
            {
                TabPermissionCollection objTabPermissions = objTab.TabPermissions;

                foreach (TabPermissionInfo objTabPermission in objTabPermissions)
                {
                    objTabPermission.TabID = intTabId;
                    if (objTabPermission.AllowAccess)
                    {
                        objTabPermissionController.AddTabPermission(objTabPermission);
                    }
                }
            }
            if (!(Null.IsNull(objTab.PortalID)))
            {
                UpdatePortalTabOrder(objTab.PortalID, intTabId, objTab.ParentId, 0, 0, objTab.IsVisible, true);
            }
            else // host tab
            {
                ArrayList arrTabs = GetTabsByParentId(objTab.ParentId, objTab.PortalID);
                UpdateTabOrder(objTab.PortalID, intTabId, (arrTabs.Count * 2) - 1, 1, objTab.ParentId);
            }

            if (AddAllTabsModules)
            {
                ModuleController objmodules = new ModuleController();
                ArrayList        arrMods    = objmodules.GetAllTabsModules(objTab.PortalID, true);

                foreach (ModuleInfo objModule in arrMods)
                {
                    objmodules.CopyModule(objModule.ModuleID, objModule.TabID, intTabId, "", true);
                }
            }

            ClearCache(objTab.PortalID);

            return(intTabId);
        }
Beispiel #16
0
        /// -----------------------------------------------------------------------------
        /// <summary>
        /// ModuleMoveToPanePostBack excutes when a module is moved by Drag-and-Drop
        /// </summary>
        /// <param name="args">A ClientAPIPostBackEventArgs object</param>
        /// -----------------------------------------------------------------------------
        private void ModuleMoveToPanePostBack(ClientAPIPostBackEventArgs args)
        {
            var portalSettings = (PortalSettings)HttpContext.Current.Items["PortalSettings"];

            if (TabPermissionController.CanAdminPage())
            {
                var moduleId    = Convert.ToInt32(args.EventArguments["moduleid"]);
                var paneName    = Convert.ToString(args.EventArguments["pane"]);
                var moduleOrder = Convert.ToInt32(args.EventArguments["order"]);

                ModuleController.Instance.UpdateModuleOrder(portalSettings.ActiveTab.TabID, moduleId, moduleOrder, paneName);
                ModuleController.Instance.UpdateTabModuleOrder(portalSettings.ActiveTab.TabID);

                //Redirect to the same page to pick up changes
                PaneControl.Page.Response.Redirect(PaneControl.Page.Request.RawUrl, true);
            }
        }
        public override bool HasViewPermission(SearchResult searchResult)
        {
            var viewable = false;

            if (searchResult.ModuleId > 0)
            {
                //Get All related tabIds from moduleId (while minimizing DB access; using caching)
                var moduleId = searchResult.ModuleId;
                // The next call has over 30% performance enhancement over the above one
                var tabModules = TabController.Instance.GetTabsByPortal(searchResult.PortalId).Values
                                 .SelectMany(tabinfo => tabinfo.ChildModules.Where(kv => kv.Key == moduleId)).Select(m => m.Value);

                foreach (ModuleInfo module in tabModules)
                {
                    var tab = TabController.Instance.GetTab(module.TabID, searchResult.PortalId, false);
                    if (!module.IsDeleted && !tab.IsDeleted && TabPermissionController.CanViewPage(tab))
                    {
                        //Check If authorised to View Module
                        if (ModulePermissionController.CanViewModule(module) && HasModuleSearchPermission(module, searchResult))
                        {
                            //Verify against search document permissions
                            if (string.IsNullOrEmpty(searchResult.Permissions) || PortalSecurity.IsInRoles(searchResult.Permissions))
                            {
                                viewable = true;
                                if (string.IsNullOrEmpty(searchResult.Url))
                                {
                                    searchResult.Url = GetModuleSearchUrl(module, searchResult);
                                    if (string.IsNullOrEmpty(searchResult.Url))
                                    {
                                        searchResult.Url = TestableGlobals.Instance.NavigateURL(module.TabID, string.Empty,
                                                                                                searchResult.QueryString);
                                    }
                                }
                                break;
                            }
                        }
                    }
                }
            }
            else
            {
                viewable = true;
            }

            return(viewable);
        }
Beispiel #18
0
        /// <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 TabDto GetTabByCulture(int tabId, int portalId, Locale locale)
        {
            var    tab = TabController.Instance.GetTabByCulture(tabId, portalId, locale);
            string tooltip;
            var    nodeIcon = GetNodeIcon(tab, out tooltip);

            return(new TabDto
            {
                Name = tab.TabName, //$"{tab.TabName} {GetNodeStatusIcon(tab)}",
                TabId = tab.TabID.ToString(CultureInfo.InvariantCulture),
                ImageUrl = nodeIcon,
                Tooltip = tooltip,
                ParentTabId = tab.ParentId,
                HasChildren = tab.HasChildren,
                ChildTabs = new List <TabDto>(),
                Selectable = TabPermissionController.CanAddPage(tab)
            });
        }
Beispiel #20
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);
        }
Beispiel #21
0
        private void BindTabs(int tabId, bool includeParent)
        {
            List <TabInfo> tempTabs = TabController.GetTabsBySortOrder(this.PortalId).OrderBy(t => t.Level).ThenBy(t => t.HasChildren).ToList();

            IList <TabInfo> tabList = new List <TabInfo>();

            IList <int> tabIdList = new List <int>();

            tabIdList.Add(tabId);

            if (includeParent)
            {
                TabInfo consoleTab = TabController.Instance.GetTab(tabId, this.PortalId);
                if (consoleTab != null)
                {
                    tabList.Add(consoleTab);
                }
            }

            foreach (TabInfo tab in tempTabs)
            {
                bool canShowTab = TabPermissionController.CanViewPage(tab) &&
                                  !tab.IsDeleted &&
                                  (tab.StartDate < DateTime.Now || tab.StartDate == Null.NullDate);

                if (!canShowTab)
                {
                    continue;
                }

                if (tabIdList.Contains(tab.ParentId))
                {
                    if (!tabIdList.Contains(tab.TabID))
                    {
                        tabIdList.Add(tab.TabID);
                    }

                    tabList.Add(tab);
                }
            }

            this.tabs.DataSource = tabList;
            this.tabs.DataBind();
        }
Beispiel #22
0
 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);
         }
     }
 }
Beispiel #23
0
        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);
        }
Beispiel #24
0
        /// -----------------------------------------------------------------------------
        /// <summary>
        /// OnInit runs when the Skin is initialised.
        /// </summary>
        /// <history>
        ///     [cnurse]	07/04/2005	Documented
        ///     [cnurse]    12/05/2007  Refactored
        ///     [cnurse]    04/17/2009  Refactored to use SkinAdapter
        /// </history>
        /// -----------------------------------------------------------------------------
        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);

            //Load the Panes
            LoadPanes();

            bool success;

            //Load the Module Control(s)
            success = Globals.IsAdminControl() ? ProcessSlaveModule() : ProcessMasterModules();

            //Load the Control Panel
            InjectControlPanel();

            //Register any error messages on the Skin
            if (Request.QueryString["error"] != null)
            {
                AddPageMessage(this, Localization.GetString("CriticalError.Error"), Server.HtmlEncode(Request.QueryString["error"]), ModuleMessage.ModuleMessageType.RedError);
            }

            if (!TabPermissionController.CanAdminPage() && !success)
            {
                //only display the warning to non-administrators (administrators will see the errors)
                AddPageMessage(this, Localization.GetString("ModuleLoadWarning.Error"), string.Format(Localization.GetString("ModuleLoadWarning.Text"), PortalSettings.Email), ModuleMessage.ModuleMessageType.YellowWarning);
            }

            InvokeSkinEvents(SkinEventType.OnSkinInit);

            if (HttpContext.Current != null && HttpContext.Current.Items.Contains(OnInitMessage))
            {
                var messageType = ModuleMessage.ModuleMessageType.YellowWarning;
                if (HttpContext.Current.Items.Contains(OnInitMessageType))
                {
                    messageType = (ModuleMessage.ModuleMessageType)Enum.Parse(typeof(ModuleMessage.ModuleMessageType), HttpContext.Current.Items[OnInitMessageType].ToString(), true);
                }
                AddPageMessage(this, string.Empty, HttpContext.Current.Items[OnInitMessage].ToString(), messageType);
            }

            //Process the Panes attributes
            ProcessPanes();
        }
        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));
        }
        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);
        }
Beispiel #27
0
        public override bool HasViewPermission(SearchResult searchResult)
        {
            var tabController = new TabController();
            var viewable      = false;

            if (searchResult.TabId > 0)
            {
                var tab = tabController.GetTab(searchResult.TabId, searchResult.PortalId, false);
                if (!tab.IsDeleted && TabPermissionController.CanViewPage(tab))
                {
                    viewable = true;
                }
            }
            else
            {
                viewable = true;
            }

            return(viewable);
        }
        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 IEnumerable <TabDto> GetTabsDescendants(int portalId, int parentId, string cultureCode, bool isMultiLanguage, string roles = "", bool disabledNotSelectable = false, int sortOrder = 0, string validateTab = "", bool includeHostPages = false, bool includeDisabled = false, bool includeDeletedChildren = true)
        {
            var descendants = new List <TabDto>();

            cultureCode = string.IsNullOrEmpty(cultureCode) ? PortalController.Instance.GetPortal(portalId).CultureCode : cultureCode;

            var tabs =
                GetExportableTabs(TabController.Instance.GetTabsByPortal(portalId)
                                  .WithCulture(cultureCode, true))
                .WithParentId(parentId).ToList();


            if (!string.IsNullOrEmpty(validateTab))
            {
                tabs = ValidateModuleInTab(tabs, validateTab).ToList();
            }

            var filterTabs = FilterTabsByRole(tabs, roles, disabledNotSelectable);

            foreach (var tab in tabs.Where(
                         x => x.ParentId == parentId &&
                         (
                             includeDeletedChildren ||
                             !x.IsDeleted)))
            {
                string tooltip;
                var    nodeIcon = GetNodeIcon(tab, out tooltip);
                var    node     = new TabDto
                {
                    Name        = tab.TabName, //$"{tab.TabName} {GetNodeStatusIcon(tab)}",
                    TabId       = tab.TabID.ToString(CultureInfo.InvariantCulture),
                    ImageUrl    = nodeIcon,
                    Tooltip     = tooltip,
                    ParentTabId = tab.ParentId,
                    HasChildren = tab.HasChildren,
                    Selectable  = filterTabs.Contains(tab.TabID) && TabPermissionController.CanAddPage(tab)
                };
                descendants.Add(node);
            }
            return(ApplySort(descendants, sortOrder));
        }
        // Returns the URL to the first instance of the module the user has access to view
        /// <inheritdoc/>
        public override string GetDocUrl(SearchResult searchResult)
        {
            if (!string.IsNullOrEmpty(searchResult.Url))
            {
                return(searchResult.Url);
            }

            var url = Localization.GetString("SEARCH_NoLink");

            // Get All related tabIds from moduleId
            var tabModules = GetModuleTabs(searchResult.ModuleId);

            foreach (ModuleInfo module in tabModules)
            {
                var tab = TabController.Instance.GetTab(module.TabID, searchResult.PortalId, false);
                if (TabPermissionController.CanViewPage(tab) && ModulePermissionController.CanViewModule(module))
                {
                    try
                    {
                        url = this.GetModuleSearchUrl(module, searchResult);

                        if (string.IsNullOrEmpty(url))
                        {
                            var portalSettings = new PortalSettings(searchResult.PortalId);
                            portalSettings.PortalAlias =
                                PortalAliasController.Instance.GetPortalAlias(portalSettings.DefaultPortalAlias);
                            url = TestableGlobals.Instance.NavigateURL(module.TabID, portalSettings, string.Empty,
                                                                       searchResult.QueryString);
                        }
                    }
                    catch (Exception ex)
                    {
                        Logger.Error(ex);
                    }

                    break;
                }
            }

            return(url);
        }
        /// <summary>
        /// Gets the TabPermissions from the Data Store
        /// </summary>
        private void GetTabPermissions()
        {
            TabPermissionController objTabPermissionController = new TabPermissionController();
            TabPermissions = objTabPermissionController.GetTabPermissionsCollectionByTabID(this.TabID, this.PortalId);

        }