/// ----------------------------------------------------------------------------- /// <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; }
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; }
/// ----------------------------------------------------------------------------- /// <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); } }
/// ----------------------------------------------------------------------------- /// <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)); } } } } }
/// <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 ); } } }
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); } }
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); }