/// <summary> /// Permanently removes all deleted tabs and modules /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// <remarks> /// Parent tabs will not be deleted. To delete a parent tab all child tabs need to be deleted before. /// </remarks> /// <history> /// [VMasanas] 18/08/2004 Created /// </history> protected void OnEmptyBinClick(Object sender, EventArgs e) { var objEventLog = new EventLogController(); foreach (ListItem item in lstModules.Items) { var objModules = new ModuleController(); var values = item.Value.Split('-'); var tabId = int.Parse(values[0]); var moduleId = int.Parse(values[1]); //delete module var objModule = objModules.GetModule(moduleId, tabId, false); if (objModule != null) { //hard-delete Tab Module Instance objModules.DeleteTabModule(tabId, moduleId, false); objEventLog.AddLog(objModule, PortalSettings, UserId, "", EventLogController.EventLogType.MODULE_DELETED); } } foreach (ListItem item in lstTabs.Items) { var intTabId = int.Parse(item.Value); var objTabs = new TabController(); var objTab = objTabs.GetTab(intTabId, PortalId, false); if (objTab != null) { DeleteTab(objTab, true); } } BindData(); }
public string UpgradeModule(string Version) { try { switch (Version) { case "06.02.00": var portalController = new PortalController(); var moduleController = new ModuleController(); var tabController = new TabController(); var moduleDefinition = ModuleDefinitionController.GetModuleDefinitionByFriendlyName("Message Center"); if (moduleDefinition != null) { var portals = portalController.GetPortals(); foreach (PortalInfo portal in portals) { if (portal.UserTabId > Null.NullInteger) { //Find TabInfo var tab = tabController.GetTab(portal.UserTabId, portal.PortalID, true); if (tab != null) { foreach (var module in moduleController.GetTabModules(portal.UserTabId).Values) { if (module.DesktopModule.FriendlyName == "Messaging") { //Delete the Module from the Modules list moduleController.DeleteTabModule(module.TabID, module.ModuleID, false); //Add new module to the page Upgrade.AddModuleToPage(tab, moduleDefinition.ModuleDefID, "Message Center", "", true); break; } } } } } } break; } return "Success"; } catch (Exception exc) { Logger.Error(exc); return "Failed"; } }
private static void AddHostPage(int parentId, string tabPath, string moduleFriendlyName, string tabName, string tabDescription, string smallIcon, string largeIcon, bool isVisible = true) { var tabController = new TabController(); var moduleController = new ModuleController(); TabInfo hostTab; // Get the module definition var moduleDef = ModuleDefinitionController.GetModuleDefinitionByFriendlyName(moduleFriendlyName); // Add pages var tabId = TabController.GetTabByTabPath(Null.NullInteger, tabPath, Null.NullString); if (tabId == Null.NullInteger) { //Add host page hostTab = Upgrade.AddHostPage(tabName, tabDescription, smallIcon, largeIcon, isVisible); hostTab.ParentId = parentId; tabController.UpdateTab(hostTab); //Add module to page Upgrade.AddModuleToPage(hostTab, moduleDef.ModuleDefID, tabName, largeIcon, true); } else { hostTab = tabController.GetTab(tabId, Null.NullInteger, false); foreach ( var kvp in moduleController.GetTabModules(tabId) .Where(kvp => kvp.Value.DesktopModule.ModuleName == moduleFriendlyName)) { // Remove previous module instance moduleController.DeleteTabModule(tabId, kvp.Value.ModuleID, false); break; } //Add module to page Upgrade.AddModuleToPage(hostTab, moduleDef.ModuleDefID, tabName, largeIcon, true); } }
public void AddHostPage(int parentId, string tabPath, string moduleFriendlyName, string tabName, string tabDescription, string smallIcon, string largeIcon) { var tabController = new TabController(); var moduleController = new ModuleController(); TabInfo hostTab; //Get web servers module ModuleDefinitionInfo moduleDef = ModuleDefinitionController.GetModuleDefinitionByFriendlyName(moduleFriendlyName); //Add Pages under Advanced Features Tab int tabId = TabController.GetTabByTabPath(Null.NullInteger, tabPath, Null.NullString); if (tabId == Null.NullInteger) { //Add host page hostTab = Upgrade.AddHostPage(tabName, tabDescription, smallIcon, largeIcon, true); hostTab.ParentId = parentId; tabController.UpdateTab(hostTab); //Add module to page Upgrade.AddModuleToPage(hostTab, moduleDef.ModuleDefID, tabName, largeIcon, true); } else { hostTab = tabController.GetTab(tabId, Null.NullInteger, false); foreach (var kvp in moduleController.GetTabModules(tabId)) { if (kvp.Value.DesktopModule.ModuleName == "ProfessionalPreview") { //Preview module so hard delete moduleController.DeleteTabModule(tabId, kvp.Value.ModuleID, false); break; } } //Add module to page Upgrade.AddModuleToPage(hostTab, moduleDef.ModuleDefID, tabName, largeIcon, true); } }
private void RemoveProVersion() { //update the tab module to use CE version var tabController = new TabController(); var moduleController = new ModuleController(); TabInfo newTab; var portalController = new PortalController(); foreach (PortalInfo portal in portalController.GetPortals()) { //Update Site Redirection management page var tabId = TabController.GetTabByTabPath(portal.PortalID, "//Admin//DevicePreviewManagement", Null.NullString); if (tabId == Null.NullInteger) { newTab = Upgrade.AddAdminPage(portal, "Device Preview Management", "Device Preview Management.", "~/desktopmodules/DevicePreviewManagement/images/DevicePreview_Standard_16X16.png", "~/desktopmodules/DevicePreviewManagement/images/DevicePreview_Standard_32X32.png", true); } else { newTab = tabController.GetTab(tabId, portal.PortalID, true); newTab.IconFile = "~/desktopmodules/DevicePreviewManagement/images/DevicePreview_Standard_16X16.png"; newTab.IconFileLarge = "~/desktopmodules/DevicePreviewManagement/images/DevicePreview_Standard_32X32.png"; tabController.UpdateTab(newTab); } //Remove Pro edition module int moduleID = Null.NullInteger; IDictionary<int, ModuleInfo> modules = moduleController.GetTabModules(newTab.TabID); if (modules != null) { foreach (ModuleInfo m in modules.Values) { if (m.DesktopModule.FriendlyName == "Device Preview Management") { moduleID = m.ModuleID; break; } } } if (moduleID != Null.NullInteger) { moduleController.DeleteTabModule(newTab.TabID, moduleID, false); } //Add community edition module ModuleDefinitionInfo mDef = ModuleDefinitionController.GetModuleDefinitionByFriendlyName("DNN Device Preview Management"); if (mDef != null) { Upgrade.AddModuleToPage(newTab, mDef.ModuleDefID, "Device Preview Management", "~/desktopmodules/DevicePreviewManagement/images/DevicePreview_Standard_32X32.png", true); } //reset default devices created flag string defaultPreviewProfiles; var settings = PortalController.GetPortalSettingsDictionary(portal.PortalID); if (settings.TryGetValue("DefPreviewProfiles_Created", out defaultPreviewProfiles) && defaultPreviewProfiles == "DNNCORP.CE") { PortalController.DeletePortalSetting(portal.PortalID, "DefPreviewProfiles_Created"); } } var package = PackageController.Instance.GetExtensionPackage(Null.NullInteger, p => p.Name == "DotNetNuke.Professional.PreviewProfileManagement"); if (package != null) { var installer = new Installer(package, Globals.ApplicationMapPath); installer.UnInstall(true); } }
public void ParseTemplate(int PortalId, string TemplatePath, string TemplateFile, int AdministratorId, PortalTemplateModuleAction mergeTabs, bool IsNewPortal, out LocaleCollection localeCollection) { XmlDocument xmlPortal = new XmlDocument(); IFolderInfo objFolder; XmlNode node; try { xmlPortal.Load(Path.Combine(TemplatePath, TemplateFile)); } catch(Exception ex) { Logger.Error(ex); } node = xmlPortal.SelectSingleNode("//portal/settings"); if (node != null && IsNewPortal) { ParsePortalSettings(node, PortalId); } node = xmlPortal.SelectSingleNode("//locales"); if (node != null && IsNewPortal) { localeCollection = ParseEnabledLocales(node, PortalId); } else { var portalInfo = new PortalController().GetPortal(PortalId); var defaultLocale = LocaleController.Instance.GetLocale(portalInfo.DefaultLanguage); if (defaultLocale == null) { defaultLocale = new Locale { Code = portalInfo.DefaultLanguage, Fallback = Localization.SystemLocale, Text = CultureInfo.CreateSpecificCulture(portalInfo.DefaultLanguage).NativeName }; Localization.SaveLanguage(defaultLocale, false); } localeCollection = new LocaleCollection { { defaultLocale.Code, defaultLocale } }; } node = xmlPortal.SelectSingleNode("//portal/rolegroups"); if (node != null) { ParseRoleGroups(node.CreateNavigator(), PortalId, AdministratorId); } node = xmlPortal.SelectSingleNode("//portal/roles"); if (node != null) { ParseRoles(node.CreateNavigator(), PortalId, AdministratorId); } node = xmlPortal.SelectSingleNode("//portal/portalDesktopModules"); if (node != null) { ParsePortalDesktopModules(node.CreateNavigator(), PortalId); } node = xmlPortal.SelectSingleNode("//portal/folders"); if (node != null) { ParseFolders(node, PortalId); } var defaultFolderMapping = FolderMappingController.Instance.GetDefaultFolderMapping(PortalId); if (FolderManager.Instance.GetFolder(PortalId, "") == null) { objFolder = FolderManager.Instance.AddFolder(defaultFolderMapping, ""); objFolder.IsProtected = true; FolderManager.Instance.UpdateFolder(objFolder); AddFolderPermissions(PortalId, objFolder.FolderID); } if (FolderManager.Instance.GetFolder(PortalId, "Templates/") == null) { objFolder = FolderManager.Instance.AddFolder(defaultFolderMapping, "Templates/"); objFolder.IsProtected = true; FolderManager.Instance.UpdateFolder(objFolder); //AddFolderPermissions(PortalId, objFolder.FolderID); } // force creation of users folder if not present on template if (FolderManager.Instance.GetFolder(PortalId, "Users/") == null) { objFolder = FolderManager.Instance.AddFolder(defaultFolderMapping, "Users/"); objFolder.IsProtected = true; FolderManager.Instance.UpdateFolder(objFolder); //AddFolderPermissions(PortalId, objFolder.FolderID); } if (mergeTabs == PortalTemplateModuleAction.Replace) { TabController objTabs = new TabController(); TabInfo objTab; foreach (KeyValuePair<int, TabInfo> tabPair in objTabs.GetTabsByPortal(PortalId)) { objTab = tabPair.Value; objTab.TabName = objTab.TabName + "_old"; objTab.TabPath = Globals.GenerateTabPath(objTab.ParentId, objTab.TabName); objTab.IsDeleted = true; objTabs.UpdateTab(objTab); ModuleController objModules = new ModuleController(); ModuleInfo objModule; foreach (KeyValuePair<int, ModuleInfo> modulePair in objModules.GetTabModules(objTab.TabID)) { objModule = modulePair.Value; objModules.DeleteTabModule(objModule.TabID, objModule.ModuleID, false); } } } node = xmlPortal.SelectSingleNode("//portal/tabs"); if (node != null) { string version = xmlPortal.DocumentElement.GetAttribute("version"); if (version != "5.0") { XmlDocument xmlAdmin = new XmlDocument(); try { string path = Path.Combine(TemplatePath, "admin.template"); if(!File.Exists(path)) { //if the template is a merged copy of a localized templte the //admin.template may be one director up path = Path.Combine(TemplatePath, "..\admin.template"); } xmlAdmin.Load(path); XmlNode adminNode = xmlAdmin.SelectSingleNode("//portal/tabs"); foreach (XmlNode adminTabNode in adminNode.ChildNodes) { node.AppendChild(xmlPortal.ImportNode(adminTabNode, true)); } } catch (Exception ex) { Logger.Error(ex); } } ParseTabs(node, PortalId, false, mergeTabs, IsNewPortal); } }
private bool SoftDeleteTabInternal(TabInfo tabToDelete, PortalSettings portalSettings) { bool deleted = true; if (!IsSpecialTab(tabToDelete.TabID, portalSettings)) { if (SoftDeleteChildTabs(tabToDelete.TabID, portalSettings)) { tabToDelete.IsDeleted = true; UpdateTab(tabToDelete); var moduleCtrl = new ModuleController(); foreach (ModuleInfo m in moduleCtrl.GetTabModules(tabToDelete.TabID).Values) { moduleCtrl.DeleteTabModule(m.TabID, m.ModuleID, true); } var eventLogController = new EventLogController(); eventLogController.AddLog(tabToDelete, portalSettings, portalSettings.UserId, "", EventLogController.EventLogType.TAB_SENT_TO_RECYCLE_BIN); } else { deleted = false; } } else { deleted = false; } return deleted; }
private void HardDeleteTabInternal(int tabId) { //Delete all tabModule Instances var moduleController = new ModuleController(); foreach (ModuleInfo m in moduleController.GetTabModules(tabId).Values) { moduleController.DeleteTabModule(m.TabID, m.ModuleID, false); } //Delete Tab Provider.DeleteTab(tabId); //Log deletion var eventLog = new EventLogController(); eventLog.AddLog("TabID", tabId.ToString(), PortalController.GetCurrentPortalSettings(), UserController.GetCurrentUserInfo().UserID, EventLogController.EventLogType.TAB_DELETED); }
private void Delete(ModuleAction Command) { var moduleController = new ModuleController(); var module = moduleController.GetModule(int.Parse(Command.CommandArgument), ModuleContext.TabId, true); //Check if this is the owner instance of a shared module. var user = UserController.GetCurrentUserInfo(); var eventLogController = new EventLogController(); if (!module.IsShared) { foreach(ModuleInfo instance in moduleController.GetModuleTabs(module.ModuleID)) { if(instance.IsShared) { //HARD Delete Shared Instance moduleController.DeleteTabModule(instance.TabID, instance.ModuleID, false); eventLogController.AddLog(instance, PortalSettings, user.UserID, "", EventLogController.EventLogType.MODULE_DELETED); } } } moduleController.DeleteTabModule(ModuleContext.TabId, int.Parse(Command.CommandArgument), true); eventLogController.AddLog(module, PortalSettings, user.UserID, "", EventLogController.EventLogType.MODULE_SENT_TO_RECYCLE_BIN); //Redirect to the same page to pick up changes Response.Redirect(Request.RawUrl, true); }
private void DeleteModule(ModuleInfo module) { var eventLogController = new EventLogController(); var moduleController = new ModuleController(); //hard-delete Tab Module Instance moduleController.DeleteTabModule(module.TabID, module.ModuleID, false); eventLogController.AddLog(module, PortalSettings, UserId, "", EventLogController.EventLogType.MODULE_DELETED); }
private static int RemoveModule(string desktopModuleName, string tabName, int parentId, bool removeTab) { DnnInstallLogger.InstallLogInfo(Localization.Localization.GetString("LogStart", Localization.Localization.GlobalResourceFile) + "RemoveModule:" + desktopModuleName); var tabController = new TabController(); var moduleController = new ModuleController(); TabInfo tab = tabController.GetTabByName(tabName, Null.NullInteger, parentId); int moduleDefId = 0; int count = 0; //Get the Modules on the Tab if (tab != null) { foreach (KeyValuePair<int, ModuleInfo> kvp in moduleController.GetTabModules(tab.TabID)) { var module = kvp.Value; if (module.DesktopModule.FriendlyName == desktopModuleName) { //Delete the Module from the Modules list moduleController.DeleteTabModule(module.TabID, module.ModuleID, false); moduleDefId = module.ModuleDefID; } else { count += 1; } } //If Tab has no modules optionally remove tab if (count == 0 && removeTab) { tabController.DeleteTab(tab.TabID, tab.PortalID); } } return moduleDefId; }
/// <summary> /// Deletes a module /// </summary> /// <param name="intModuleId">ModuleId of the module to be deleted</param> /// <remarks> /// Adds a log entry for the action to the EvenLog /// </remarks> /// <history> /// [VMasanas] 18/08/2004 Created /// </history> private void DeleteModule(int intModuleId) { var objEventLog = new EventLogController(); //delete module var objModules = new ModuleController(); var objModule = objModules.GetModule(intModuleId, Null.NullInteger, false); if (objModule != null) { //hard-delete Tab Module INstance objModules.DeleteTabModule(objModule.TabID, objModule.ModuleID, false); objEventLog.AddLog(objModule, PortalSettings, UserId, "", EventLogController.EventLogType.MODULE_DELETED); } }
/// <summary> /// cmdDelete_Click runs when the Delete LinkButton is clicked. /// It deletes the current portal form the Database. It can only run in Host /// (SuperUser) mode /// </summary> /// <history> /// [cnurse] 10/18/2004 documented /// </history> protected void cmdDelete_Click( Object sender, EventArgs e ) { try { ModuleController objModules = new ModuleController(); objModules.DeleteTabModule( TabId, moduleId ); Response.Redirect( Globals.NavigateURL(), true ); } catch( Exception exc ) //Module failed to load { Exceptions.ProcessModuleLoadException( this, exc ); } }
private void RemoveProVersion() { //update the tab module to use CE version var tabController = new TabController(); var moduleController = new ModuleController(); TabInfo newTab; var portalController = new PortalController(); foreach (PortalInfo portal in portalController.GetPortals()) { //Update Site Redirection management page var tabId = TabController.GetTabByTabPath(portal.PortalID, "//Admin//SiteRedirectionManagement", Null.NullString); if(tabId == Null.NullInteger) { newTab = Upgrade.AddAdminPage(portal, "Site Redirection Management", "Site Redirection Management.", "~/desktopmodules/MobileManagement/images/MobileManagement_Standard_16x16.png", "~/desktopmodules/MobileManagement/images/MobileManagement_Standard_32x32.png", true); } else { newTab = tabController.GetTab(tabId, portal.PortalID, true); newTab.IconFile = "~/desktopmodules/MobileManagement/images/MobileManagement_Standard_16x16.png"; newTab.IconFileLarge = "~/desktopmodules/MobileManagement/images/MobileManagement_Standard_32x32.png"; tabController.UpdateTab(newTab); } //Remove Pro edition module int moduleID = Null.NullInteger; IDictionary<int, ModuleInfo> modules = moduleController.GetTabModules(newTab.TabID); if (modules != null) { foreach (ModuleInfo m in modules.Values) { if (m.DesktopModule.FriendlyName == "Site Redirection Management") { moduleID = m.ModuleID; break; } } } if (moduleID != Null.NullInteger) { moduleController.DeleteTabModule(newTab.TabID, moduleID, false); } //Add community edition module ModuleDefinitionInfo mDef = ModuleDefinitionController.GetModuleDefinitionByFriendlyName("DNN Site Redirection Management"); if (mDef != null) { Upgrade.AddModuleToPage(newTab, mDef.ModuleDefID, "Site Redirection Management", "~/desktopmodules/MobileManagement/images/MobileManagement_Standard_32x32.png", true); } } var package = PackageController.GetPackageByName("DotNetNuke.Professional.MobileManagement"); if(package != null) { var installer = new Installer(package, Globals.ApplicationMapPath); installer.UnInstall(true); } }
/// <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 ); } } } } } } } }
/// <summary> /// Processess a template file for the new portal. This method will be called twice: for the portal template and for the admin template /// </summary> /// <param name="PortalId">PortalId of the new portal</param> /// <param name="TemplatePath">Path for the folder where templates are stored</param> /// <param name="TemplateFile">Template file to process</param> /// <param name="AdministratorId">UserId for the portal administrator. This is used to assign roles to this user</param> /// <param name="mergeTabs">Flag to determine whether Module content is merged.</param> /// <param name="IsNewPortal">Flag to determine is the template is applied to an existing portal or a new one.</param> /// <remarks> /// The roles and settings nodes will only be processed on the portal template file. /// </remarks> /// <history> /// [VMasanas] 27/08/2004 Created /// </history> public void ParseTemplate( int PortalId, string TemplatePath, string TemplateFile, int AdministratorId, PortalTemplateModuleAction mergeTabs, bool IsNewPortal ) { XmlDocument xmlDoc = new XmlDocument(); XmlNode node = null; int AdministratorRoleId = -1; int RegisteredRoleId = -1; int SubscriberRoleId = -1; RoleController objrole = new RoleController(); bool isAdminTemplate = false; isAdminTemplate = ( TemplateFile == "admin.template" ); // open the XML file try { xmlDoc.Load( TemplatePath + TemplateFile ); } catch // error { // } // settings, roles, folders and files can only be specified in portal templates, will be ignored on the admin template if( !isAdminTemplate ) { // parse roles if available node = xmlDoc.SelectSingleNode( "//portal/roles" ); if( node != null ) { ParseRoles( node, PortalId, AdministratorId, ref AdministratorRoleId, ref RegisteredRoleId, ref SubscriberRoleId ); } // create required roles if not already created if( AdministratorRoleId == -1 ) { AdministratorRoleId = CreateRole( PortalId, "Administrators", "Portal Administrators", 0F, 0, "M", 0F, 0, "N", false, false ); } if( RegisteredRoleId == -1 ) { RegisteredRoleId = CreateRole( PortalId, "Registered Users", "Registered Users", 0F, 0, "M", 0F, 0, "N", false, true ); } if( SubscriberRoleId == -1 ) { SubscriberRoleId = CreateRole( PortalId, "Subscribers", "A public role for portal subscriptions", 0F, 0, "M", 0F, 0, "N", true, true ); } objrole.AddUserRole( PortalId, AdministratorId, AdministratorRoleId, Null.NullDate, Null.NullDate ); objrole.AddUserRole( PortalId, AdministratorId, RegisteredRoleId, Null.NullDate, Null.NullDate ); objrole.AddUserRole( PortalId, AdministratorId, SubscriberRoleId, Null.NullDate, Null.NullDate ); // parse portal folders node = xmlDoc.SelectSingleNode( "//portal/folders" ); if( node != null ) { ParseFolders( node, PortalId ); } // force creation of root folder if not present on template FolderController objController = new FolderController(); if( objController.GetFolder( PortalId, "" ) == null ) { int folderid = objController.AddFolder( PortalId, "", (int)FolderController.StorageLocationTypes.InsecureFileSystem, true, false ); PermissionController objPermissionController = new PermissionController(); ArrayList arr = objPermissionController.GetPermissionByCodeAndKey( "SYSTEM_FOLDER", "" ); foreach( PermissionInfo objpermission in arr ) { FileSystemUtils.SetFolderPermission( PortalId, folderid, objpermission.PermissionID, AdministratorRoleId, "" ); if( objpermission.PermissionKey == "READ" ) { // add READ permissions to the All Users Role FileSystemUtils.SetFolderPermission( PortalId, folderid, objpermission.PermissionID, int.Parse( Globals.glbRoleAllUsers ), "" ); } } } // parse portal settings if available only for new portals node = xmlDoc.SelectSingleNode( "//portal/settings" ); if( node != null & IsNewPortal ) { ParsePortalSettings( node, PortalId ); } // update portal setup PortalInfo objportal = null; objportal = GetPortal( PortalId ); UpdatePortalSetup( PortalId, AdministratorId, AdministratorRoleId, RegisteredRoleId, objportal.SplashTabId, objportal.HomeTabId, objportal.LoginTabId, objportal.UserTabId, objportal.AdminTabId ); //Remove Exising Tabs if doing a "Replace" if( mergeTabs == PortalTemplateModuleAction.Replace ) { TabController objTabs = new TabController(); TabInfo objTab = null; foreach( KeyValuePair<int, TabInfo> tabPair in objTabs.GetTabsByPortal( PortalId ) ) { objTab = tabPair.Value; if( !objTab.IsAdminTab ) { //soft delete Tab objTab.TabName = objTab.TabName + "_old"; objTab.IsDeleted = true; objTabs.UpdateTab( objTab ); //Delete all Modules ModuleController objModules = new ModuleController(); ModuleInfo objModule = null; foreach( KeyValuePair<int, ModuleInfo> modulePair in objModules.GetTabModules( objTab.TabID ) ) { objModule = modulePair.Value; objModules.DeleteTabModule( objModule.TabID, objModule.ModuleID ); } } } } } // parse portal tabs node = xmlDoc.SelectSingleNode( "//portal/tabs" ); if( node != null ) { ParseTabs( node, PortalId, isAdminTemplate, mergeTabs, IsNewPortal ); } }
private void Delete( ModuleAction Command ) { ModuleController objModules = new ModuleController(); ModuleInfo objModule = objModules.GetModule(int.Parse(Command.CommandArgument), PortalModule.TabId, false); if (objModule != null) { objModules.DeleteTabModule(PortalModule.TabId, int.Parse(Command.CommandArgument)); UserInfo m_UserInfo = UserController.GetCurrentUserInfo(); EventLogController objEventLog = new EventLogController(); objEventLog.AddLog(objModule, this.PortalSettings, m_UserInfo.UserID, "", EventLogController.EventLogType.MODULE_SENT_TO_RECYCLE_BIN); } // Redirect to the same page to pick up changes Response.Redirect(Request.RawUrl, true); }
private static void ReplaceMessagingModule() { DnnInstallLogger.InstallLogInfo(Localization.Localization.GetString("LogStart", Localization.Localization.GlobalResourceFile) + "ReplaceMessagingModule"); var portalController = new PortalController(); var moduleController = new ModuleController(); var tabController = new TabController(); var moduleDefinition = ModuleDefinitionController.GetModuleDefinitionByFriendlyName("Message Center"); if (moduleDefinition == null) return; var portals = portalController.GetPortals(); foreach (PortalInfo portal in portals) { if (portal.UserTabId > Null.NullInteger) { //Find TabInfo TabInfo tab = tabController.GetTab(portal.UserTabId, portal.PortalID, true); if (tab != null) { //Add new module to the page AddModuleToPage(tab, moduleDefinition.ModuleDefID, "Message Center", "", true); } foreach (KeyValuePair<int, ModuleInfo> kvp in moduleController.GetTabModules(portal.UserTabId)) { var module = kvp.Value; if (module.DesktopModule.FriendlyName == "Messaging") { //Delete the Module from the Modules list moduleController.DeleteTabModule(module.TabID, module.ModuleID, false); break; } } } } }
/// ----------------------------------------------------------------------------- /// <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> /// <param name="mergeTabs">Tabs need to merge.</param> /// <param name="hModules">Modules Hashtable.</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 /// [cnurse] 10/02/2007 Moved from PortalController /// </history> /// ----------------------------------------------------------------------------- public static void DeserializePanes(XmlNode nodePanes, int portalId, int tabId, PortalTemplateModuleAction mergeTabs, Hashtable hModules) { var moduleController = new ModuleController(); Dictionary<int, ModuleInfo> dicModules = moduleController.GetTabModules(tabId); //If Mode is Replace remove all the modules already on this Tab if (mergeTabs == PortalTemplateModuleAction.Replace) { foreach (KeyValuePair<int, ModuleInfo> kvp in dicModules.Where(kvp => !kvp.Value.AllTabs)) { moduleController.DeleteTabModule(tabId, kvp.Value.ModuleID, false); } } //iterate through the panes foreach (XmlNode nodePane in nodePanes.ChildNodes) { //iterate through the modules if (nodePane.SelectSingleNode("modules") != null) { XmlNode selectSingleNode = nodePane.SelectSingleNode("modules"); if (selectSingleNode != null) { foreach (XmlNode nodeModule in selectSingleNode) { ModuleController.DeserializeModule(nodeModule, nodePane, portalId, tabId, mergeTabs, hModules); } } } } }
protected void CmdDeleteModuleClick(object sender, EventArgs e) { var moduleId = Convert.ToInt32(((ImageButton)sender).CommandArgument); var tabId = Convert.ToInt32(ctlPages.SelectedNode.Value); var moduleController = new ModuleController(); moduleController.DeleteTabModule(tabId, moduleId, true); moduleController.ClearCache(tabId); grdModules.Rebind(); }
void DeleteMe() { var m = new ModuleController(); m.DeleteTabModule(ModuleContext.TabId, ModuleContext.ModuleId, false); m.DeleteModule(ModuleContext.ModuleId); Response.Redirect(Globals.NavigateURL(ModuleContext.TabId), true); }