private static void RemoveLegacyModuleDefinitions(string moduleName, string currentModuleDefinitionName) { var mdc = new ModuleDefinitionController(); var desktopModule = DesktopModuleController.GetDesktopModuleByModuleName(moduleName, Null.NullInteger); if (desktopModule == null) { return; } var desktopModuleId = desktopModule.DesktopModuleID; var modDefs = ModuleDefinitionController.GetModuleDefinitionsByDesktopModuleID(desktopModuleId); var currentModDefId = 0; foreach (var modDefKeyPair in modDefs) { if (modDefKeyPair.Value.FriendlyName.Equals(currentModuleDefinitionName, StringComparison.InvariantCultureIgnoreCase)) { currentModDefId = modDefKeyPair.Value.ModuleDefID; } } foreach (var modDefKeyPair in modDefs) { var oldModDefId = modDefKeyPair.Value.ModuleDefID; if (oldModDefId != currentModDefId) { foreach (ModuleInfo mod in ModuleController.Instance.GetAllModules()) { if (mod.ModuleDefID == oldModDefId) { mod.ModuleDefID = currentModDefId; ModuleController.Instance.UpdateModule(mod); } } mdc.DeleteModuleDefinition(oldModDefId); } } modDefs = ModuleDefinitionController.GetModuleDefinitionsByDesktopModuleID(desktopModuleId); if (modDefs.Count == 0) { new DesktopModuleController().DeleteDesktopModule(desktopModuleId); } }
protected void cmdDeleteDefinition_Click(object sender, EventArgs e) { var objModuleDefinitions = new ModuleDefinitionController(); objModuleDefinitions.DeleteModuleDefinition(ModuleDefinitionID); //Force Definitions list to refresh by rebinding DesktopModule ModuleDefinitionID = Null.NullInteger; _ModuleDefinition = null; _DesktopModule = null; BindDesktopModule(true); }
/// <summary> /// LoadDefinitions fetches the definitions from the database and updates the controls /// </summary> /// <history> /// [cnurse] 9/28/2004 Updated to reflect design changes for Help, 508 support /// and localisation /// </history> private void LoadDefinitions() { ModuleDefinitionController objModuleDefinitions = new ModuleDefinitionController(); cboDefinitions.DataSource = objModuleDefinitions.GetModuleDefinitions( DesktopModuleId ); cboDefinitions.DataBind(); if( cboDefinitions.Items.Count != 0 ) { cboDefinitions.SelectedIndex = 0; int ModuleDefId = int.Parse( cboDefinitions.SelectedItem.Value ); LoadCacheProperties( ModuleDefId ); LoadControls( ModuleDefId ); tabCache.Visible = true; } else { cmdAddControl.Visible = false; grdControls.Visible = false; txtCacheTime.Text = "0"; tabCache.Visible = false; } }
/// <summary> /// UpgradeApplication - This overload is used for general application upgrade operations. /// </summary> /// <remarks> /// Since it is not version specific and is invoked whenever the application is /// restarted, the operations must be re-executable. /// </remarks> private static string UpgradeApplication() { string strExceptions = ""; try { // remove the system message module from the admin tab // System Messages are now managed through Localization if (CoreModuleExists("System Messages")) { RemoveCoreModule("System Messages", "Admin", "Site Settings", false); } // add the log viewer module to the admin tab int moduleDefId; if (CoreModuleExists("Log Viewer") == false) { moduleDefId = AddModuleDefinition("Log Viewer", "Allows you to view log entries for portal events.", "Log Viewer"); AddModuleControl(moduleDefId, "", "", "Admin/Logging/LogViewer.ascx", "", SecurityAccessLevel.Admin, 0); AddModuleControl(moduleDefId, "Edit", "Edit Log Settings", "Admin/Logging/EditLogTypes.ascx", "", SecurityAccessLevel.Host, 0); //Add the Module/Page to all configured portals AddAdminPages("Log Viewer", "icon_viewstats_16px.gif", true, moduleDefId, "Log Viewer", "icon_viewstats_16px.gif"); } if (CoreModuleExists("Authentication") == false) { moduleDefId = AddModuleDefinition("Windows Authentication", "Allows you to manage authentication settings for sites using Windows Authentication.", "Windows Authentication"); AddModuleControl(moduleDefId, "", "", "Admin/Security/AuthenticationSettings.ascx", "", SecurityAccessLevel.Admin, 0); //Add the Module/Page to all configured portals AddAdminPages("Authentication", "icon_authentication_16px.gif", true, moduleDefId, "Authentication", "icon_authentication_16px.gif"); } // add the schedule module to the host tab TabInfo newPage; if (CoreModuleExists("Schedule") == false) { moduleDefId = AddModuleDefinition("Schedule", "Allows you to schedule tasks to be run at specified intervals.", "Schedule"); AddModuleControl(moduleDefId, "", "", "Admin/Scheduling/ViewSchedule.ascx", "", SecurityAccessLevel.Admin, 0); AddModuleControl(moduleDefId, "Edit", "Edit Schedule", "Admin/Scheduling/EditSchedule.ascx", "", SecurityAccessLevel.Host, 0); AddModuleControl(moduleDefId, "History", "Schedule History", "Admin/Scheduling/ViewScheduleHistory.ascx", "", SecurityAccessLevel.Host, 0); AddModuleControl(moduleDefId, "Status", "Schedule Status", "Admin/Scheduling/ViewScheduleStatus.ascx", "", SecurityAccessLevel.Host, 0); //Create New Host Page (or get existing one) newPage = AddHostPage("Schedule", "icon_scheduler_16px.gif", true); //Add Module To Page AddModuleToPage(newPage, moduleDefId, "Schedule", "icon_scheduler_16px.gif"); } // add the skins module to the admin tab if (CoreModuleExists("Skins") == false) { moduleDefId = AddModuleDefinition("Skins", "Allows you to manage your skins and containers.", "Skins"); AddModuleControl(moduleDefId, "", "", "Admin/Skins/EditSkins.ascx", "", SecurityAccessLevel.Admin, 0); //Add the Module/Page to all configured portals AddAdminPages("Skins", "icon_skins_16px.gif", true, moduleDefId, "Skins", "icon_skins_16px.gif"); } // add the language editor module to the host tab if (!CoreModuleExists("Languages")) { moduleDefId = AddModuleDefinition("Languages", "The Super User can manage the suported languages installed on the system.", "Languages"); AddModuleControl(moduleDefId, "", "", "Admin/Localization/Languages.ascx", "", SecurityAccessLevel.Host, 0); AddModuleControl(moduleDefId, "TimeZone", "TimeZone Editor", "Admin/Localization/TimeZoneEditor.ascx", "", SecurityAccessLevel.Host, 0); AddModuleControl(moduleDefId, "Language", "Language Editor", "Admin/Localization/LanguageEditor.ascx", "", SecurityAccessLevel.Host, 0); AddModuleControl(moduleDefId, "FullEditor", "Language Editor", "Admin/Localization/LanguageEditorExt.ascx", "", SecurityAccessLevel.Host, 0); AddModuleControl(moduleDefId, "Verify", "Resource File Verifier", "Admin/Localization/ResourceVerifier.ascx", "", SecurityAccessLevel.Host, 0); AddModuleControl(moduleDefId, "Package", "Create Language Pack", "Admin/Localization/LanguagePack.ascx", "", SecurityAccessLevel.Host, 0); //Create New Host Page (or get existing one) newPage = AddHostPage("Languages", "icon_language_16px.gif", true); //Add Module To Page AddModuleToPage(newPage, moduleDefId, "Languages", "icon_language_16px.gif"); moduleDefId = AddModuleDefinition("Custom Locales", "Administrator can manage custom translations for portal.", "Custom Portal Locale"); AddModuleControl(moduleDefId, "", "", "Admin/Localization/LanguageEditor.ascx", "", SecurityAccessLevel.Admin, 0); AddModuleControl(moduleDefId, "FullEditor", "Language Editor", "Admin/Localization/LanguageEditorExt.ascx", "", SecurityAccessLevel.Admin, 0); //Add the Module/Page to all configured portals AddAdminPages("Languages", "icon_language_16px.gif", true, moduleDefId, "Languages", "icon_language_16px.gif"); } // add the Search Admin module to the host tab if (CoreModuleExists("Search Admin") == false) { moduleDefId = AddModuleDefinition("Search Admin", "The Search Admininstrator provides the ability to manage search settings.", "Search Admin"); AddModuleControl(moduleDefId, "", "", "Admin/Search/SearchAdmin.ascx", "", SecurityAccessLevel.Host, 0); //Create New Host Page (or get existing one) newPage = AddHostPage("Search Admin", "icon_search_16px.gif", true); //Add Module To Page AddModuleToPage(newPage, moduleDefId, "Search Admin", "icon_search_16px.gif"); //Add the Module/Page to all configured portals //AddAdminPages("Search Admin", "icon_search_16px.gif", True, ModuleDefID, "Search Admin", "icon_search_16px.gif") } // add the Search Input module if (CoreModuleExists("Search Input") == false) { moduleDefId = AddModuleDefinition("Search Input", "The Search Input module provides the ability to submit a search to a given search results module.", "Search Input", false, false); AddModuleControl(moduleDefId, "", "", "DesktopModules/SearchInput/SearchInput.ascx", "", SecurityAccessLevel.Anonymous, 0); AddModuleControl(moduleDefId, "Settings", "Search Input Settings", "DesktopModules/SearchInput/Settings.ascx", "", SecurityAccessLevel.Edit, 0); } // add the Search Results module if (CoreModuleExists("Search Results") == false) { moduleDefId = AddModuleDefinition("Search Results", "The Search Reasults module provides the ability to display search results.", "Search Results", false, false); AddModuleControl(moduleDefId, "", "", "DesktopModules/SearchResults/SearchResults.ascx", "", SecurityAccessLevel.Anonymous, 0); AddModuleControl(moduleDefId, "Settings", "Search Results Settings", "DesktopModules/SearchResults/Settings.ascx", "", SecurityAccessLevel.Edit, 0); //Add the Search Module/Page to all configured portals AddSearchResults(moduleDefId); } // add the site wizard module to the admin tab if (CoreModuleExists("Site Wizard") == false) { moduleDefId = AddModuleDefinition("Site Wizard", "The Administrator can use this user-friendly wizard to set up the common features of the Portal/Site.", "Site Wizard"); AddModuleControl(moduleDefId, "", "", "Admin/Portal/Sitewizard.ascx", "", SecurityAccessLevel.Admin, 0); AddAdminPages("Site Wizard", "icon_sitesettings_16px.gif", true, moduleDefId, "Site Wizard", "icon_sitesettings_16px.gif"); } // add portal alias module if (CoreModuleExists("Portal Aliases") == false) { moduleDefId = AddModuleDefinition("Portal Aliases", "Allows you to view portal aliases.", "Portal Aliases"); AddModuleControl(moduleDefId, "", "", "Admin/Portal/PortalAlias.ascx", "", SecurityAccessLevel.Host, 0); AddModuleControl(moduleDefId, "Edit", "Portal Aliases", "Admin/Portal/EditPortalAlias.ascx", "", SecurityAccessLevel.Host, 0); //Add the Module/Page to all configured portals (with InheritViewPermissions = False) AddAdminPages("Site Settings", "icon_sitesettings_16px.gif", false, moduleDefId, "Portal Aliases", "icon_sitesettings_16px.gif", false); } //add Lists module and tab if (HostTabExists("Lists") == false) { moduleDefId = AddModuleDefinition("Lists", "Allows you to edit common lists.", "Lists"); AddModuleControl(moduleDefId, "", "", "Admin/Lists/ListEditor.ascx", "", SecurityAccessLevel.Host, 0); //Create New Host Page (or get existing one) newPage = AddHostPage("Lists", "icon_lists_16px.gif", true); //Add Module To Page AddModuleToPage(newPage, moduleDefId, "Lists", "icon_lists_16px.gif"); } // add the feedback settings control if (CoreModuleExists("Feedback")) { moduleDefId = GetModuleDefinition("Feedback", "Feedback"); AddModuleControl(moduleDefId, "Settings", "Feedback Settings", "DesktopModules/Feedback/Settings.ascx", "", SecurityAccessLevel.Edit, 0); } if (HostTabExists("Superuser Accounts") == false) { //add SuperUser Accounts module and tab DesktopModuleController objDesktopModuleController = new DesktopModuleController(); DesktopModuleInfo objDesktopModuleInfo; objDesktopModuleInfo = objDesktopModuleController.GetDesktopModuleByName("User Accounts"); ModuleDefinitionController objModuleDefController = new ModuleDefinitionController(); moduleDefId = objModuleDefController.GetModuleDefinitionByName(objDesktopModuleInfo.DesktopModuleID, "User Accounts").ModuleDefID; //Create New Host Page (or get existing one) newPage = AddHostPage("Superuser Accounts", "icon_users_16px.gif", true); //Add Module To Page AddModuleToPage(newPage, moduleDefId, "Superuser Accounts", "icon_users_32px.gif"); } //add Skins module and tab to Host menu if (HostTabExists("Skins") == false) { DesktopModuleController objDesktopModuleController = new DesktopModuleController(); DesktopModuleInfo objDesktopModuleInfo; objDesktopModuleInfo = objDesktopModuleController.GetDesktopModuleByName("Skins"); ModuleDefinitionController objModuleDefController = new ModuleDefinitionController(); moduleDefId = objModuleDefController.GetModuleDefinitionByName(objDesktopModuleInfo.DesktopModuleID, "Skins").ModuleDefID; //Create New Host Page (or get existing one) newPage = AddHostPage("Skins", "icon_skins_16px.gif", true); //Add Module To Page AddModuleToPage(newPage, moduleDefId, "Skins", ""); } //Add Search Skin Object AddModuleControl(Null.NullInteger, "SEARCH", Null.NullString, "Admin/Skins/Search.ascx", "", SecurityAccessLevel.SkinObject, Null.NullInteger); //Add TreeView Skin Object AddModuleControl(Null.NullInteger, "TREEVIEW", Null.NullString, "Admin/Skins/TreeViewMenu.ascx", "", SecurityAccessLevel.SkinObject, Null.NullInteger); //Add Private Assembly Packager moduleDefId = GetModuleDefinition("Module Definitions", "Module Definitions"); AddModuleControl(moduleDefId, "Package", "Create Private Assembly", "Admin/ModuleDefinitions/PrivateAssembly.ascx", "icon_moduledefinitions_32px.gif", SecurityAccessLevel.Edit, Null.NullInteger); //Add Edit Role Groups moduleDefId = GetModuleDefinition("Security Roles", "Security Roles"); AddModuleControl(moduleDefId, "EditGroup", "Edit Role Groups", "Admin/Security/EditGroups.ascx", "icon_securityroles_32px.gif", SecurityAccessLevel.Edit, Null.NullInteger); AddModuleControl(moduleDefId, "UserSettings", "Manage User Settings", "Admin/Users/UserSettings.ascx", "~/images/settings.gif", SecurityAccessLevel.Edit, Null.NullInteger); //Add User Accounts Controls moduleDefId = GetModuleDefinition("User Accounts", "User Accounts"); AddModuleControl(moduleDefId, "ManageProfile", "Manage Profile Definition", "Admin/Users/ProfileDefinitions.ascx", "icon_users_32px.gif", SecurityAccessLevel.Edit, Null.NullInteger); AddModuleControl(moduleDefId, "EditProfileProperty", "Edit Profile Property Definition", "Admin/Users/EditProfileDefinition.ascx", "icon_users_32px.gif", SecurityAccessLevel.Edit, Null.NullInteger); AddModuleControl(moduleDefId, "UserSettings", "Manage User Settings", "Admin/Users/UserSettings.ascx", "~/images/settings.gif", SecurityAccessLevel.Edit, Null.NullInteger); AddModuleControl(Null.NullInteger, "Profile", "Profile", "Admin/Users/ManageUsers.ascx", "icon_users_32px.gif", SecurityAccessLevel.Anonymous, Null.NullInteger); AddModuleControl(Null.NullInteger, "SendPassword", "Send Password", "Admin/Security/SendPassword.ascx", "", SecurityAccessLevel.Anonymous, Null.NullInteger); AddModuleControl(Null.NullInteger, "ViewProfile", "View Profile", "Admin/Users/ViewProfile.ascx", "icon_users_32px.gif", SecurityAccessLevel.Anonymous, Null.NullInteger); //Update Child Portal subHost.aspx PortalAliasController objAliasController = new PortalAliasController(); ArrayList arrAliases = objAliasController.GetPortalAliasArrayByPortalID(Null.NullInteger); foreach (PortalAliasInfo objAlias in arrAliases) { //For the alias to be for a child it must be of the form ...../child if (objAlias.HTTPAlias.LastIndexOf("/") != -1) { string childPath = Globals.ApplicationMapPath + "\\" + objAlias.HTTPAlias.Substring(objAlias.HTTPAlias.LastIndexOf("/") + 1); if (Directory.Exists(childPath)) { //Folder exists App/child so upgrade //Rename existing file File.Copy(childPath + "\\" + Globals.glbDefaultPage, childPath + "\\old_" + Globals.glbDefaultPage, true); // create the subhost default.aspx file File.Copy(Globals.HostMapPath + "subhost.aspx", childPath + "\\" + Globals.glbDefaultPage, true); } } } } catch (Exception ex) { strExceptions += "Error: " + ex.Message + "\r\n"; try { Exceptions.Exceptions.LogException(ex); } catch { // ignore } } return strExceptions; }
public int AddModuleToPage(TabInfo t, ModuleType type) { string DesktopModuleFriendlyName=""; string ModuleDefFriendlyName=""; ModuleDefinitionInfo moduleDefinitionInfo = new ModuleDefinitionInfo(); ModuleInfo moduleInfo = new ModuleInfo(); moduleInfo.PortalID = t.PortalID; moduleInfo.TabID = t.TabID; moduleInfo.ModuleOrder = 1; moduleInfo.ModuleTitle = ""; moduleInfo.DisplayPrint = false; moduleInfo.IsShareable = true; moduleInfo.IsShareableViewOnly = true; switch (type) { case ModuleType.DisplayPlugg: moduleInfo.PaneName = "RowTwo_Grid8_Pane"; DesktopModuleFriendlyName = "DisplayPlugg"; ModuleDefFriendlyName = "DisplayPlugg"; break; case ModuleType.DisplayCourse: moduleInfo.PaneName = "RowTwo_Grid8_Pane"; DesktopModuleFriendlyName = "DisplayCourse"; ModuleDefFriendlyName = "DisplayCourse"; break; case ModuleType.CourseMenu: moduleInfo.PaneName = "RowTwo_Grid4_Pane"; DesktopModuleFriendlyName = "CourseMenu"; ModuleDefFriendlyName = "CourseMenu"; break; case ModuleType.Rating: moduleInfo.PaneName = "RowTwo_Grid4_Pane"; DesktopModuleFriendlyName = "DNNCentric RnC"; ModuleDefFriendlyName = "DNNCentric.RatingAndComments"; break; case ModuleType.Comments: moduleInfo.PaneName = "RowTwo_Grid8_Pane"; DesktopModuleFriendlyName = "DNNCentric RnC"; ModuleDefFriendlyName = "DNNCentric.RatingAndComments"; break; case ModuleType.DisplayPluggeTitle: moduleInfo.PaneName = "RowTwo_Grid4_Pane"; DesktopModuleFriendlyName = "DisplayPluggeTitle"; ModuleDefFriendlyName = "DisplayPluggeTitle"; break; } DesktopModuleInfo myModule = null; foreach (KeyValuePair<int, DesktopModuleInfo> kvp in DesktopModuleController.GetDesktopModules(t.PortalID)) { DesktopModuleInfo mod = kvp.Value; if (mod != null) if (mod.FriendlyName == DesktopModuleFriendlyName) { myModule = mod; break; } } int moduleId=0; if (myModule != null) { var mc = new ModuleDefinitionController(); var mInfo = new ModuleDefinitionInfo(); mInfo = ModuleDefinitionController.GetModuleDefinitionByFriendlyName(ModuleDefFriendlyName, myModule.DesktopModuleID); moduleInfo.ModuleDefID = mInfo.ModuleDefID; moduleInfo.CacheTime = moduleDefinitionInfo.DefaultCacheTime;//Default Cache Time is 0 moduleInfo.InheritViewPermissions = true; //Inherit View Permissions from Tab moduleInfo.AllTabs = false; moduleInfo.Alignment = "Top"; ModuleController moduleController = new ModuleController(); moduleId = moduleController.AddModule(moduleInfo); } DotNetNuke.Common.Utilities.DataCache.ClearModuleCache(t.TabID); DotNetNuke.Common.Utilities.DataCache.ClearTabsCache(t.PortalID); DotNetNuke.Common.Utilities.DataCache.ClearPortalCache(t.PortalID, false); //Add settings for RnC ModuleController m = new ModuleController(); if (type == ModuleType.Rating) { AddModuleSettingsRnCCommon(moduleId); m.UpdateModuleSetting(moduleId, "PRC_settingCommentObject", "tabid:" + t.TabID); m.UpdateModuleSetting(moduleId, "PRC_settingShow", "OnlyRatings"); m.UpdateModuleSetting(moduleId, "PRC_settingRncWidth", "357"); } if (type == ModuleType.Comments) { AddModuleSettingsRnCCommon(moduleId); m.UpdateModuleSetting(moduleId, "PRC_settingCommentObject", "tabid:" + t.TabID); m.UpdateModuleSetting(moduleId, "PRC_settingShow", "OnlyComments"); m.UpdateModuleSetting(moduleId, "PRC_settingRncWidth", "744"); } if (type == ModuleType.Rating || type == ModuleType.Comments) { RnCController c = new RnCController(); DCC_PRC_CommentObject myCO = new DCC_PRC_CommentObject(); myCO.CommentObject = "tabid:" + t.TabID; myCO.CommentObjectViewCount = 0; myCO.PortalID = t.PortalID; c.CreateCommentObject(myCO); } return moduleId; }
/// <summary> /// Processes all panes and modules in the template file /// </summary> /// <param name="nodePanes">Template file node for the panes is current tab</param> /// <param name="PortalId">PortalId of the new portal</param> /// <param name="TabId">Tab being processed</param> /// <remarks> /// </remarks> /// <history> /// [VMasanas] 03/09/2004 Created /// [VMasanas] 15/10/2004 Modified for new skin structure /// [cnurse] 15/10/2004 Modified to allow for merging template /// with existing pages /// </history> public void ParsePanes( XmlNode nodePanes, int PortalId, int TabId, PortalTemplateModuleAction mergeTabs, Hashtable hModules ) { XmlNode nodePane = null; XmlNode nodeModule = null; ModuleDefinitionController objModuleDefinitions = new ModuleDefinitionController(); ModuleDefinitionInfo objModuleDefinition = null; ModuleController objModules = new ModuleController(); Dictionary<int, ModuleInfo> dicModules = objModules.GetTabModules( TabId ); ModuleInfo objModule = null; int intModuleId = 0; string modTitle = null; bool moduleFound = false; PortalInfo objportal = null; objportal = GetPortal( PortalId ); //If Mode is Replace remove all the modules already on this Tab if( mergeTabs == PortalTemplateModuleAction.Replace ) { foreach( KeyValuePair<int, ModuleInfo> kvp in dicModules ) { objModule = kvp.Value; objModules.DeleteTabModule( TabId, objModule.ModuleID ); } } // iterate through the panes foreach( XmlNode nodePaneWithinLoop in nodePanes.ChildNodes ) { nodePane = nodePaneWithinLoop; // iterate through the modules if( nodePaneWithinLoop.SelectSingleNode( "modules" ) != null ) { foreach( XmlNode nodeModuleWithinLoop in nodePaneWithinLoop.SelectSingleNode( "modules" ) ) { nodeModule = nodeModuleWithinLoop; // will be instance or module? int templateModuleID = XmlUtils.GetNodeValueInt( nodeModule, "moduleID", 0 ); bool IsInstance = false; if( templateModuleID > 0 ) { if( hModules[templateModuleID] != null ) { // this module has already been processed -> process as instance IsInstance = true; } } // Templates prior to v4.3.5 only have the <definition> node to define the Module Type // This <definition> node was populated with the DesktopModuleInfo.ModuleName property // Thus there is no mechanism to determine to which module definition the module belongs. // // Template from v4.3.5 on also have the <moduledefinition> element that is populated // with the ModuleDefinitionInfo.FriendlyName. Therefore the module Instance identifies // which Module Definition it belongs to. //Get the DesktopModule defined by the <definition> element DesktopModuleInfo objDesktopModule = Globals.GetDesktopModuleByName( XmlUtils.GetNodeValue( nodeModule, "definition", "" ) ); if( objDesktopModule != null ) { //Get the moduleDefinition from the <moduledefinition> element string friendlyName = XmlUtils.GetNodeValue( nodeModule, "moduledefinition", "" ); if( string.IsNullOrEmpty( friendlyName ) ) { //Module is pre 4.3.5 so get the first Module Definition (at least it won't throw an error then) ArrayList arrModuleDefinitions = objModuleDefinitions.GetModuleDefinitions( objDesktopModule.DesktopModuleID ); objModuleDefinition = (ModuleDefinitionInfo)( arrModuleDefinitions[0] ); } else { //Module is 4.3.5 or later so get the Module Defeinition by its friendly name objModuleDefinition = objModuleDefinitions.GetModuleDefinitionByName( objDesktopModule.DesktopModuleID, friendlyName ); } if( objModuleDefinition != null ) { //If Mode is Merge Check if Module exists moduleFound = false; modTitle = XmlUtils.GetNodeValue( nodeModuleWithinLoop, "title", "" ); if( mergeTabs == PortalTemplateModuleAction.Merge ) { foreach( KeyValuePair<int, ModuleInfo> kvp in dicModules ) { objModule = kvp.Value; if( modTitle == objModule.ModuleTitle ) { moduleFound = true; break; } } } if( moduleFound == false ) { //Create New Module objModule = new ModuleInfo(); objModule.PortalID = PortalId; objModule.TabID = TabId; objModule.ModuleOrder = -1; objModule.ModuleTitle = modTitle; objModule.PaneName = XmlUtils.GetNodeValue( nodePaneWithinLoop, "name", "" ); objModule.ModuleDefID = objModuleDefinition.ModuleDefID; objModule.CacheTime = XmlUtils.GetNodeValueInt( nodeModuleWithinLoop, "cachetime", 0 ); objModule.Alignment = XmlUtils.GetNodeValue( nodeModuleWithinLoop, "alignment", "" ); objModule.IconFile = ImportFile( PortalId, XmlUtils.GetNodeValue( nodeModuleWithinLoop, "iconfile", "" ) ); objModule.AllTabs = XmlUtils.GetNodeValueBoolean( nodeModuleWithinLoop, "alltabs", false ); switch( XmlUtils.GetNodeValue( nodeModuleWithinLoop, "visibility", "" ) ) { case "Maximized": objModule.Visibility = VisibilityState.Maximized; break; case "Minimized": objModule.Visibility = VisibilityState.Minimized; break; case "None": objModule.Visibility = VisibilityState.None; break; } objModule.Color = XmlUtils.GetNodeValue( nodeModuleWithinLoop, "color", "" ); objModule.Border = XmlUtils.GetNodeValue( nodeModuleWithinLoop, "border", "" ); objModule.Header = XmlUtils.GetNodeValue( nodeModuleWithinLoop, "header", "" ); objModule.Footer = XmlUtils.GetNodeValue( nodeModuleWithinLoop, "footer", "" ); objModule.InheritViewPermissions = XmlUtils.GetNodeValueBoolean( nodeModuleWithinLoop, "inheritviewpermissions", false ); objModule.ModulePermissions = new ModulePermissionCollection(); objModule.StartDate = XmlUtils.GetNodeValueDate( nodeModuleWithinLoop, "startdate", Null.NullDate ); objModule.EndDate = XmlUtils.GetNodeValueDate( nodeModuleWithinLoop, "enddate", Null.NullDate ); if( XmlUtils.GetNodeValue( nodeModuleWithinLoop, "containersrc", "" ) != "" ) { objModule.ContainerSrc = XmlUtils.GetNodeValue( nodeModuleWithinLoop, "containersrc", "" ); } objModule.DisplayTitle = XmlUtils.GetNodeValueBoolean( nodeModuleWithinLoop, "displaytitle", true ); objModule.DisplayPrint = XmlUtils.GetNodeValueBoolean( nodeModuleWithinLoop, "displayprint", true ); objModule.DisplaySyndicate = XmlUtils.GetNodeValueBoolean( nodeModuleWithinLoop, "displaysyndicate", false ); if( !IsInstance ) { //Add new module intModuleId = objModules.AddModule( objModule ); if( templateModuleID > 0 ) { hModules.Add( templateModuleID, intModuleId ); } } else { //Add instance objModule.ModuleID = Convert.ToInt32( hModules[templateModuleID] ); intModuleId = objModules.AddModule( objModule ); } if( XmlUtils.GetNodeValue( nodeModuleWithinLoop, "content", "" ) != "" & !IsInstance ) { objModule = objModules.GetModule( intModuleId, TabId, true ); string strVersion = nodeModule.SelectSingleNode( "content" ).Attributes["version"].Value; string strType = nodeModule.SelectSingleNode( "content" ).Attributes["type"].Value; string strcontent = nodeModule.SelectSingleNode( "content" ).InnerXml; strcontent = strcontent.Substring( 9, strcontent.Length - 12 ); strcontent = HttpContext.Current.Server.HtmlDecode( strcontent ); if( objModule.BusinessControllerClass != "" & objModule.IsPortable ) { try { object objObject = Reflection.CreateObject( objModule.BusinessControllerClass, objModule.BusinessControllerClass ); if( objObject is IPortable ) { ( (IPortable)objObject ).ImportModule( objModule.ModuleID, strcontent, strVersion, objportal.AdministratorId ); } } catch { //ignore errors } } } // Process permissions only once if( !IsInstance ) { XmlNodeList nodeModulePermissions = nodeModule.SelectNodes( "modulepermissions/permission" ); ParseModulePermissions( nodeModulePermissions, PortalId, intModuleId ); } } } } } } } }
private static void GenerateAdminTab(int PortalId) { var tabID = TabController.GetTabByTabPath(PortalId, @"//Admin//OpenUrlRewriter", Null.NullString); if (tabID == Null.NullInteger) { var adminTabID = TabController.GetTabByTabPath(PortalId, @"//Admin", Null.NullString); /* dont work on dnn 7 - generate new section "SEO Features" in admin menu var tabName = "SEO Features"; var tabPath = Globals.GenerateTabPath(adminTabID, tabName); tabID = TabController.GetTabByTabPath(PortalId, tabPath, Null.NullString); if (tabID == Null.NullInteger) { //Create a new page var newParentTab = new TabInfo(); newParentTab.TabName = tabName; newParentTab.ParentId = adminTabID; newParentTab.PortalID = PortalId; newParentTab.IsVisible = true; newParentTab.DisableLink = true; newParentTab.TabID = new TabController().AddTab(newParentTab); tabID = newParentTab.TabID; } */ // create new page "Url Rules Cache" int parentTabID = adminTabID; var tabName = "Open Url Rewriter"; var tabPath = Globals.GenerateTabPath(parentTabID, tabName); tabID = TabController.GetTabByTabPath(PortalId, tabPath, Null.NullString); if (tabID == Null.NullInteger) { //Create a new page var newTab = new TabInfo(); newTab.TabName = tabName; newTab.ParentId = parentTabID; newTab.PortalID = PortalId; newTab.IsVisible = true; #if DNN71 newTab.IconFile = "~/Icons/Sigma/AdvancedUrlMngmt_16x16.png"; newTab.IconFileLarge = "~/Icons/Sigma/AdvancedUrlMngmt_32x32.png"; #else newTab.IconFile = "~/Images/icon_search_16px.gif"; newTab.IconFileLarge = "~/Images/icon_search_32px.gif"; #endif newTab.TabID = new TabController().AddTab(newTab, false); tabID = newTab.TabID; } } // create new module "OpenUrlRewriter" var moduleCtl = new ModuleController(); if (moduleCtl.GetTabModules(tabID).Count == 0) { var dmc = new DesktopModuleController(); var dm = dmc.GetDesktopModuleByModuleName("OpenUrlRewriter"); var mdc = new ModuleDefinitionController(); var md = mdc.GetModuleDefinitionByName(dm.DesktopModuleID, "OpenUrlRewriter"); var objModule = new ModuleInfo(); //objModule.Initialize(PortalId); objModule.PortalID = PortalId; objModule.TabID = tabID; objModule.ModuleOrder = Null.NullInteger; objModule.ModuleTitle = "Open Url Rewriter"; objModule.PaneName = Globals.glbDefaultPane; objModule.ModuleDefID = md.ModuleDefID; objModule.InheritViewPermissions = true; objModule.AllTabs = false; #if DNN71 objModule.IconFile = "~/Icons/Sigma/AdvancedUrlMngmt_16x16.png"; #else objModule.IconFile = "~/Images/icon_search_32px.gif"; #endif moduleCtl.AddModule(objModule); } }
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); } }
/// <summary> /// cmdUpdateCacheTime_Click runs when the Update Cache Time Button is clicked /// </summary> /// <history> /// [cnurse] 4/20/2005 Created /// </history> protected void cmdUpdateCacheTime_Click( object sender, EventArgs e ) { if( cboDefinitions.SelectedItem != null ) { int ModuleDefId = int.Parse( cboDefinitions.SelectedItem.Value ); ModuleDefinitionController objModuleDefinitions = new ModuleDefinitionController(); ModuleDefinitionInfo objModuleDefinition = objModuleDefinitions.GetModuleDefinition( ModuleDefId ); try { objModuleDefinition.DefaultCacheTime = int.Parse( txtCacheTime.Text ); objModuleDefinitions.UpdateModuleDefinition( objModuleDefinition ); } catch( Exception ) { UI.Skins.Skin.AddModuleMessage( this, Localization.GetString( "UpdateCache.ErrorMessage", this.LocalResourceFile ), ModuleMessageType.RedError ); } } else { UI.Skins.Skin.AddModuleMessage( this, Localization.GetString( "MissingDefinition.ErrorMessage", this.LocalResourceFile ), ModuleMessageType.RedError ); } }
/// <summary> /// Page_Load runs when the control is loaded. /// </summary> /// <returns></returns> /// <remarks> /// </remarks> /// <history> /// [cnurse] 9/28/2004 Updated to reflect design changes for Help, 508 support /// and localisation /// </history> protected void Page_Load( Object sender, EventArgs e ) { try { if( ( Request.QueryString["desktopmoduleid"] != null ) ) { DesktopModuleId = int.Parse( Request.QueryString["desktopmoduleid"] ); if( DesktopModuleId == - 2 ) { DesktopModuleId = Null.NullInteger; } } else { DesktopModuleId = Null.NullInteger; } if( ( Request.QueryString["moduledefid"] != null ) ) { ModuleDefId = int.Parse( Request.QueryString["moduledefid"] ); } else { ModuleDefId = Null.NullInteger; } if( ( Request.QueryString["modulecontrolid"] != null ) ) { ModuleControlId = int.Parse( Request.QueryString["modulecontrolid"] ); } else { ModuleControlId = Null.NullInteger; } if( Page.IsPostBack == false ) { DesktopModuleController objDesktopModules = new DesktopModuleController(); DesktopModuleInfo objDesktopModule; objDesktopModule = objDesktopModules.GetDesktopModule( DesktopModuleId ); if( objDesktopModule != null ) { txtModule.Text = objDesktopModule.FriendlyName; } else { txtModule.Text = Localization.GetString( "SkinObjects" ); txtTitle.Enabled = false; cboType.Enabled = false; txtViewOrder.Enabled = false; cboIcon.Enabled = false; } ModuleDefinitionController objModuleDefinitions = new ModuleDefinitionController(); ModuleDefinitionInfo objModuleDefinition; objModuleDefinition = objModuleDefinitions.GetModuleDefinition( ModuleDefId ); if( objModuleDefinition != null ) { txtDefinition.Text = objModuleDefinition.FriendlyName; } ClientAPI.AddButtonConfirm( cmdDelete, Localization.GetString( "DeleteItem" ) ); ModuleControlController objModuleControls = new ModuleControlController(); ModuleControlInfo objModuleControl; objModuleControl = objModuleControls.GetModuleControl( ModuleControlId ); // Added to populate cboSource with desktop module or skin controls // Issue #586 BindControlList( "DesktopModules", true ); BindControlList( "Admin/Skins", false ); if( objDesktopModule == null ) // Add Container Controls { BindControlList( "Admin/Containers", false ); } if( ! Null.IsNull( ModuleControlId ) ) { if( objModuleControl != null ) { txtKey.Text = objModuleControl.ControlKey; txtTitle.Text = objModuleControl.ControlTitle; if( cboSource.Items.FindByValue( objModuleControl.ControlSrc.ToString().ToLower() ) != null ) { cboSource.Items.FindByValue( objModuleControl.ControlSrc.ToString().ToLower() ).Selected = true; LoadIcons(); } if( cboType.Items.FindByValue( Convert.ToInt32( objModuleControl.ControlType ).ToString() ) != null ) { cboType.Items.FindByValue( Convert.ToInt32( objModuleControl.ControlType ).ToString() ).Selected = true; } if( ! Null.IsNull( objModuleControl.ViewOrder ) ) { txtViewOrder.Text = objModuleControl.ViewOrder.ToString(); } if( cboIcon.Items.FindByValue( objModuleControl.IconFile.ToLower() ) != null ) { cboIcon.Items.FindByValue( objModuleControl.IconFile.ToLower() ).Selected = true; } if( ! Null.IsNull( objModuleControl.HelpURL ) ) { txtHelpURL.Text = objModuleControl.HelpURL; } } } } } catch( Exception exc ) //Module failed to load { Exceptions.ProcessModuleLoadException( this, exc ); } }
/// <summary> /// cmdDeleteDefinition_Click runs when the Delete Definition Button is clicked /// </summary> /// <history> /// [cnurse] 9/28/2004 Updated to reflect design changes for Help, 508 support /// and localisation /// </history> protected void cmdDeleteDefinition_Click( object sender, EventArgs e ) { ModuleDefinitionController objModuleDefinitions = new ModuleDefinitionController(); objModuleDefinitions.DeleteModuleDefinition( int.Parse( cboDefinitions.SelectedItem.Value ) ); LoadDefinitions(); }
/// <summary> /// cmdAddDefinition_Click runs when the Add Definition Button is clicked /// </summary> /// <history> /// [cnurse] 9/28/2004 Updated to reflect design changes for Help, 508 support /// and localisation /// </history> protected void cmdAddDefinition_Click( object sender, EventArgs e ) { if( !String.IsNullOrEmpty(txtDefinition.Text) ) { ModuleDefinitionInfo objModuleDefinition = new ModuleDefinitionInfo(); objModuleDefinition.DesktopModuleID = DesktopModuleId; objModuleDefinition.FriendlyName = txtDefinition.Text; try { objModuleDefinition.DefaultCacheTime = int.Parse( txtCacheTime.Text ); if( objModuleDefinition.DefaultCacheTime < 0 ) { UI.Skins.Skin.AddModuleMessage( this, Localization.GetString( "UpdateCache.ErrorMessage", this.LocalResourceFile ), ModuleMessageType.RedError ); return; } } catch { UI.Skins.Skin.AddModuleMessage( this, Localization.GetString( "UpdateCache.ErrorMessage", this.LocalResourceFile ), ModuleMessageType.RedError ); return; } ModuleDefinitionController objModuleDefinitions = new ModuleDefinitionController(); int ModuleDefId; try { ModuleDefId = objModuleDefinitions.AddModuleDefinition( objModuleDefinition ); } catch { UI.Skins.Skin.AddModuleMessage( this, Localization.GetString( "AddDefinition.ErrorMessage", this.LocalResourceFile ), ModuleMessageType.RedError ); return; } LoadDefinitions(); if( ModuleDefId > - 1 ) { //Set the Combo cboDefinitions.SelectedIndex = - 1; cboDefinitions.Items.FindByValue( ModuleDefId.ToString() ).Selected = true; LoadCacheProperties( ModuleDefId ); LoadControls( ModuleDefId ); //Clear the Text Box txtDefinition.Text = ""; } } else { UI.Skins.Skin.AddModuleMessage( this, Localization.GetString( "MissingDefinition.ErrorMessage", this.LocalResourceFile ), ModuleMessageType.RedError ); } }
/// <summary> /// LoadCacheProperties loads the Module Definitions Default Cache Time properties /// </summary> /// <history> /// [cnurse] 4/21/2005 created /// </history> private void LoadCacheProperties( int ModuleDefId ) { ModuleDefinitionController objModuleDefinitionController = new ModuleDefinitionController(); ModuleDefinitionInfo objModuleDefinition = objModuleDefinitionController.GetModuleDefinition( ModuleDefId ); txtCacheTime.Text = objModuleDefinition.DefaultCacheTime.ToString(); }
/// <summary> /// BindData loads the settings from the Database /// </summary> /// <history> /// [cnurse] 10/18/2004 documented /// </history> private void BindData() { // declare roles ArrayList arrAvailableAuthViewRoles = new ArrayList(); ArrayList arrAvailableAuthEditRoles = new ArrayList(); // add an entry of All Users for the View roles arrAvailableAuthViewRoles.Add( new ListItem( "All Users", Globals.glbRoleAllUsers ) ); // add an entry of Unauthenticated Users for the View roles arrAvailableAuthViewRoles.Add( new ListItem( "Unauthenticated Users", Globals.glbRoleUnauthUser ) ); // add an entry of All Users for the Edit roles arrAvailableAuthEditRoles.Add( new ListItem( "All Users", Globals.glbRoleAllUsers ) ); // process portal roles RoleController objRoles = new RoleController(); RoleInfo objRole; ArrayList arrRoleInfo = objRoles.GetPortalRoles( PortalId ); foreach( RoleInfo tempLoopVar_objRole in arrRoleInfo ) { objRole = tempLoopVar_objRole; arrAvailableAuthViewRoles.Add( new ListItem( objRole.RoleName, objRole.RoleID.ToString() ) ); } foreach( RoleInfo tempLoopVar_objRole in arrRoleInfo ) { objRole = tempLoopVar_objRole; arrAvailableAuthEditRoles.Add( new ListItem( objRole.RoleName, objRole.RoleID.ToString() ) ); } // get module ModuleController objModules = new ModuleController(); ModuleInfo objModule = objModules.GetModule( moduleId, TabId, false ); if( objModule != null ) { // configure grid DesktopModuleController objDeskMod = new DesktopModuleController(); DesktopModuleInfo desktopModule = objDeskMod.GetDesktopModule( objModule.DesktopModuleID ); dgPermissions.ResourceFile = Globals.ApplicationPath + "/DesktopModules/" + desktopModule.FolderName + "/" + Localization.LocalResourceDirectory + "/" + Localization.LocalSharedResourceFile; chkInheritPermissions.Checked = objModule.InheritViewPermissions; dgPermissions.InheritViewPermissionsFromTab = objModule.InheritViewPermissions; txtTitle.Text = objModule.ModuleTitle; ctlIcon.Url = objModule.IconFile; if( cboTab.Items.FindByValue( objModule.TabID.ToString() ) != null ) { cboTab.Items.FindByValue( objModule.TabID.ToString() ).Selected = true; } chkAllTabs.Checked = objModule.AllTabs; cboVisibility.SelectedIndex = (int)objModule.Visibility; ModuleDefinitionController objModuleDefController = new ModuleDefinitionController(); ModuleDefinitionInfo objModuleDef = objModuleDefController.GetModuleDefinition( objModule.ModuleDefID ); if( objModuleDef.DefaultCacheTime == Null.NullInteger ) { rowCache.Visible = false; } else { txtCacheTime.Text = objModule.CacheTime.ToString(); } txtCacheTime.Text = objModule.CacheTime.ToString(); // populate view roles ArrayList arrAssignedAuthViewRoles = new ArrayList(); Array arrAuthViewRoles = objModule.AuthorizedViewRoles.Split(new char[] { ';' }); foreach( string strRole in arrAuthViewRoles ) { if( !String.IsNullOrEmpty( strRole ) ) { foreach( ListItem objListItem in arrAvailableAuthViewRoles ) { if( objListItem.Value == strRole ) { arrAssignedAuthViewRoles.Add( objListItem ); arrAvailableAuthViewRoles.Remove( objListItem ); break; } } } } // populate edit roles ArrayList arrAssignedAuthEditRoles = new ArrayList(); Array arrAuthEditRoles = objModule.AuthorizedEditRoles.Split(new char[] { ';' }); foreach( string strRole in arrAuthEditRoles ) { if( !String.IsNullOrEmpty( strRole ) ) { foreach( ListItem objListItem in arrAvailableAuthEditRoles ) { if( objListItem.Value == strRole ) { arrAssignedAuthEditRoles.Add( objListItem ); arrAvailableAuthEditRoles.Remove( objListItem ); break; } } } } if( objModule.Alignment == "" ) { objModule.Alignment = "left"; } cboAlign.Items.FindByValue( objModule.Alignment ).Selected = true; cboTab.Items.FindByValue( Convert.ToString( TabId ) ).Selected = true; txtColor.Text = objModule.Color; txtBorder.Text = objModule.Border; txtHeader.Text = objModule.Header; txtFooter.Text = objModule.Footer; if( ! Null.IsNull( objModule.StartDate ) ) { txtStartDate.Text = objModule.StartDate.ToShortDateString(); } if( ! Null.IsNull( objModule.EndDate ) ) { txtEndDate.Text = objModule.EndDate.ToShortDateString(); } ctlModuleContainer.Width = "250px"; ctlModuleContainer.SkinRoot = SkinInfo.RootContainer; ctlModuleContainer.SkinSrc = objModule.ContainerSrc; chkDisplayTitle.Checked = objModule.DisplayTitle; chkDisplayPrint.Checked = objModule.DisplayPrint; chkDisplaySyndicate.Checked = objModule.DisplaySyndicate; } }
/// <summary>Creates the custom permissions for the module. Expected to be called once from <see cref="FeaturesController.UpgradeModule"/></summary> /// <remarks>based on <see href="http://www.codeproject.com/KB/aspnet/dnn_custom_permissions.aspx"/> </remarks> /// <returns>A status message for <see cref="IUpgradeable.UpgradeModule"/></returns> public static string CreateCustomPermissions() { var permissionController = new PermissionController(); var existingPermissions = permissionController.GetPermissionByCodeAndKey(EngageEventsCustomPermissionsCode, ManageEventsCustomPermissionKey); if (existingPermissions != null && existingPermissions.Cast<PermissionInfo>().Any()) { return "Engage: Events custom permissions were already created (presumably by DNN 5 manifest), no upgrade action taken"; } var eventsDesktopModules = new DesktopModuleController().GetDesktopModuleByModuleName(Utility.DesktopModuleName); var moduleDefinition = new ModuleDefinitionController().GetModuleDefinitionByName( eventsDesktopModules.DesktopModuleID, Utility.ModuleDefinitionFriendlyName); permissionController.AddPermission(new PermissionInfo { PermissionCode = EngageEventsCustomPermissionsCode, PermissionKey = ManageEventsCustomPermissionKey, PermissionName = "Manage Events", ModuleDefID = moduleDefinition.ModuleDefID }); permissionController.AddPermission(new PermissionInfo { PermissionCode = EngageEventsCustomPermissionsCode, PermissionKey = ManageCategoriesCustomPermissionKey, PermissionName = "Manage Categories", ModuleDefID = moduleDefinition.ModuleDefID }); permissionController.AddPermission(new PermissionInfo { PermissionCode = EngageEventsCustomPermissionsCode, PermissionKey = ManageDisplayCustomPermissionKey, PermissionName = "Manage Display", ModuleDefID = moduleDefinition.ModuleDefID }); permissionController.AddPermission(new PermissionInfo { PermissionCode = EngageEventsCustomPermissionsCode, PermissionKey = ViewResponsesCustomPermissionKey, PermissionName = "View Responses", ModuleDefID = moduleDefinition.ModuleDefID }); return "Created custom permissions for category management in Engage: Events"; }
/// <summary> /// Creates the DNN manifest. /// </summary> /// <param name="objDesktopModule">The obj desktop module.</param> private void CreateDnnManifest(DesktopModuleInfo objDesktopModule) { string filename = ""; _Name = objDesktopModule.ModuleName; //Create Manifest Document XmlDocument xmlManifest = new XmlDocument(); //Root Element XmlNode nodeRoot = xmlManifest.CreateElement("dotnetnuke"); nodeRoot.Attributes.Append(XmlUtils.CreateAttribute(xmlManifest, "version", "3.0")); nodeRoot.Attributes.Append(XmlUtils.CreateAttribute(xmlManifest, "type", "Module")); //Folders Element XmlNode nodeFolders = xmlManifest.CreateElement("folders"); nodeRoot.AppendChild(nodeFolders); //Folder Element XmlNode nodeFolder = xmlManifest.CreateElement("folder"); nodeFolders.AppendChild(nodeFolder); //Desktop Module Info nodeFolder.AppendChild(XmlUtils.CreateElement(xmlManifest, "name", _Name)); nodeFolder.AppendChild(XmlUtils.CreateElement(xmlManifest, "friendlyname", objDesktopModule.FriendlyName)); nodeFolder.AppendChild(XmlUtils.CreateElement(xmlManifest, "foldername", objDesktopModule.FolderName)); nodeFolder.AppendChild(XmlUtils.CreateElement(xmlManifest, "modulename", _Name)); nodeFolder.AppendChild(XmlUtils.CreateElement(xmlManifest, "description", objDesktopModule.Description)); if (objDesktopModule.Version == Null.NullString) { objDesktopModule.Version = "01.00.00"; } nodeFolder.AppendChild(XmlUtils.CreateElement(xmlManifest, "version", objDesktopModule.Version)); nodeFolder.AppendChild(XmlUtils.CreateElement(xmlManifest, "businesscontrollerclass", objDesktopModule.BusinessControllerClass)); nodeFolder.AppendChild(XmlUtils.CreateElement(xmlManifest, "version", objDesktopModule.Version)); nodeFolder.AppendChild(XmlUtils.CreateElement(xmlManifest, "businesscontrollerclass", objDesktopModule.BusinessControllerClass)); if (objDesktopModule.CompatibleVersions != "") { nodeFolder.AppendChild(XmlUtils.CreateElement(xmlManifest, "compatibleversions", objDesktopModule.CompatibleVersions)); } if (SupportsProbingPrivatePath) { nodeFolder.AppendChild(XmlUtils.CreateElement(xmlManifest, "supportsprobingprivatepath", SupportsProbingPrivatePath.ToString())); } //Add Source files if (IncludeSource) { nodeFolder.AppendChild(XmlUtils.CreateElement(xmlManifest, "resourcefile", ResourceFileName)); } //Modules Element XmlNode nodeModules = xmlManifest.CreateElement("modules"); nodeFolder.AppendChild(nodeModules); //Get the Module Definitions for this Module ModuleDefinitionController objModuleDefinitionController = new ModuleDefinitionController(); ArrayList arrModuleDefinitions = objModuleDefinitionController.GetModuleDefinitions(objDesktopModule.DesktopModuleID); //Iterate through Module Definitions foreach (ModuleDefinitionInfo objModuleInfo in arrModuleDefinitions) { XmlNode nodeModule = xmlManifest.CreateElement("module"); //Add module definition properties nodeModule.AppendChild(XmlUtils.CreateElement(xmlManifest, "friendlyname", objModuleInfo.FriendlyName)); //Add Cache properties nodeModule.AppendChild(XmlUtils.CreateElement(xmlManifest, "cachetime", objModuleInfo.DefaultCacheTime.ToString())); //Get the Module Controls for this Module Definition ModuleControlController objModuleControlController = new ModuleControlController(); ArrayList arrModuleControls = objModuleControlController.GetModuleControls(objModuleInfo.ModuleDefID); //Controls Element XmlNode nodeControls = xmlManifest.CreateElement("controls"); nodeModule.AppendChild(nodeControls); //Iterate through Module Controls foreach (ModuleControlInfo objModuleControl in arrModuleControls) { XmlNode nodeControl = xmlManifest.CreateElement("control"); //Add module control properties XmlUtils.AppendElement(ref xmlManifest, nodeControl, "key", objModuleControl.ControlKey, false); XmlUtils.AppendElement(ref xmlManifest, nodeControl, "title", objModuleControl.ControlTitle, false); XmlUtils.AppendElement(ref xmlManifest, nodeControl, "src", objModuleControl.ControlSrc, true); XmlUtils.AppendElement(ref xmlManifest, nodeControl, "iconfile", objModuleControl.IconFile, false); XmlUtils.AppendElement(ref xmlManifest, nodeControl, "type", objModuleControl.ControlType.ToString(), true); XmlUtils.AppendElement(ref xmlManifest, nodeControl, "helpurl", objModuleControl.HelpURL, false); //Add control Node to controls nodeControls.AppendChild(nodeControl); //Determine the filename for the Manifest file (It should be saved with the other Module files) if (filename == "") { filename = Folder + "\\" + objDesktopModule.ModuleName + ".dnn"; } } //Add module Node to modules nodeModules.AppendChild(nodeModule); } //Files Element XmlNode nodeFiles = xmlManifest.CreateElement("files"); nodeFolder.AppendChild(nodeFiles); //Add the files foreach (PaFileInfo file in _Files) { XmlNode nodeFile = xmlManifest.CreateElement("file"); //Add file properties XmlUtils.AppendElement(ref xmlManifest, nodeFile, "path", file.Path, false); XmlUtils.AppendElement(ref xmlManifest, nodeFile, "name", file.Name, false); //Add file Node to files nodeFiles.AppendChild(nodeFile); } //Add Root element to document xmlManifest.AppendChild(nodeRoot); //Save Manifest file xmlManifest.Save(filename); }
/// <summary> /// AddModuleDefinition adds a new Core Module Definition to the system /// </summary> /// <remarks> /// This overload allows the caller to determine whether the module has a controller /// class /// </remarks> /// <param name="DesktopModuleName">The Friendly Name of the Module to Add</param> /// <param name="Description">Description of the Module</param> /// <param name="ModuleDefinitionName">The Module Definition Name</param> /// <param name="Premium">A flag representing whether the module is a Premium module</param> /// <param name="Admin">A flag representing whether the module is an Admin module</param> /// <param name="Controller">The Controller Class string</param> /// <param name="Version">The Module Version</param> /// <returns>The Module Definition Id of the new Module</returns> /// <history> /// [cnurse] 10/14/2004 documented /// [cnurse] 11/11/2004 removed addition of Module Control (now in AddMOduleControl) /// </history> private static int AddModuleDefinition(string DesktopModuleName, string Description, string ModuleDefinitionName, bool Premium, bool Admin, string Controller, string Version) { DesktopModuleController objDesktopModules = new DesktopModuleController(); // check if desktop module exists DesktopModuleInfo objDesktopModule = objDesktopModules.GetDesktopModuleByName(DesktopModuleName); if (objDesktopModule == null) { objDesktopModule = new DesktopModuleInfo(); objDesktopModule.DesktopModuleID = Null.NullInteger; objDesktopModule.FriendlyName = DesktopModuleName; objDesktopModule.FolderName = DesktopModuleName; objDesktopModule.ModuleName = DesktopModuleName; objDesktopModule.Description = Description; objDesktopModule.Version = Version; objDesktopModule.IsPremium = Premium; objDesktopModule.IsAdmin = Admin; objDesktopModule.BusinessControllerClass = Controller; objDesktopModule.DesktopModuleID = objDesktopModules.AddDesktopModule(objDesktopModule); } ModuleDefinitionController objModuleDefinitions = new ModuleDefinitionController(); // check if module definition exists ModuleDefinitionInfo objModuleDefinition = objModuleDefinitions.GetModuleDefinitionByName(objDesktopModule.DesktopModuleID, ModuleDefinitionName); if (objModuleDefinition == null) { objModuleDefinition = new ModuleDefinitionInfo(); objModuleDefinition.ModuleDefID = Null.NullInteger; objModuleDefinition.DesktopModuleID = objDesktopModule.DesktopModuleID; objModuleDefinition.FriendlyName = ModuleDefinitionName; objModuleDefinition.ModuleDefID = objModuleDefinitions.AddModuleDefinition(objModuleDefinition); } return objModuleDefinition.ModuleDefID; }
private int AddNewModule(TabInfo tab, string title, int desktopModuleId, string paneName, int permissionType, string align) { TabPermissionCollection objTabPermissions = tab.TabPermissions; var objPermissionController = new PermissionController(); var objModules = new ModuleController(); int j; var mdc = new ModuleDefinitionController(); 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 objModules.AddModule(objModule); } return -1; }
/// <summary> /// RemoveCoreModule removes a Core Module from the system /// </summary> /// <remarks> /// </remarks> /// <param name="DesktopModuleName">The Friendly Name of the Module to Remove</param> /// <param name="ParentTabName">The Name of the parent Tab/Page for this module</param> /// <param name="TabName">The Name to tab that contains the Module</param> /// <param name="TabRemove">A flag to determine whether to remove the Tab if it has no /// other modules</param> private static void RemoveCoreModule(string DesktopModuleName, string ParentTabName, string TabName, bool TabRemove) { TabController objTabs = new TabController(); ModuleController objModules = new ModuleController(); int intIndex; int intModuleDefId = 0; int intDesktopModuleId; //Find and remove the Module from the Tab switch (ParentTabName) { case "Host": //TODO - when we have a need to remove a Host Module break; case "Admin": PortalController objPortals = new PortalController(); ArrayList arrPortals = objPortals.GetPortals(); //Iterate through the Portals to remove the Module from the Tab for (int intPortal = 0; intPortal < arrPortals.Count; intPortal++) { PortalInfo objPortal = (PortalInfo)(arrPortals[intPortal]); int ParentId = objPortal.AdminTabId; TabInfo objTab = objTabs.GetTabByName(TabName, objPortal.PortalID, ParentId); int intCount = 0; //Get the Modules on the Tab foreach (KeyValuePair<int, ModuleInfo> kvp in objModules.GetTabModules(objTab.TabID)) { ModuleInfo objModule = kvp.Value; if (objModule.FriendlyName == DesktopModuleName) { //Delete the Module from the Modules list objModules.DeleteModule(objModule.ModuleID); intModuleDefId = objModule.ModuleDefID; } else { intCount += 1; } } //If Tab has no modules optionally remove tab if (intCount == 0 & TabRemove) { objTabs.DeleteTab(objTab.TabID, objTab.PortalID); } } break; } //Delete all the Module Controls for this Definition ModuleControlController objModuleControls = new ModuleControlController(); ArrayList arrModuleControls = objModuleControls.GetModuleControls(intModuleDefId); for (intIndex = 0; intIndex <= arrModuleControls.Count - 1; intIndex++) { ModuleControlInfo objModuleControl = (ModuleControlInfo)arrModuleControls[intIndex]; objModuleControls.DeleteModuleControl(objModuleControl.ModuleControlID); } //Get the Module Definition ModuleDefinitionController objModuleDefinitions = new ModuleDefinitionController(); ModuleDefinitionInfo objModuleDefinition; objModuleDefinition = objModuleDefinitions.GetModuleDefinition(intModuleDefId); intDesktopModuleId = objModuleDefinition.DesktopModuleID; //Delete the Module Definition objModuleDefinitions.DeleteModuleDefinition(intModuleDefId); //Delete the Desktop Module Control DesktopModuleController objDesktopModules = new DesktopModuleController(); objDesktopModules.DeleteDesktopModule(intDesktopModuleId); }
protected void cmdDeleteDefinition_Click(object sender, EventArgs e) { var objModuleDefinitions = new ModuleDefinitionController(); objModuleDefinitions.DeleteModuleDefinition(ModuleDefinitionID); //Force Definitions list to refresh by rebinding DesktopModule ModuleDefinitionID = Null.NullInteger; _ModuleDefinition = null; _DesktopModule = null; //empty definition form's content definitionsEditor.Items.ForEach(i => { i.Value = null; }); BindDesktopModule(true); }
/// <summary> /// GetModuleDefinition gets the Module Definition Id of a module /// </summary> /// <param name="DesktopModuleName">The Friendly Name of the Module to Add</param> /// <param name="ModuleDefinitionName">The Module Definition Name</param> /// <returns>The Module Definition Id of the Module (-1 if no module definition)</returns> private static int GetModuleDefinition(string DesktopModuleName, string ModuleDefinitionName) { DesktopModuleController objDesktopModules = new DesktopModuleController(); // get desktop module DesktopModuleInfo objDesktopModule = objDesktopModules.GetDesktopModuleByName(DesktopModuleName); if (objDesktopModule == null) { return -1; } ModuleDefinitionController objModuleDefinitions = new ModuleDefinitionController(); // get module definition ModuleDefinitionInfo objModuleDefinition = objModuleDefinitions.GetModuleDefinitionByName(objDesktopModule.DesktopModuleID, ModuleDefinitionName); if (objModuleDefinition == null) { return -1; } return objModuleDefinition.ModuleDefID; }
/// <summary> /// Serializes all portal Tabs /// </summary> /// <param name="xmlTemplate">Reference to XmlDocument context</param> /// <param name="nodeTabs">Node to add the serialized objects</param> /// <param name="objportal">Portal to serialize</param> /// <param name="hRoles">A hastable with all serialized roles</param> /// <remarks> /// Only portal tabs will be exported to the template, Admin tabs are not exported. /// On each tab, all modules will also be exported. /// </remarks> /// <history> /// [VMasanas] 23/09/2004 Created /// </history> public void SerializeTabs( XmlDocument xmlTemplate, XmlNode nodeTabs, PortalInfo objportal, Hashtable hRoles ) { TabController objtabs = new TabController(); //supporting object to build the tab hierarchy Hashtable hTabs = new Hashtable(); XmlSerializer xserTabs = new XmlSerializer( typeof( TabInfo ) ); foreach( TabInfo objtab in objtabs.GetTabs( objportal.PortalID ) ) { //if not an admin tab & not deleted if( objtab.TabOrder < 10000 && ! objtab.IsDeleted ) { StringWriter sw = new StringWriter(); xserTabs.Serialize( sw, objtab ); XmlDocument xmlTab = new XmlDocument(); xmlTab.LoadXml( sw.GetStringBuilder().ToString() ); XmlNode nodeTab = xmlTab.SelectSingleNode( "tab" ); nodeTab.Attributes.Remove( nodeTab.Attributes["xmlns:xsd"] ); nodeTab.Attributes.Remove( nodeTab.Attributes["xmlns:xsi"] ); XmlNode newnode; if( objtab.TabID == objportal.SplashTabId ) { newnode = xmlTab.CreateElement( "tabtype" ); newnode.InnerXml = "splashtab"; nodeTab.AppendChild( newnode ); } else if( objtab.TabID == objportal.HomeTabId ) { newnode = xmlTab.CreateElement( "tabtype" ); newnode.InnerXml = "hometab"; nodeTab.AppendChild( newnode ); } else if( objtab.TabID == objportal.UserTabId ) { newnode = xmlTab.CreateElement( "tabtype" ); newnode.InnerXml = "usertab"; nodeTab.AppendChild( newnode ); } else if( objtab.TabID == objportal.LoginTabId ) { newnode = xmlTab.CreateElement( "tabtype" ); newnode.InnerXml = "logintab"; nodeTab.AppendChild( newnode ); } if( ! Null.IsNull( objtab.ParentId ) ) { newnode = xmlTab.CreateElement( "parent" ); newnode.InnerXml = Server.HtmlEncode( hTabs[objtab.ParentId].ToString() ); nodeTab.AppendChild( newnode ); // save tab as: ParentTabName/CurrentTabName hTabs.Add( objtab.TabID, hTabs[objtab.ParentId] + "/" + objtab.TabName ); } else { // save tab as: CurrentTabName hTabs.Add( objtab.TabID, objtab.TabName ); } // Serialize modules XmlNode nodePanes; nodePanes = nodeTab.AppendChild( xmlTab.CreateElement( "panes" ) ); ModuleController objmodules = new ModuleController(); DesktopModuleController objDesktopModules = new DesktopModuleController(); ModuleDefinitionController objModuleDefController = new ModuleDefinitionController(); XmlSerializer xserModules = new XmlSerializer( typeof( ModuleInfo ) ); Dictionary<int, ModuleInfo> dict = objmodules.GetTabModules(objtab.TabID); foreach( KeyValuePair<int, ModuleInfo> pair in dict ) { ModuleInfo objmodule = pair.Value; if (!objmodule.IsDeleted) { sw = new StringWriter(); xserModules.Serialize(sw, objmodule); XmlDocument xmlModule = new XmlDocument(); xmlModule.LoadXml(sw.GetStringBuilder().ToString()); XmlNode nodeModule = xmlModule.SelectSingleNode("module"); nodeModule.Attributes.Remove(nodeModule.Attributes["xmlns:xsd"]); nodeModule.Attributes.Remove(nodeModule.Attributes["xmlns:xsi"]); if (nodePanes.SelectSingleNode("descendant::pane[name='" + objmodule.PaneName + "']") == null) { // new pane found XmlNode nodePane = xmlModule.CreateElement("pane"); XmlNode nodeName = nodePane.AppendChild(xmlModule.CreateElement("name")); nodeName.InnerText = objmodule.PaneName; nodePane.AppendChild(xmlModule.CreateElement("modules")); nodePanes.AppendChild(xmlTab.ImportNode(nodePane, true)); } XmlNode nodeModules = nodePanes.SelectSingleNode("descendant::pane[name='" + objmodule.PaneName + "']/modules"); newnode = xmlModule.CreateElement("definition"); ModuleDefinitionInfo objModuleDef = objModuleDefController.GetModuleDefinition(objmodule.ModuleDefID); newnode.InnerText = objDesktopModules.GetDesktopModule(objModuleDef.DesktopModuleID).ModuleName; nodeModule.AppendChild(newnode); //Add Module Definition Info XmlNode nodeDefinition = xmlModule.CreateElement("moduledefinition"); nodeDefinition.InnerText = objModuleDef.FriendlyName; nodeModule.AppendChild(nodeDefinition); if (chkContent.Checked) { AddContent(nodeModule, objmodule); } nodeModules.AppendChild(xmlTab.ImportNode(nodeModule, true)); } } nodeTabs.AppendChild( xmlTemplate.ImportNode( nodeTab, true ) ); } } }
/// <remarks> /// Loads the cboSource control list with locations of controls. /// </remarks> private void InstallManifest( string strManifest ) { XmlDocument doc = new XmlDocument(); try { doc.Load( strManifest ); XmlNode dnnRoot = doc.DocumentElement; foreach( XmlElement FolderElement in dnnRoot.SelectNodes( "folders/folder" ) ) { DesktopModuleController objDesktopModules = new DesktopModuleController(); DesktopModuleInfo objDesktopModule = new DesktopModuleInfo(); objDesktopModule.DesktopModuleID = Null.NullInteger; objDesktopModule.ModuleName = XmlUtils.GetNodeValue( FolderElement, "modulename", "" ); objDesktopModule.FolderName = XmlUtils.GetNodeValue( FolderElement, "foldername", "" ); objDesktopModule.FriendlyName = XmlUtils.GetNodeValue( FolderElement, "friendlyname", "" ); if( objDesktopModule.FolderName == "" ) { objDesktopModule.FolderName = objDesktopModule.ModuleName; } objDesktopModule.Description = XmlUtils.GetNodeValue( FolderElement, "description", "" ); objDesktopModule.IsPremium = false; objDesktopModule.IsAdmin = false; objDesktopModule.Version = XmlUtils.GetNodeValue( FolderElement, "version", "" ); objDesktopModule.BusinessControllerClass = XmlUtils.GetNodeValue( FolderElement, "businesscontrollerclass", "" ); objDesktopModule.CompatibleVersions = XmlUtils.GetNodeValue( FolderElement, "compatibleversions", "" ); objDesktopModule.DesktopModuleID = objDesktopModules.AddDesktopModule( objDesktopModule ); foreach( XmlElement ModuleElement in FolderElement.SelectNodes( "modules/module" ) ) { ModuleDefinitionController objModuleDefinitions = new ModuleDefinitionController(); ModuleDefinitionInfo objModuleDefinition = new ModuleDefinitionInfo(); objModuleDefinition.ModuleDefID = Null.NullInteger; objModuleDefinition.DesktopModuleID = objDesktopModule.DesktopModuleID; objModuleDefinition.FriendlyName = XmlUtils.GetNodeValue( ModuleElement, "friendlyname", "" ); objModuleDefinition.DefaultCacheTime = XmlUtils.GetNodeValueInt( ModuleElement, "cachetime", 0 ); objModuleDefinition.ModuleDefID = objModuleDefinitions.AddModuleDefinition( objModuleDefinition ); foreach( XmlElement ControlElement in ModuleElement.SelectNodes( "controls/control" ) ) { ModuleControlController objModuleControls = new ModuleControlController(); ModuleControlInfo objModuleControl = new ModuleControlInfo(); objModuleControl.ModuleControlID = Null.NullInteger; objModuleControl.ModuleDefID = objModuleDefinition.ModuleDefID; objModuleControl.ControlKey = XmlUtils.GetNodeValue( ControlElement, "key", "" ); objModuleControl.ControlSrc = XmlUtils.GetNodeValue( ControlElement, "src", "" ); objModuleControl.ControlTitle = XmlUtils.GetNodeValue( ControlElement, "title", "" ); switch( XmlUtils.GetNodeValue( ControlElement, "type", "" ) ) { case "Anonymous": objModuleControl.ControlType = SecurityAccessLevel.Anonymous; break; case "View": objModuleControl.ControlType = SecurityAccessLevel.View; break; case "Edit": objModuleControl.ControlType = SecurityAccessLevel.Edit; break; case "Admin": objModuleControl.ControlType = SecurityAccessLevel.Admin; break; case "Host": objModuleControl.ControlType = SecurityAccessLevel.Host; break; } objModuleControl.HelpURL = XmlUtils.GetNodeValue( ControlElement, "helpurl", "" ); objModuleControl.IconFile = XmlUtils.GetNodeValue( ControlElement, "iconfile", "" ); objModuleControl.ViewOrder = XmlUtils.GetNodeValueInt( ControlElement, "vieworder", 0 ); objModuleControls.AddModuleControl( objModuleControl ); } } // update interfaces UpdateModuleInterfaces( objDesktopModule.BusinessControllerClass ); } Response.Redirect( Globals.NavigateURL(), true ); } catch { // can not open manifest UI.Skins.Skin.AddModuleMessage( this, Localization.GetString( "InstallManifest.ErrorMessage", this.LocalResourceFile ), ModuleMessageType.RedError ); } }