/// ----------------------------------------------------------------------------- /// <summary> /// Wizard_NextButtonClickruns when the next Button is clicked. It provides /// a mechanism for cancelling the page change if certain conditions aren't met. /// </summary> /// <remarks> /// </remarks> /// ----------------------------------------------------------------------------- protected void OnWizardNextClick(object sender, WizardNavigationEventArgs e) { switch (e.CurrentStepIndex) { case 1: //Templates //Before we leave Page 1, the user must have selected a Portal if (lstTemplate.SelectedIndex == -1) { if (chkTemplate.Checked) { e.Cancel = true; DotNetNuke.UI.Skins.Skin.AddModuleMessage(this, Localization.GetString("TemplateRequired", LocalResourceFile), ModuleMessage.ModuleMessageType.RedError); } } else { //Check Template Validity before proceeding string schemaFilename = Server.MapPath("DesktopModules/Admin/Portals/portal.template.xsd"); var template = LoadPortalTemplateInfoForSelectedItem(); var xval = new PortalTemplateValidator(); if (!xval.Validate(template.TemplateFilePath, schemaFilename)) { var message = string.Format(Localization.GetString("InvalidTemplate", LocalResourceFile), Path.GetFileName(template.TemplateFilePath)); DotNetNuke.UI.Skins.Skin.AddModuleMessage(this, message, ModuleMessage.ModuleMessageType.RedError); //Cancel Page move if invalid template e.Cancel = true; } } break; } }
/// ----------------------------------------------------------------------------- /// <summary> /// Wizard_NextButtonClickruns when the next Button is clicked. It provides /// a mechanism for cancelling the page change if certain conditions aren't met. /// </summary> /// <remarks> /// </remarks> /// <history> /// [cnurse] 12/04/2006 created /// </history> /// ----------------------------------------------------------------------------- protected void OnWizardNextClick(object sender, WizardNavigationEventArgs e) { string strMessage; switch (e.CurrentStepIndex) { case 1: //Templates //Before we leave Page 1, the user must have selected a Portal if (lstTemplate.SelectedIndex == -1) { if (chkTemplate.Checked) { e.Cancel = true; lblTemplateMessage.Text = Localization.GetString("TemplateRequired", LocalResourceFile); } } else { //Check Template Validity before proceeding string schemaFilename = Server.MapPath("DesktopModules/Admin/Portals/portal.template.xsd"); string xmlFilename = Globals.HostMapPath + lstTemplate.SelectedItem.Text + ".template"; var xval = new PortalTemplateValidator(); if (!xval.Validate(xmlFilename, schemaFilename)) { strMessage = Localization.GetString("InvalidTemplate", LocalResourceFile); lblTemplateMessage.Text = string.Format(strMessage, lstTemplate.SelectedItem.Text + ".template"); //Cancel Page move if invalid template e.Cancel = true; } } break; } }
/// ----------------------------------------------------------------------------- /// <summary> /// cmdUpdate_Click runs when the Update button is clicked /// </summary> /// <remarks> /// </remarks> /// <history> /// [cnurse] 5/10/2004 Updated to reflect design changes for Help, 508 support /// and localisation /// </history> /// ----------------------------------------------------------------------------- private void cmdUpdate_Click(Object sender, EventArgs e) { if (Page.IsValid) { PortalController.PortalTemplateInfo template = LoadPortalTemplateInfoForSelectedItem(); try { bool blnChild; string strPortalAlias; string strChildPath = string.Empty; var closePopUpStr = string.Empty; var objPortalController = new PortalController(); //check template validity var messages = new ArrayList(); string schemaFilename = Server.MapPath(string.Concat(AppRelativeTemplateSourceDirectory, "portal.template.xsd")); string xmlFilename = template.TemplateFilePath; var xval = new PortalTemplateValidator(); if (!xval.Validate(xmlFilename, schemaFilename)) { UI.Skins.Skin.AddModuleMessage(this, "", String.Format(Localization.GetString("InvalidTemplate", LocalResourceFile), Path.GetFileName(template.TemplateFilePath)), ModuleMessage.ModuleMessageType.RedError); messages.AddRange(xval.Errors); lstResults.Visible = true; lstResults.DataSource = messages; lstResults.DataBind(); validationPanel.Visible = true; return; } //Set Portal Name txtPortalAlias.Text = txtPortalAlias.Text.ToLowerInvariant(); txtPortalAlias.Text = txtPortalAlias.Text.Replace("http://", ""); //Validate Portal Name if (!Globals.IsHostTab(PortalSettings.ActiveTab.TabID)) { blnChild = true; strPortalAlias = txtPortalAlias.Text; } else { blnChild = (optType.SelectedValue == "C"); strPortalAlias = blnChild ? PortalController.GetPortalFolder(txtPortalAlias.Text) : txtPortalAlias.Text; } string message = String.Empty; ModuleMessage.ModuleMessageType messageType = ModuleMessage.ModuleMessageType.RedError; if (!PortalAliasController.ValidateAlias(strPortalAlias, blnChild)) { message = Localization.GetString("InvalidName", LocalResourceFile); } //check whether have conflict between tab path and portal alias. var checkTabPath = string.Format("//{0}", strPortalAlias); if (TabController.GetTabByTabPath(PortalSettings.PortalId, checkTabPath, string.Empty) != Null.NullInteger || TabController.GetTabByTabPath(Null.NullInteger, checkTabPath, string.Empty) != Null.NullInteger) { message = Localization.GetString("DuplicateWithTab", LocalResourceFile); } //Validate Password if (txtPassword.Text != txtConfirm.Text) { if (!String.IsNullOrEmpty(message)) { message += "<br/>"; } message += Localization.GetString("InvalidPassword", LocalResourceFile); } string strServerPath = Globals.GetAbsoluteServerPath(Request); //Set Portal Alias for Child Portals if (String.IsNullOrEmpty(message)) { if (blnChild) { strChildPath = strServerPath + strPortalAlias; if (Directory.Exists(strChildPath)) { message = Localization.GetString("ChildExists", LocalResourceFile); } else { if (!Globals.IsHostTab(PortalSettings.ActiveTab.TabID)) { strPortalAlias = Globals.GetDomainName(Request, true) + "/" + strPortalAlias; } else { strPortalAlias = txtPortalAlias.Text; } } } } //Get Home Directory string homeDir = txtHomeDirectory.Text != @"Portals/[PortalID]" ? txtHomeDirectory.Text : ""; //Validate Home Folder if (!string.IsNullOrEmpty(homeDir)) { if (string.IsNullOrEmpty(String.Format("{0}\\{1}\\", Globals.ApplicationMapPath, homeDir).Replace("/", "\\"))) { message = Localization.GetString("InvalidHomeFolder", LocalResourceFile); } if (homeDir.Contains("admin") || homeDir.Contains("DesktopModules") || homeDir.ToLowerInvariant() == "portals/") { message = Localization.GetString("InvalidHomeFolder", LocalResourceFile); } } //Validate Portal Alias if (!string.IsNullOrEmpty(strPortalAlias)) { PortalAliasInfo portalAlias = PortalAliasController.GetPortalAliasLookup(strPortalAlias.ToLower()); if (portalAlias != null) { message = Localization.GetString("DuplicatePortalAlias", LocalResourceFile); } } //Create Portal if (String.IsNullOrEmpty(message)) { //Attempt to create the portal UserInfo adminUser = new UserInfo(); int intPortalId; try { if (useCurrent.Checked) { adminUser = UserInfo; intPortalId = objPortalController.CreatePortal(txtPortalName.Text, adminUser.UserID, txtDescription.Text, txtKeyWords.Text, template, homeDir, strPortalAlias, strServerPath, strChildPath, blnChild); } else { adminUser = new UserInfo { FirstName = txtFirstName.Text, LastName = txtLastName.Text, Username = txtUsername.Text, DisplayName = txtFirstName.Text + " " + txtLastName.Text, Email = txtEmail.Text, IsSuperUser = false, Membership = { Approved = true, Password = txtPassword.Text, PasswordQuestion = txtQuestion.Text, PasswordAnswer = txtAnswer.Text }, Profile = { FirstName = txtFirstName.Text, LastName = txtLastName.Text } }; intPortalId = objPortalController.CreatePortal(txtPortalName.Text, adminUser, txtDescription.Text, txtKeyWords.Text, template, homeDir, strPortalAlias, strServerPath, strChildPath, blnChild); } } catch (Exception ex) { intPortalId = Null.NullInteger; message = ex.Message; } if (intPortalId != -1) { //Create a Portal Settings object for the new Portal PortalInfo objPortal = objPortalController.GetPortal(intPortalId); var newSettings = new PortalSettings { PortalAlias = new PortalAliasInfo { HTTPAlias = strPortalAlias }, PortalId = intPortalId, DefaultLanguage = objPortal.DefaultLanguage }; string webUrl = Globals.AddHTTP(strPortalAlias); try { if (!Globals.IsHostTab(PortalSettings.ActiveTab.TabID)) { message = Mail.SendMail(PortalSettings.Email, txtEmail.Text, PortalSettings.Email + ";" + Host.HostEmail, Localization.GetSystemMessage(newSettings, "EMAIL_PORTAL_SIGNUP_SUBJECT", adminUser), Localization.GetSystemMessage(newSettings, "EMAIL_PORTAL_SIGNUP_BODY", adminUser), "", "", "", "", "", ""); } else { message = Mail.SendMail(Host.HostEmail, txtEmail.Text, Host.HostEmail, Localization.GetSystemMessage(newSettings, "EMAIL_PORTAL_SIGNUP_SUBJECT", adminUser), Localization.GetSystemMessage(newSettings, "EMAIL_PORTAL_SIGNUP_BODY", adminUser), "", "", "", "", "", ""); } } catch (Exception exc) { Logger.Error(exc); closePopUpStr = (PortalSettings.EnablePopUps) ? "onclick=\"return " + UrlUtils.ClosePopUp(true, webUrl, true) + "\"" : ""; message = string.Format(Localization.GetString("UnknownSendMail.Error", LocalResourceFile), webUrl, closePopUpStr); } var objEventLog = new EventLogController(); objEventLog.AddLog(objPortalController.GetPortal(intPortalId), PortalSettings, UserId, "", EventLogController.EventLogType.PORTAL_CREATED); // mark default language as published if content localization is enabled bool ContentLocalizationEnabled = PortalController.GetPortalSettingAsBoolean("ContentLocalizationEnabled", PortalId, false); if (ContentLocalizationEnabled) { LocaleController lc = new LocaleController(); lc.PublishLanguage(intPortalId, objPortal.DefaultLanguage, true); } //Redirect to this new site if (message == Null.NullString) { webUrl = (PortalSettings.EnablePopUps) ? UrlUtils.ClosePopUp(true, webUrl, false) : webUrl; Response.Redirect(webUrl, true); } else { closePopUpStr = (PortalSettings.EnablePopUps) ? "onclick=\"return " + UrlUtils.ClosePopUp(true, webUrl, true) + "\"" : ""; message = string.Format(Localization.GetString("SendMail.Error", LocalResourceFile), message, webUrl, closePopUpStr); messageType = ModuleMessage.ModuleMessageType.YellowWarning; } } } UI.Skins.Skin.AddModuleMessage(this, "", message, messageType); } catch (Exception exc) //Module failed to load { Exceptions.ProcessModuleLoadException(this, exc); } } }
/// <summary> /// cmdUpdate_Click runs when the Update button is clicked /// </summary> /// <history> /// [cnurse] 5/10/2004 Updated to reflect design changes for Help, 508 support /// and localisation /// </history> protected void cmdUpdate_Click(Object sender, EventArgs e) { if (Page.IsValid) { try { bool blnChild; string strMessage = String.Empty; string strPortalAlias; int intCounter; string strServerPath; string strChildPath = String.Empty; PortalController objPortalController = new PortalController(); PortalSecurity objSecurity = new PortalSecurity(); // check template validity ArrayList messages = new ArrayList(); string schemaFilename = Server.MapPath("admin/Portal/portal.template.xsd"); string xmlFilename = Globals.HostMapPath + cboTemplate.SelectedItem.Text + ".template"; PortalTemplateValidator xval = new PortalTemplateValidator(); if (!xval.Validate(xmlFilename, schemaFilename)) { strMessage = Localization.GetString("InvalidTemplate", this.LocalResourceFile); lblMessage.Text = string.Format(strMessage, cboTemplate.SelectedItem.Text + ".template"); messages.AddRange(xval.Errors); lstResults.Visible = true; lstResults.DataSource = messages; lstResults.DataBind(); return; } //Set Portal Name txtPortalName.Text = txtPortalName.Text.ToLower(); txtPortalName.Text = txtPortalName.Text.Replace("http://", ""); //Validate Portal Name if (PortalSettings.ActiveTab.ParentId != PortalSettings.SuperTabId) { blnChild = true; // child portal for (intCounter = 1; intCounter <= txtPortalName.Text.Length; intCounter++) { if ("abcdefghijklmnopqrstuvwxyz0123456789-".IndexOf(txtPortalName.Text.Substring(intCounter, 1)) == 0) { strMessage += "<br>" + Localization.GetString("InvalidName", this.LocalResourceFile); } } strPortalAlias = txtPortalName.Text; } else { blnChild = optType.SelectedValue == "C"; if (blnChild) { strPortalAlias = txtPortalName.Text.Substring(txtPortalName.Text.LastIndexOf("/") + 1); } else { strPortalAlias = txtPortalName.Text; } string strValidChars = "abcdefghijklmnopqrstuvwxyz0123456789-"; if (!blnChild) { strValidChars += "./:"; } for (intCounter = 1; intCounter <= strPortalAlias.Length; intCounter++) { if (strValidChars.IndexOf(strPortalAlias.Substring(intCounter - 1, 1)) == 0) { strMessage += "<br>" + Localization.GetString("InvalidName", this.LocalResourceFile); } } } //Validate Password if (txtPassword.Text != txtConfirm.Text) { strMessage += "<br>" + Localization.GetString("InvalidPassword", this.LocalResourceFile); } strServerPath = Globals.GetAbsoluteServerPath(Request); //Set Portal Alias for Child Portals if (strMessage == "") { if (blnChild) { strChildPath = strServerPath + strPortalAlias; if (Directory.Exists(strChildPath)) { strMessage = Localization.GetString("ChildExists", this.LocalResourceFile); } else { if (PortalSettings.ActiveTab.ParentId != PortalSettings.SuperTabId) { strPortalAlias = Globals.GetDomainName(Request) + "/" + strPortalAlias; } else { strPortalAlias = txtPortalName.Text; } } } } //Get Home Directory string HomeDir; if (txtHomeDirectory.Text != "Portals/[PortalID]") { HomeDir = txtHomeDirectory.Text; } else { HomeDir = ""; } //Create Portal if (strMessage == "") { string strTemplateFile = cboTemplate.SelectedItem.Text + ".template"; //Attempt to create the portal int intPortalId; try { intPortalId = objPortalController.CreatePortal(txtTitle.Text, txtFirstName.Text, txtLastName.Text, txtUsername.Text, objSecurity.Encrypt(Convert.ToString(Globals.HostSettings["EncryptionKey"]), txtPassword.Text), txtEmail.Text, txtDescription.Text, txtKeyWords.Text, Globals.HostMapPath, strTemplateFile, HomeDir, strPortalAlias, strServerPath, strChildPath, blnChild); } catch (Exception ex) { intPortalId = Null.NullInteger; strMessage = ex.Message; } if (intPortalId != -1) { // notification UserInfo objUser = UserController.GetUserByName(intPortalId, txtUsername.Text, false); //Create a Portal Settings object for the new Portal PortalSettings newSettings = new PortalSettings(); newSettings.PortalAlias = new PortalAliasInfo(); newSettings.PortalAlias.HTTPAlias = strPortalAlias; newSettings.PortalId = intPortalId; string webUrl = Globals.AddHTTP(strPortalAlias); try { if (PortalSettings.ActiveTab.ParentId != PortalSettings.SuperTabId) { Mail.SendMail(PortalSettings.Email, txtEmail.Text, PortalSettings.Email + ";" + Convert.ToString(PortalSettings.HostSettings["HostEmail"]), Localization.GetSystemMessage(newSettings, "EMAIL_PORTAL_SIGNUP_SUBJECT", objUser), Localization.GetSystemMessage(newSettings, "EMAIL_PORTAL_SIGNUP_BODY", objUser), "", "", "", "", "", ""); } else { Mail.SendMail(Convert.ToString(PortalSettings.HostSettings["HostEmail"]), txtEmail.Text, Convert.ToString(PortalSettings.HostSettings["HostEmail"]), Localization.GetSystemMessage(newSettings, "EMAIL_PORTAL_SIGNUP_SUBJECT", objUser), Localization.GetSystemMessage(newSettings, "EMAIL_PORTAL_SIGNUP_BODY", objUser), "", "", "", "", "", ""); } } catch (Exception) { strMessage = string.Format(Localization.GetString("SendMail.Error", this.LocalResourceFile), webUrl, null); } EventLogController objEventLog = new EventLogController(); objEventLog.AddLog(objPortalController.GetPortal(intPortalId), PortalSettings, UserId, "", EventLogController.EventLogType.PORTAL_CREATED); // Redirect to this new site if (strMessage == Null.NullString) { Response.Redirect(webUrl, true); } } } lblMessage.Text = "<br>" + strMessage + "<br><br>"; } catch (Exception exc) //Module failed to load { Exceptions.ProcessModuleLoadException(this, exc); } } }