/// -----------------------------------------------------------------------------
 /// <summary>
 /// Gets the TabPermissions from the Data Store.
 /// </summary>
 /// -----------------------------------------------------------------------------
 private void GetTabPermissions()
 {
     this._TabPermissions  = new TabPermissionCollection(TabPermissionController.GetTabPermissions(this.TabID, this.PortalId));
     this._PermissionsList = null;
 }
Example #2
0
        private static void DoAddNewModule(string title, int desktopModuleId, string paneName, int position, int permissionType, string align)
        {
            TabPermissionCollection objTabPermissions = PortalSettings.Current.ActiveTab.TabPermissions;
            var objPermissionController = new PermissionController();
            var objModules = new ModuleController();

            new EventLogController();

            try
            {
                DesktopModuleInfo desktopModule;
                if (!DesktopModuleController.GetDesktopModules(PortalSettings.Current.PortalId).TryGetValue(desktopModuleId, out desktopModule))
                {
                    throw new ArgumentException("desktopModuleId");
                }
            }
            catch (Exception ex)
            {
                Exceptions.LogException(ex);
            }

            foreach (ModuleDefinitionInfo objModuleDefinition in
                     ModuleDefinitionController.GetModuleDefinitionsByDesktopModuleID(desktopModuleId).Values)
            {
                var objModule = new ModuleInfo();
                objModule.Initialize(PortalSettings.Current.ActiveTab.PortalID);

                objModule.PortalID    = PortalSettings.Current.ActiveTab.PortalID;
                objModule.TabID       = PortalSettings.Current.ActiveTab.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.Current.DefaultModuleId > Null.NullInteger && PortalSettings.Current.DefaultTabId > Null.NullInteger)
                    {
                        ModuleInfo defaultModule = objModules.GetModule(PortalSettings.Current.DefaultModuleId, PortalSettings.Current.DefaultTabId, true);
                        if ((defaultModule != null))
                        {
                            objModule.CacheTime = defaultModule.CacheTime;
                        }
                    }
                }

                switch (permissionType)
                {
                case 0:
                    objModule.InheritViewPermissions = true;
                    break;

                case 1:
                    objModule.InheritViewPermissions = false;
                    break;
                }

                // get the default module view permissions
                ArrayList arrSystemModuleViewPermissions = objPermissionController.GetPermissionByCodeAndKey("SYSTEM_MODULE_DEFINITION", "VIEW");

                // get the permissions from the page
                foreach (TabPermissionInfo objTabPermission in objTabPermissions)
                {
                    if (objTabPermission.PermissionKey == "VIEW" && permissionType == 0)
                    {
                        //Don't need to explicitly add View permisisons if "Same As Page"
                        continue;
                    }

                    // get the system module permissions for the permissionkey
                    ArrayList arrSystemModulePermissions = objPermissionController.GetPermissionByCodeAndKey("SYSTEM_MODULE_DEFINITION", objTabPermission.PermissionKey);
                    // loop through the system module permissions
                    int j;
                    for (j = 0; j <= arrSystemModulePermissions.Count - 1; j++)
                    {
                        // create the module permission
                        var objSystemModulePermission = (PermissionInfo)arrSystemModulePermissions[j];
                        if (objSystemModulePermission.PermissionKey == "VIEW" && permissionType == 1 && objTabPermission.PermissionKey != "EDIT")
                        {
                            //Only Page Editors get View permissions if "Page Editors Only"
                            continue;
                        }

                        ModulePermissionInfo objModulePermission = AddModulePermission(objModule,
                                                                                       objSystemModulePermission,
                                                                                       objTabPermission.RoleID,
                                                                                       objTabPermission.UserID,
                                                                                       objTabPermission.AllowAccess);

                        // ensure that every EDIT permission which allows access also provides VIEW permission
                        if (objModulePermission.PermissionKey == "EDIT" && objModulePermission.AllowAccess)
                        {
                            AddModulePermission(objModule,
                                                (PermissionInfo)arrSystemModuleViewPermissions[0],
                                                objModulePermission.RoleID,
                                                objModulePermission.UserID,
                                                true);
                        }
                    }

                    //Get the custom Module Permissions,  Assume that roles with Edit Tab Permissions
                    //are automatically assigned to the Custom Module Permissions
                    if (objTabPermission.PermissionKey == "EDIT")
                    {
                        ArrayList arrCustomModulePermissions = objPermissionController.GetPermissionsByModuleDefID(objModule.ModuleDefID);

                        // loop through the custom module permissions
                        for (j = 0; j <= arrCustomModulePermissions.Count - 1; j++)
                        {
                            // create the module permission
                            var objCustomModulePermission = (PermissionInfo)arrCustomModulePermissions[j];

                            AddModulePermission(objModule, objCustomModulePermission, objTabPermission.RoleID, objTabPermission.UserID, objTabPermission.AllowAccess);
                        }
                    }
                }
                if (PortalSettings.Current.ContentLocalizationEnabled)
                {
                    Locale defaultLocale = LocaleController.Instance.GetDefaultLocale(PortalSettings.Current.PortalId);
                    //check whether original tab is exists, if true then set culture code to default language,
                    //otherwise set culture code to current.
                    if (new TabController().GetTabByCulture(objModule.TabID, PortalSettings.Current.PortalId, defaultLocale) != null)
                    {
                        objModule.CultureCode = defaultLocale.Code;
                    }
                    else
                    {
                        objModule.CultureCode = PortalSettings.Current.CultureCode;
                    }
                }
                else
                {
                    objModule.CultureCode = Null.NullString;
                }
                objModule.AllTabs   = false;
                objModule.Alignment = align;

                objModules.AddModule(objModule);
            }
        }
 /// -----------------------------------------------------------------------------
 /// <summary>
 /// Gets the TabPermissions from the Data Store
 /// </summary>
 /// <history>
 ///     [cnurse]    01/12/2006  Created
 /// </history>
 /// -----------------------------------------------------------------------------
 private void GetTabPermissions()
 {
     _TabPermissions  = new TabPermissionCollection(TabPermissionController.GetTabPermissions(TabID, PortalId));
     _PermissionsList = null;
 }
Example #4
0
        /// -----------------------------------------------------------------------------
        /// <summary>
        /// Adds a New Module to a Pane.
        /// </summary>
        /// <param name="align">The alignment for the Modue.</param>
        /// <param name="desktopModuleId">The Id of the DesktopModule.</param>
        /// <param name="permissionType">The View Permission Type for the Module.</param>
        /// <param name="title">The Title for the resulting module.</param>
        /// <param name="paneName">The pane to add the module to.</param>
        /// <param name="position">The relative position within the pane for the module.</param>
        /// -----------------------------------------------------------------------------
        protected void AddNewModule(string title, int desktopModuleId, string paneName, int position, ViewPermissionType permissionType, string align)
        {
            TabPermissionCollection objTabPermissions = this.PortalSettings.ActiveTab.TabPermissions;
            var objPermissionController = new PermissionController();

            try
            {
                DesktopModuleInfo desktopModule;
                if (!DesktopModuleController.GetDesktopModules(this.PortalSettings.PortalId).TryGetValue(desktopModuleId, out desktopModule))
                {
                    throw new ArgumentException("desktopModuleId");
                }
            }
            catch (Exception ex)
            {
                Exceptions.LogException(ex);
            }

            int UserId = -1;

            if (this.Request.IsAuthenticated)
            {
                UserInfo objUserInfo = UserController.Instance.GetCurrentUserInfo();
                UserId = objUserInfo.UserID;
            }

            foreach (ModuleDefinitionInfo objModuleDefinition in
                     ModuleDefinitionController.GetModuleDefinitionsByDesktopModuleID(desktopModuleId).Values)
            {
                var objModule = new ModuleInfo();
                objModule.Initialize(this.PortalSettings.PortalId);
                objModule.PortalID    = this.PortalSettings.PortalId;
                objModule.TabID       = this.PortalSettings.ActiveTab.TabID;
                objModule.ModuleOrder = position;
                if (string.IsNullOrEmpty(title))
                {
                    objModule.ModuleTitle = objModuleDefinition.FriendlyName;
                }
                else
                {
                    objModule.ModuleTitle = title;
                }

                objModule.PaneName    = paneName;
                objModule.ModuleDefID = objModuleDefinition.ModuleDefID;
                if (objModuleDefinition.DefaultCacheTime > 0)
                {
                    objModule.CacheTime = objModuleDefinition.DefaultCacheTime;
                    if (PortalSettings.Current.DefaultModuleId > Null.NullInteger && PortalSettings.Current.DefaultTabId > Null.NullInteger)
                    {
                        ModuleInfo defaultModule = ModuleController.Instance.GetModule(PortalSettings.Current.DefaultModuleId, PortalSettings.Current.DefaultTabId, true);
                        if (defaultModule != null)
                        {
                            objModule.CacheTime = defaultModule.CacheTime;
                        }
                    }
                }

                switch (permissionType)
                {
                case ViewPermissionType.View:
                    objModule.InheritViewPermissions = true;
                    break;

                case ViewPermissionType.Edit:
                    objModule.InheritViewPermissions = false;
                    break;
                }

                // get the default module view permissions
                ArrayList arrSystemModuleViewPermissions = objPermissionController.GetPermissionByCodeAndKey("SYSTEM_MODULE_DEFINITION", "VIEW");

                // get the permissions from the page
                foreach (TabPermissionInfo objTabPermission in objTabPermissions)
                {
                    if (objTabPermission.PermissionKey == "VIEW" && permissionType == ViewPermissionType.View)
                    {
                        // Don't need to explicitly add View permisisons if "Same As Page"
                        continue;
                    }

                    // get the system module permissions for the permissionkey
                    ArrayList arrSystemModulePermissions = objPermissionController.GetPermissionByCodeAndKey("SYSTEM_MODULE_DEFINITION", objTabPermission.PermissionKey);

                    // loop through the system module permissions
                    int j;
                    for (j = 0; j <= arrSystemModulePermissions.Count - 1; j++)
                    {
                        PermissionInfo objSystemModulePermission;
                        objSystemModulePermission = (PermissionInfo)arrSystemModulePermissions[j];
                        if (objSystemModulePermission.PermissionKey == "VIEW" && permissionType == ViewPermissionType.Edit && objTabPermission.PermissionKey != "EDIT")
                        {
                            // Only Page Editors get View permissions if "Page Editors Only"
                            continue;
                        }

                        ModulePermissionInfo objModulePermission = this.AddModulePermission(
                            objModule,
                            objSystemModulePermission,
                            objTabPermission.RoleID,
                            objTabPermission.UserID,
                            objTabPermission.AllowAccess);

                        // ensure that every EDIT permission which allows access also provides VIEW permission
                        if (objModulePermission.PermissionKey == "EDIT" && objModulePermission.AllowAccess)
                        {
                            ModulePermissionInfo objModuleViewperm = this.AddModulePermission(
                                objModule,
                                (PermissionInfo)arrSystemModuleViewPermissions[0],
                                objModulePermission.RoleID,
                                objModulePermission.UserID,
                                true);
                        }
                    }

                    // Get the custom Module Permissions,  Assume that roles with Edit Tab Permissions
                    // are automatically assigned to the Custom Module Permissions
                    if (objTabPermission.PermissionKey == "EDIT")
                    {
                        ArrayList arrCustomModulePermissions = objPermissionController.GetPermissionsByModuleDefID(objModule.ModuleDefID);

                        // loop through the custom module permissions
                        for (j = 0; j <= arrCustomModulePermissions.Count - 1; j++)
                        {
                            // create the module permission
                            PermissionInfo objCustomModulePermission;
                            objCustomModulePermission = (PermissionInfo)arrCustomModulePermissions[j];
                            this.AddModulePermission(objModule, objCustomModulePermission, objTabPermission.RoleID, objTabPermission.UserID, objTabPermission.AllowAccess);
                        }
                    }
                }

                if (PortalSettings.Current.ContentLocalizationEnabled)
                {
                    Locale defaultLocale = LocaleController.Instance.GetDefaultLocale(PortalSettings.Current.PortalId);

                    // set the culture of the module to that of the tab
                    var tabInfo = TabController.Instance.GetTab(objModule.TabID, PortalSettings.Current.PortalId, false);
                    objModule.CultureCode = tabInfo != null ? tabInfo.CultureCode : defaultLocale.Code;
                }
                else
                {
                    objModule.CultureCode = Null.NullString;
                }

                objModule.AllTabs   = false;
                objModule.Alignment = align;
                ModuleController.Instance.AddModule(objModule);
            }
        }
Example #5
0
        /// -----------------------------------------------------------------------------
        /// <summary>
        ///     AddPage adds a Tab Page
        /// </summary>
        /// <param name="portalId">The Id of the Portal</param>
        /// <param name="parentId">The Id of the Parent Tab</param>
        /// <param name="tabName">The Name to give this new Tab</param>
        /// <param name="description">Description.</param>
        /// <param name="tabIconFile">The Icon for this new Tab</param>
        /// <param name="tabIconFileLarge">The large Icon for this new Tab</param>
        /// <param name="isVisible">A flag indicating whether the tab is visible</param>
        /// <param name="permissions">Page Permissions Collection for this page</param>
        /// <param name="isAdmin">Is and admin page</param>
        private static TabInfo AddPage(int portalId, int parentId, string tabName, string description,
                                       string tabIconFile, string tabIconFileLarge, bool isVisible, TabPermissionCollection permissions,
                                       bool isAdmin)
        {
            var tabController = new TabController();

            var tab = tabController.GetTabByName(tabName, portalId, parentId);

            if (tab == null || tab.ParentId != parentId)
            {
                tab = new TabInfo
                {
                    TabID         = Null.NullInteger,
                    PortalID      = portalId,
                    TabName       = tabName,
                    Title         = "",
                    Description   = description,
                    KeyWords      = "",
                    IsVisible     = isVisible,
                    DisableLink   = false,
                    ParentId      = parentId,
                    IconFile      = tabIconFile,
                    IconFileLarge = tabIconFileLarge,
                    IsDeleted     = false
                };
                tab.TabID = tabController.AddTab(tab, !isAdmin);

                if (((permissions != null)))
                {
                    foreach (TabPermissionInfo tabPermission in permissions)
                    {
                        tab.TabPermissions.Add(tabPermission, true);
                    }
                    TabPermissionController.SaveTabPermissions(tab);
                }
            }

            return(tab);
        }
        public HttpResponseMessage Do(GenerateTabsPostModel model)
        {
            List <string> PageTree = model.PageTree.Split('\n').ToList();

            TabController objTabs = new TabController();

            if (PageTree.First().StartsWith(model.IndentCharacter))
            {
                // we have to make sure that the first item in the list is not starting with an indent,
                // since we are adding this tree (optionaly) below another page anyway
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, $"PageTree being added cannot start with the set indent character ({model.IndentCharacter})"));
            }

            TabPermissionCollection defaultTabPermissionCollection = CreateTabPermissions();

            int level               = 0;
            int startingLevel       = 0;
            int previousLevel       = -1;
            int lineCounter         = 0;
            int startingParentTabId = Null.NullInteger;

            // see if user selected another page to put the tree under.
            // we need the startingTabID and the StartingLevel
            if (model.ParentTabId > 0)
            {
                startingParentTabId = model.ParentTabId;
                TabInfo tempTab = objTabs.GetTab(startingParentTabId, PortalSettings.PortalId, true);
                startingLevel = tempTab.Level + 1;
            }
            int            parentTabId = Null.NullInteger;
            List <TabInfo> tabList     = new List <TabInfo>();

            // first check whether all levels are ok, if there is an error we are not going to do anything
            foreach (string pageName in PageTree)
            {
                // reset level to 0
                level = 0;
                // save the original pagenane, since GetLevelFromPageName is going to alter the pagename
                string originalPageName = pageName;
                string newPageName      = pageName;

                // get the level from the pagename. This removes the indent characters from the beginning from the pagename
                level = GetLevelFromPageName(model.IndentCharacter, ref newPageName, ref level);

                // there might a typo in the list.
                // eg if item x has text ">>PageName",
                // then item x+1 cannot have either just "PageName" or ">>>>PageName"
                // in other words, levels cannot differ by more than 1
                if ((level - previousLevel > 1) && (level != 0))
                {
                    return(Request.CreateResponse(HttpStatusCode.InternalServerError, $"Unexpected Level at line {lineCounter + 1}, text: {originalPageName}"));
                }
                lineCounter  += 1;
                previousLevel = level;
            }

            lineCounter   = 0;
            previousLevel = -1;
            foreach (string pageName in PageTree)
            {
                level = 0;
                // save the original pagename, since GetLevelFromPageName is going to alter the pagename
                string originalPageName = pageName;
                string newPageName      = pageName;

                // get the level from the pagename. This removes the indent characters from the beginning from the pagename
                level = GetLevelFromPageName(model.IndentCharacter, ref newPageName, ref level);

                // get the parentTabId
                parentTabId = startingParentTabId;
                if ((level > 0) && (lineCounter >= tabList.Count))
                {
                    // For i As Integer = tabList.Count - 1 To 0 Step -1
                    for (int i = 0; i <= tabList.Count - 1; i++)
                    {
                        // walk the list of already created back up
                        // in order to find the first previous tab of 1 level up
                        if (tabList[i].Level == startingLevel + level - 1)
                        {
                            parentTabId = tabList[i].TabID;
                        }
                    }
                }

                // create the new page
                TabInfo newTab = new TabInfo()
                {
                    PortalID          = PortalSettings.PortalId,
                    TabName           = newPageName,
                    ParentId          = parentTabId,
                    IsVisible         = true,
                    DisableLink       = false,
                    IsSecure          = false,
                    PermanentRedirect = false,
                    SiteMapPriority   = (float)0.5,
                    Level             = level
                };
                newTab.TabPermissions.AddRange(defaultTabPermissionCollection);

                try
                {
                    // adding the tab returns a tabId, so we can set that to the tab object
                    newTab.TabID = objTabs.AddTab(newTab);

                    // add the newly created tab to a list
                    tabList.Add(newTab);
                }
                catch (Exception ex)
                {
                }

                lineCounter  += 1;
                previousLevel = level;
            }

            // Clear the tabcache, so we know for sure that we will get a correct menu next page refresh
            //DotNetNuke.Common.Utilities.DataCache.ClearTabsCache(PortalId);

            return(Request.CreateResponse(HttpStatusCode.OK, "OK"));
        }
        public HttpResponseMessage DoOne(GenerateOneTabPostModel model)
        {
            var objTabs       = new TabController();
            var startingLevel = 0;
            var parentTabId   = Null.NullInteger;
            TabPermissionCollection defaultTabPermissionCollection = CreateTabPermissions();

            // see if user selected another page to put the tree under.
            // we need the startingTabID and the StartingLevel
            if (model.ParentTabId > 0)
            {
                TabInfo tempTab = objTabs.GetTab(model.ParentTabId, PortalSettings.PortalId, true);
                startingLevel = tempTab.Level + 1;
                parentTabId   = model.ParentTabId;
            }

            string  prevTabName = "";
            int     prevLevel   = 0;
            TabInfo prevTab     = null;

            if (model.PreviousTabId == 0)
            {
                // it's the first tab
                parentTabId = model.ParentTabId;
            }
            else
            {
                prevTabName = model.PreviousTabName;
                prevLevel   = startingLevel;
                prevTab     = objTabs.GetTab(model.PreviousTabId, PortalSettings.PortalId, true);
                GetLevelFromPageName(model.IndentCharacter, ref prevTabName, ref prevLevel);
            }

            var tabName = model.TabName;
            var level   = startingLevel;

            GetLevelFromPageName(model.IndentCharacter, ref tabName, ref level);

            if (level == 0)
            {
                // top level page: nothing to do
            }
            else if (model.PreviousTabId > 0 && level == prevLevel)
            {
                // sibling of previous page, so same parent
                parentTabId = prevTab.ParentId;
            }
            else if (model.PreviousTabId > 0 && level == prevLevel + 1)
            {
                // child of previous tab
                parentTabId = model.PreviousTabId;
            }
            else if (model.PreviousTabId > 0 && level < prevLevel)
            {
                var tempTab = prevTab;
                for (int i = 0; i < prevLevel - level; i++)
                {
                    tempTab = objTabs.GetTab(tempTab.ParentId, PortalSettings.PortalId, true);
                }

                parentTabId = tempTab.ParentId;
            }

            // create the new page
            TabInfo newTab = new TabInfo()
            {
                PortalID          = PortalSettings.PortalId,
                TabName           = tabName,
                ParentId          = parentTabId > 0 ? parentTabId : Null.NullInteger,
                IsVisible         = true,
                DisableLink       = false,
                IsSecure          = false,
                PermanentRedirect = false,
                SiteMapPriority   = (float)0.5,
                Level             = level
            };

            newTab.TabPermissions.AddRange(defaultTabPermissionCollection);

            try
            {
                // adding the tab returns a tabId, so we can set that to the tab object
                newTab.TabID = objTabs.AddTab(newTab);
            }
            catch (Exception e)
            {
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, e.Message));
            }

            return(Request.CreateResponse(HttpStatusCode.OK, new { TabId = newTab.TabID }));
        }
        private int AddNewModule(TabInfo tab, string title, int desktopModuleId, string paneName, int permissionType, string align)
        {
            TabPermissionCollection objTabPermissions = tab.TabPermissions;
            var objPermissionController = new PermissionController();
            int j;

            foreach (ModuleDefinitionInfo objModuleDefinition in ModuleDefinitionController.GetModuleDefinitionsByDesktopModuleID(desktopModuleId).Values)
            {
                var objModule = new ModuleInfo();
                objModule.Initialize(tab.PortalID);

                objModule.PortalID = tab.PortalID;
                objModule.TabID    = tab.TabID;
                if (string.IsNullOrEmpty(title))
                {
                    objModule.ModuleTitle = objModuleDefinition.FriendlyName;
                }
                else
                {
                    objModule.ModuleTitle = title;
                }
                objModule.PaneName               = paneName;
                objModule.ModuleDefID            = objModuleDefinition.ModuleDefID;
                objModule.CacheTime              = 0;
                objModule.InheritViewPermissions = true;
                objModule.DisplayTitle           = false;

                // get the default module view permissions
                ArrayList arrSystemModuleViewPermissions = objPermissionController.GetPermissionByCodeAndKey("SYSTEM_MODULE_DEFINITION", "VIEW");

                // get the permissions from the page
                foreach (TabPermissionInfo objTabPermission in objTabPermissions)
                {
                    if (objTabPermission.PermissionKey == "VIEW" && permissionType == 0)
                    {
                        //Don't need to explicitly add View permisisons if "Same As Page"
                        continue;
                    }

                    // get the system module permissions for the permissionkey
                    ArrayList arrSystemModulePermissions = objPermissionController.GetPermissionByCodeAndKey("SYSTEM_MODULE_DEFINITION", objTabPermission.PermissionKey);
                    // loop through the system module permissions
                    for (j = 0; j <= arrSystemModulePermissions.Count - 1; j++)
                    {
                        // create the module permission
                        PermissionInfo objSystemModulePermission = default(PermissionInfo);
                        objSystemModulePermission = (PermissionInfo)arrSystemModulePermissions[j];
                        if (objSystemModulePermission.PermissionKey == "VIEW" && permissionType == 1 && objTabPermission.PermissionKey != "EDIT")
                        {
                            //Only Page Editors get View permissions if "Page Editors Only"
                            continue;
                        }

                        ModulePermissionInfo objModulePermission = AddModulePermission(objModule,
                                                                                       objSystemModulePermission,
                                                                                       objTabPermission.RoleID,
                                                                                       objTabPermission.UserID,
                                                                                       objTabPermission.AllowAccess);

                        // ensure that every EDIT permission which allows access also provides VIEW permission
                        if (objModulePermission.PermissionKey == "EDIT" & objModulePermission.AllowAccess)
                        {
                            ModulePermissionInfo objModuleViewperm = AddModulePermission(objModule,
                                                                                         (PermissionInfo)arrSystemModuleViewPermissions[0],
                                                                                         objModulePermission.RoleID,
                                                                                         objModulePermission.UserID,
                                                                                         true);
                        }
                    }
                }

                objModule.AllTabs   = false;
                objModule.Alignment = align;

                return(ModuleController.Instance.AddModule(objModule));
            }
            return(-1);
        }
        protected void AddNewModule(string title, int desktopModuleId, string paneName, int position, ViewPermissionType permissionType, string align)
        {
            TabPermissionCollection objTabPermissions       = PortalSettings.ActiveTab.TabPermissions;
            PermissionController    objPermissionController = new PermissionController();
            ModuleController        objModules = new ModuleController();

            Services.Log.EventLog.EventLogController objEventLog = new Services.Log.EventLog.EventLogController();
            int j;

            try
            {
                DesktopModuleInfo desktopModule = null;
                if (!DesktopModuleController.GetDesktopModules(PortalSettings.PortalId).TryGetValue(desktopModuleId, out desktopModule))
                {
                    throw new ArgumentException("desktopModuleId");
                }
            }
            catch (Exception ex)
            {
                Exceptions.LogException(ex);
            }
            int UserId = -1;

            if (Request.IsAuthenticated)
            {
                UserInfo objUserInfo = UserController.GetCurrentUserInfo();
                UserId = objUserInfo.UserID;
            }
            foreach (ModuleDefinitionInfo objModuleDefinition in ModuleDefinitionController.GetModuleDefinitionsByDesktopModuleID(desktopModuleId).Values)
            {
                ModuleInfo objModule = new ModuleInfo();
                objModule.Initialize(PortalSettings.PortalId);
                objModule.PortalID    = PortalSettings.PortalId;
                objModule.TabID       = PortalSettings.ActiveTab.TabID;
                objModule.ModuleOrder = position;
                if (String.IsNullOrEmpty(title))
                {
                    objModule.ModuleTitle = objModuleDefinition.FriendlyName;
                }
                else
                {
                    objModule.ModuleTitle = title;
                }
                objModule.PaneName    = paneName;
                objModule.ModuleDefID = objModuleDefinition.ModuleDefID;
                if (objModuleDefinition.DefaultCacheTime > 0)
                {
                    objModule.CacheTime = objModuleDefinition.DefaultCacheTime;
                    if (PortalSettings.Current.DefaultModuleId > Null.NullInteger && PortalSettings.Current.DefaultTabId > Null.NullInteger)
                    {
                        ModuleInfo defaultModule = objModules.GetModule(PortalSettings.Current.DefaultModuleId, PortalSettings.Current.DefaultTabId, true);
                        if (defaultModule != null)
                        {
                            objModule.CacheTime = defaultModule.CacheTime;
                        }
                    }
                }
                switch (permissionType)
                {
                case ViewPermissionType.View:
                    objModule.InheritViewPermissions = true;
                    break;

                case ViewPermissionType.Edit:
                    objModule.InheritViewPermissions = false;
                    break;
                }
                ArrayList arrSystemModuleViewPermissions = objPermissionController.GetPermissionByCodeAndKey("SYSTEM_MODULE_DEFINITION", "VIEW");
                foreach (TabPermissionInfo objTabPermission in objTabPermissions)
                {
                    if (objTabPermission.PermissionKey == "VIEW" && permissionType == ViewPermissionType.View)
                    {
                        continue;
                    }
                    ArrayList arrSystemModulePermissions = objPermissionController.GetPermissionByCodeAndKey("SYSTEM_MODULE_DEFINITION", objTabPermission.PermissionKey);
                    for (j = 0; j <= arrSystemModulePermissions.Count - 1; j++)
                    {
                        PermissionInfo objSystemModulePermission;
                        objSystemModulePermission = (PermissionInfo)arrSystemModulePermissions[j];
                        if (objSystemModulePermission.PermissionKey == "VIEW" && permissionType == ViewPermissionType.Edit && objTabPermission.PermissionKey != "EDIT")
                        {
                            continue;
                        }
                        ModulePermissionInfo objModulePermission = AddModulePermission(objModule, objSystemModulePermission, objTabPermission.RoleID, objTabPermission.UserID, objTabPermission.AllowAccess);
                        if (objModulePermission.PermissionKey == "EDIT" && objModulePermission.AllowAccess)
                        {
                            ModulePermissionInfo objModuleViewperm = AddModulePermission(objModule, (PermissionInfo)arrSystemModuleViewPermissions[0], objModulePermission.RoleID, objModulePermission.UserID, true);
                        }
                    }
                    if (objTabPermission.PermissionKey == "EDIT")
                    {
                        ArrayList arrCustomModulePermissions = objPermissionController.GetPermissionsByModuleDefID(objModule.ModuleDefID);
                        for (j = 0; j <= arrCustomModulePermissions.Count - 1; j++)
                        {
                            PermissionInfo objCustomModulePermission;
                            objCustomModulePermission = (PermissionInfo)arrCustomModulePermissions[j];
                            AddModulePermission(objModule, objCustomModulePermission, objTabPermission.RoleID, objTabPermission.UserID, objTabPermission.AllowAccess);
                        }
                    }
                }
                objModule.AllTabs   = false;
                objModule.Alignment = align;
                objModules.AddModule(objModule);
            }
        }
        /// -----------------------------------------------------------------------------
        /// <summary>
        /// Load the ViewState
        /// </summary>
        /// <param name="savedState">The saved state</param>
        /// -----------------------------------------------------------------------------
        protected override void LoadViewState(object savedState)
        {
            if (savedState != null)
            {
                //Load State from the array of objects that was saved with SaveViewState.
                var myState = (object[])savedState;

                //Load Base Controls ViewState
                if (myState[0] != null)
                {
                    base.LoadViewState(myState[0]);
                }

                //Load TabId
                if (myState[1] != null)
                {
                    TabID = Convert.ToInt32(myState[1]);
                }

                //Load TabPermissions
                if (myState[2] != null)
                {
                    _TabPermissions = new TabPermissionCollection();
                    string state = Convert.ToString(myState[2]);
                    if (!String.IsNullOrEmpty(state))
                    {
                        //First Break the String into individual Keys
                        string[] permissionKeys = state.Split(new[] { "##" }, StringSplitOptions.None);
                        foreach (string key in permissionKeys)
                        {
                            string[] Settings = key.Split('|');
                            _TabPermissions.Add(ParseKeys(Settings));
                        }
                    }
                }
            }
        }
Example #11
0
        /// <summary>
        /// Gets the TabPermissions from the Data Store
        /// </summary>
        private void GetTabPermissions()
        {
            TabPermissionController objTabPermissionController = new TabPermissionController();

            TabPermissions = objTabPermissionController.GetTabPermissionsCollectionByTabID(this.TabID, this.PortalId);
        }
 /// -----------------------------------------------------------------------------
 /// <summary>
 /// Gets the TabPermissions from the Data Store
 /// </summary>
 /// -----------------------------------------------------------------------------
 private void GetTabPermissions()
 {
     _TabPermissions = new TabPermissionCollection(TabPermissionController.GetTabPermissions(TabID, PortalId));
     _PermissionsList = null;
 }
        /// <summary>
        /// Load the ViewState
        /// </summary>
        /// <param name="savedState">The saved state</param>
        protected override void LoadViewState( object savedState )
        {
            if( !( savedState == null ) )
            {
                // Load State from the array of objects that was saved with SaveViewState.

                object[] myState = (object[])savedState;

                //Load Base Controls ViewStte
                if( !( myState[0] == null ) )
                {
                    base.LoadViewState( myState[0] );
                }

                //Load TabId
                if( !( myState[1] == null ) )
                {
                    TabID = Convert.ToInt32( myState[1] );
                }

                //Load TabPermissions
                if( !( myState[2] == null ) )
                {
                    ArrayList arrPermissions = new ArrayList();
                    string state = myState[2].ToString();
                    if( !String.IsNullOrEmpty(state) )
                    {
                        //First Break the String into individual Keys
                        string[] permissionKeys = state.Split( "##".ToCharArray()[0] );
                        foreach( string key in permissionKeys )
                        {
                            string[] Settings = key.Split( '|' );
                            ParsePermissionKeys( Settings, arrPermissions );
                        }
                    }
                    TabPermissions = new TabPermissionCollection( arrPermissions );
                }
            }
        }
        /// <summary>
        /// Gets the TabPermissions from the Data Store
        /// </summary>
        private void GetTabPermissions()
        {
            TabPermissionController objTabPermissionController = new TabPermissionController();
            TabPermissions = objTabPermissionController.GetTabPermissionsCollectionByTabID(this.TabID, this.PortalId);

        }
Example #15
0
        protected void AddNewModule(string title, int desktopModuleId, string paneName, int position, ViewPermissionType permissionType, string align)
        {
            TabPermissionCollection    objTabPermissions       = PortalSettings.ActiveTab.TabPermissions;
            PermissionController       objPermissionController = new PermissionController();
            ModuleController           objModules           = new ModuleController();
            ModuleDefinitionController objModuleDefinitions = new ModuleDefinitionController();

            Services.Log.EventLog.EventLogController objEventLog = new Services.Log.EventLog.EventLogController();
            int intIndex;

            try
            {
                DesktopModuleController objDesktopModules = new DesktopModuleController();
                ArrayList arrDM        = objDesktopModules.GetDesktopModulesByPortal(PortalSettings.PortalId);
                bool      isSelectable = false;
                for (int intloop = 0; intloop < arrDM.Count; intloop++)
                {
                    if (((DesktopModuleInfo)(arrDM[intloop])).DesktopModuleID == desktopModuleId)
                    {
                        isSelectable = true;
                        break;
                    }
                }
                if (isSelectable == false)
                {
                    throw new Exception();
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }

            int UserId = -1;

            if (Request.IsAuthenticated)
            {
                UserInfo objUserInfo = UserController.GetCurrentUserInfo();
                UserId = objUserInfo.UserID;
            }

            ArrayList arrModuleDefinitions = objModuleDefinitions.GetModuleDefinitions(desktopModuleId);

            for (intIndex = 0; intIndex < arrModuleDefinitions.Count; intIndex++)
            {
                ModuleDefinitionInfo objModuleDefinition = (ModuleDefinitionInfo)(arrModuleDefinitions[intIndex]);



                ModuleInfo objModule = new ModuleInfo();
                objModule.Initialize(PortalSettings.PortalId);

                objModule.PortalID    = PortalSettings.PortalId;
                objModule.TabID       = PortalSettings.ActiveTab.TabID;
                objModule.ModuleOrder = position;
                if (String.IsNullOrEmpty(title))
                {
                    objModule.ModuleTitle = objModuleDefinition.FriendlyName;
                }
                else
                {
                    objModule.ModuleTitle = title;
                }

                objModule.ModuleTitle = title;
                objModule.PaneName    = paneName;
                objModule.ModuleDefID = objModuleDefinition.ModuleDefID;
                objModule.CacheTime   = objModuleDefinition.DefaultCacheTime;

                // initialize module permissions
                ModulePermissionCollection objModulePermissions = new ModulePermissionCollection();
                objModule.ModulePermissions      = objModulePermissions;
                objModule.InheritViewPermissions = false;

                // get the default module view permissions
                ArrayList arrSystemModuleViewPermissions = objPermissionController.GetPermissionByCodeAndKey("SYSTEM_MODULE_DEFINITION", "VIEW");

                // get the permissions from the page
                foreach (TabPermissionInfo objTabPermission in objTabPermissions)
                {
                    // get the system module permissions for the permissionkey
                    ArrayList arrSystemModulePermissions = objPermissionController.GetPermissionByCodeAndKey("SYSTEM_MODULE_DEFINITION", objTabPermission.PermissionKey);
                    // loop through the system module permissions
                    int j;
                    for (j = 0; j < arrSystemModulePermissions.Count; j++)
                    {
                        // create the module permission
                        PermissionInfo       objSystemModulePermission = (PermissionInfo)(arrSystemModulePermissions[j]);
                        ModulePermissionInfo objModulePermission       = AddModulePermission(objModule.ModuleID, objSystemModulePermission, objTabPermission.RoleID);

                        // add the permission to the collection
                        if (!(objModulePermissions.Contains(objModulePermission)) & objModulePermission.AllowAccess)
                        {
                            objModulePermissions.Add(objModulePermission);
                        }

                        // ensure that every EDIT permission which allows access also provides VIEW permission
                        if (objModulePermission.PermissionKey == "EDIT" & objModulePermission.AllowAccess)
                        {
                            ModulePermissionInfo objModuleViewperm = new ModulePermissionInfo();
                            objModuleViewperm.ModuleID      = objModulePermission.ModuleID;
                            objModuleViewperm.PermissionID  = ((PermissionInfo)(arrSystemModuleViewPermissions[0])).PermissionID;
                            objModuleViewperm.RoleID        = objModulePermission.RoleID;
                            objModuleViewperm.PermissionKey = "VIEW";
                            objModuleViewperm.AllowAccess   = true;
                            if (!(objModulePermissions.Contains(objModuleViewperm)))
                            {
                                objModulePermissions.Add(objModuleViewperm);
                            }
                        }
                    }

                    //Get the custom Module Permissions,  Assume that roles with Edit Tab Permissions
                    //are automatically assigned to the Custom Module Permissions
                    if (objTabPermission.PermissionKey == "EDIT")
                    {
                        ArrayList arrCustomModulePermissions = objPermissionController.GetPermissionsByModuleDefID(objModule.ModuleDefID);

                        // loop through the custom module permissions
                        for (j = 0; j < arrCustomModulePermissions.Count; j++)
                        {
                            // create the module permission
                            PermissionInfo       objCustomModulePermission = (PermissionInfo)(arrCustomModulePermissions[j]);
                            ModulePermissionInfo objModulePermission       = AddModulePermission(objModule.ModuleID, objCustomModulePermission, objTabPermission.RoleID);

                            // add the permission to the collection
                            if (!(objModulePermissions.Contains(objModulePermission)) & objModulePermission.AllowAccess)
                            {
                                objModulePermissions.Add(objModulePermission);
                            }
                        }
                    }
                }

                switch (permissionType)
                {
                case ViewPermissionType.View:
                    objModule.InheritViewPermissions = true;
                    break;

                case ViewPermissionType.Edit:
                    objModule.ModulePermissions = objModulePermissions;
                    break;
                }

                objModule.AllTabs    = false;
                objModule.Visibility = VisibilityState.Maximized;
                objModule.Alignment  = align;

                objModules.AddModule(objModule);
                objEventLog.AddLog(objModule, PortalSettings, UserId, "", Services.Log.EventLog.EventLogController.EventLogType.MODULE_CREATED);
            }
        }
Example #16
0
        private ModuleInfo FillModuleInfo(IDataReader dr, bool CheckForOpenDataReader, bool IncludePermissions)
        {
            ModuleInfo objModuleInfo = new ModuleInfo();
            ModulePermissionController objModulePermissionController = new ModulePermissionController();
            // read datareader
            bool canContinue = true;

            if (CheckForOpenDataReader)
            {
                canContinue = false;
                if (dr.Read())
                {
                    canContinue = true;
                }
            }
            if (canContinue)
            {
                objModuleInfo.PortalID    = Convert.ToInt32(Null.SetNull(dr["PortalID"], objModuleInfo.PortalID));
                objModuleInfo.TabID       = Convert.ToInt32(Null.SetNull(dr["TabID"], objModuleInfo.TabID));
                objModuleInfo.TabModuleID = Convert.ToInt32(Null.SetNull(dr["TabModuleID"], objModuleInfo.TabModuleID));
                objModuleInfo.ModuleID    = Convert.ToInt32(Null.SetNull(dr["ModuleID"], objModuleInfo.ModuleID));
                objModuleInfo.ModuleDefID = Convert.ToInt32(Null.SetNull(dr["ModuleDefID"], objModuleInfo.ModuleDefID));
                objModuleInfo.ModuleOrder = Convert.ToInt32(Null.SetNull(dr["ModuleOrder"], objModuleInfo.ModuleOrder));
                objModuleInfo.PaneName    = Convert.ToString(Null.SetNull(dr["PaneName"], objModuleInfo.PaneName));
                objModuleInfo.ModuleTitle = Convert.ToString(Null.SetNull(dr["ModuleTitle"], objModuleInfo.ModuleTitle));
                objModuleInfo.CacheTime   = Convert.ToInt32(Null.SetNull(dr["CacheTime"], objModuleInfo.CacheTime));
                objModuleInfo.Alignment   = Convert.ToString(Null.SetNull(dr["Alignment"], objModuleInfo.Alignment));
                objModuleInfo.Color       = Convert.ToString(Null.SetNull(dr["Color"], objModuleInfo.Color));
                objModuleInfo.Border      = Convert.ToString(Null.SetNull(dr["Border"], objModuleInfo.Border));
                objModuleInfo.IconFile    = Convert.ToString(Null.SetNull(dr["IconFile"], objModuleInfo.IconFile));
                objModuleInfo.AllTabs     = Convert.ToBoolean(Null.SetNull(dr["AllTabs"], objModuleInfo.AllTabs));
                int intVisibility = 0;
                if (((Convert.ToInt32(Null.SetNull(dr["Visibility"], intVisibility))) == 0) || ((Convert.ToInt32(Null.SetNull(dr["Visibility"], intVisibility))) == Null.NullInteger))
                {
                    objModuleInfo.Visibility = VisibilityState.Maximized;
                }
                else if ((Convert.ToInt32(Null.SetNull(dr["Visibility"], intVisibility))) == 1)
                {
                    objModuleInfo.Visibility = VisibilityState.Minimized;
                }
                else if ((Convert.ToInt32(Null.SetNull(dr["Visibility"], intVisibility))) == 2)
                {
                    objModuleInfo.Visibility = VisibilityState.None;
                }
                objModuleInfo.IsDeleted               = Convert.ToBoolean(Null.SetNull(dr["IsDeleted"], objModuleInfo.IsDeleted));
                objModuleInfo.Header                  = Convert.ToString(Null.SetNull(dr["Header"], objModuleInfo.Header));
                objModuleInfo.Footer                  = Convert.ToString(Null.SetNull(dr["Footer"], objModuleInfo.Footer));
                objModuleInfo.StartDate               = Convert.ToDateTime(Null.SetNull(dr["StartDate"], objModuleInfo.StartDate));
                objModuleInfo.EndDate                 = Convert.ToDateTime(Null.SetNull(dr["EndDate"], objModuleInfo.EndDate));
                objModuleInfo.ContainerSrc            = Convert.ToString(Null.SetNull(dr["ContainerSrc"], objModuleInfo.ContainerSrc));
                objModuleInfo.DisplayTitle            = Convert.ToBoolean(Null.SetNull(dr["DisplayTitle"], objModuleInfo.DisplayTitle));
                objModuleInfo.DisplayPrint            = Convert.ToBoolean(Null.SetNull(dr["DisplayPrint"], objModuleInfo.DisplayPrint));
                objModuleInfo.DisplaySyndicate        = Convert.ToBoolean(Null.SetNull(dr["DisplaySyndicate"], objModuleInfo.DisplaySyndicate));
                objModuleInfo.InheritViewPermissions  = Convert.ToBoolean(Null.SetNull(dr["InheritViewPermissions"], objModuleInfo.InheritViewPermissions));
                objModuleInfo.DesktopModuleID         = Convert.ToInt32(Null.SetNull(dr["DesktopModuleID"], objModuleInfo.DesktopModuleID));
                objModuleInfo.FriendlyName            = Convert.ToString(Null.SetNull(dr["FriendlyName"], objModuleInfo.FriendlyName));
                objModuleInfo.Description             = Convert.ToString(Null.SetNull(dr["Description"], objModuleInfo.Description));
                objModuleInfo.Version                 = Convert.ToString(Null.SetNull(dr["Version"], objModuleInfo.Version));
                objModuleInfo.IsPremium               = Convert.ToBoolean(Null.SetNull(dr["IsPremium"], objModuleInfo.IsPremium));
                objModuleInfo.IsAdmin                 = Convert.ToBoolean(Null.SetNull(dr["IsAdmin"], objModuleInfo.IsAdmin));
                objModuleInfo.BusinessControllerClass = Convert.ToString(Null.SetNull(dr["BusinessControllerClass"], objModuleInfo.BusinessControllerClass));
                objModuleInfo.SupportedFeatures       = Convert.ToInt32(Null.SetNull(dr["SupportedFeatures"], objModuleInfo.SupportedFeatures));
                objModuleInfo.ModuleControlId         = Convert.ToInt32(Null.SetNull(dr["ModuleControlId"], objModuleInfo.ModuleControlId));
                objModuleInfo.ControlSrc              = Convert.ToString(Null.SetNull(dr["ControlSrc"], objModuleInfo.ControlSrc));
                int intControlType = 0;
                if ((Convert.ToInt32(Null.SetNull(dr["ControlType"], intControlType))) == -3)
                {
                    objModuleInfo.ControlType = SecurityAccessLevel.ControlPanel;
                }
                else if ((Convert.ToInt32(Null.SetNull(dr["ControlType"], intControlType))) == -2)
                {
                    objModuleInfo.ControlType = SecurityAccessLevel.SkinObject;
                }
                else if (((Convert.ToInt32(Null.SetNull(dr["ControlType"], intControlType))) == -1) || ((Convert.ToInt32(Null.SetNull(dr["ControlType"], intControlType))) == Null.NullInteger))
                {
                    objModuleInfo.ControlType = SecurityAccessLevel.Anonymous;
                }
                else if ((Convert.ToInt32(Null.SetNull(dr["ControlType"], intControlType))) == 0)
                {
                    objModuleInfo.ControlType = SecurityAccessLevel.View;
                }
                else if ((Convert.ToInt32(Null.SetNull(dr["ControlType"], intControlType))) == 1)
                {
                    objModuleInfo.ControlType = SecurityAccessLevel.Edit;
                }
                else if ((Convert.ToInt32(Null.SetNull(dr["ControlType"], intControlType))) == 2)
                {
                    objModuleInfo.ControlType = SecurityAccessLevel.Admin;
                }
                else if ((Convert.ToInt32(Null.SetNull(dr["ControlType"], intControlType))) == 3)
                {
                    objModuleInfo.ControlType = SecurityAccessLevel.Host;
                }
                objModuleInfo.ControlTitle = Convert.ToString(Null.SetNull(dr["ControlTitle"], objModuleInfo.ControlTitle));
                objModuleInfo.HelpUrl      = Convert.ToString(Null.SetNull(dr["HelpUrl"], objModuleInfo.HelpUrl));

                if (IncludePermissions)
                {
                    if (objModuleInfo != null)
                    {
                        //Get the Module permissions first (then we can parse the collection to determine the View/Edit Roles)
                        objModuleInfo.ModulePermissions   = objModulePermissionController.GetModulePermissionsCollectionByModuleID(objModuleInfo.ModuleID, objModuleInfo.TabID);
                        objModuleInfo.AuthorizedEditRoles = objModulePermissionController.GetModulePermissions(objModuleInfo.ModulePermissions, "EDIT");
                        if (objModuleInfo.AuthorizedEditRoles == ";")
                        {
                            // this code is here for legacy support - the AuthorizedEditRoles were stored as a concatenated list of roleids prior to DNN 3.0
                            try
                            {
                                objModuleInfo.AuthorizedEditRoles = Convert.ToString(Null.SetNull(dr["AuthorizedEditRoles"], objModuleInfo.AuthorizedEditRoles));
                            }
                            catch
                            {
                                // the AuthorizedEditRoles field was removed from the Tabs table in 3.0
                            }
                        }
                        try
                        {
                            if (objModuleInfo.InheritViewPermissions)
                            {
                                TabPermissionController objTabPermissionController = new TabPermissionController();
                                TabPermissionCollection objTabPermissionCollection = objTabPermissionController.GetTabPermissionsCollectionByTabID(objModuleInfo.TabID, objModuleInfo.PortalID);
                                objModuleInfo.AuthorizedViewRoles = objTabPermissionController.GetTabPermissions(objTabPermissionCollection, "VIEW");
                            }
                            else
                            {
                                objModuleInfo.AuthorizedViewRoles = objModulePermissionController.GetModulePermissions(objModuleInfo.ModulePermissions, "VIEW");
                            }
                            if (objModuleInfo.AuthorizedViewRoles == ";")
                            {
                                // this code is here for legacy support - the AuthorizedViewRoles were stored as a concatenated list of roleids prior to DNN 3.0
                                try
                                {
                                    objModuleInfo.AuthorizedViewRoles = Convert.ToString(Null.SetNull(dr["AuthorizedViewRoles"], objModuleInfo.AuthorizedViewRoles));
                                }
                                catch
                                {
                                    // the AuthorizedViewRoles field was removed from the Tabs table in 3.0
                                }
                            }
                        }
                        catch
                        {
                        }
                    }
                }
            }
            else
            {
                objModuleInfo = null;
            }
            return(objModuleInfo);
        }