/// <summary>
 /// Populates the activation mode list selecting the current one.
 /// </summary>
 /// <param name="current">The current account activation mode.</param>
 private void PopulateAccountActivationMode(AccountActivationMode current)
 {
     if (current == AccountActivationMode.Email)
     {
         lstAccountActivationMode.SelectedIndex = 0;
     }
     else if (current == AccountActivationMode.Administrator)
     {
         lstAccountActivationMode.SelectedIndex = 1;
     }
     else
     {
         lstAccountActivationMode.SelectedIndex = 2;
     }
 }
Exemple #2
0
        /// <summary>
        /// Sets the Account Activation Mode for the given wiki.
        /// </summary>
        /// <param name="wiki">The wiki.</param>
        /// <param name="accountActivationMode">The account activation mode.</param>
        public static void SetAccountActivationMode(string wiki, AccountActivationMode accountActivationMode)
        {
            string aa = "";

            switch (accountActivationMode)
            {
            case AccountActivationMode.Email:
                aa = "EMAIL";
                break;

            case AccountActivationMode.Administrator:
                aa = "ADMIN";
                break;

            case AccountActivationMode.Auto:
                aa = "AUTO";
                break;

            default:
                throw new ArgumentException("Invalid Account Activation Mode.");
            }

            GetProvider(wiki).SetSetting("AccountActivationMode", aa);
        }
 /// <summary>
 /// Populates the activation mode list selecting the current one.
 /// </summary>
 /// <param name="current">The current account activation mode.</param>
 private void PopulateAccountActivationMode(AccountActivationMode current)
 {
     if(current == AccountActivationMode.Email) lstAccountActivationMode.SelectedIndex = 0;
     else if(current == AccountActivationMode.Administrator) lstAccountActivationMode.SelectedIndex = 1;
     else lstAccountActivationMode.SelectedIndex = 2;
 }
        protected void btnSave_Click(object sender, EventArgs e)
        {
            lblResult.CssClass = "";
            lblResult.Text     = "";

            Page.Validate();

            if (!Page.IsValid)
            {
                return;
            }

            Log.LogEntry("Wiki Configuration change requested", EntryType.General, SessionFacade.CurrentUsername);

            Settings.BeginBulkUpdate();

            // Save general configuration
            Settings.WikiTitle    = txtWikiTitle.Text;
            Settings.MainUrl      = txtMainUrl.Text;
            Settings.ContactEmail = txtContactEmail.Text;
            Settings.SenderEmail  = txtSenderEmail.Text;
            Settings.ErrorsEmails = GetErrorsEmails();
            Settings.SmtpServer   = txtSmtpServer.Text;

            txtSmtpPort.Text = txtSmtpPort.Text.Trim();
            if (txtSmtpPort.Text.Length > 0)
            {
                Settings.SmtpPort = int.Parse(txtSmtpPort.Text);
            }
            else
            {
                Settings.SmtpPort = -1;
            }
            if (txtUsername.Text.Length > 0)
            {
                Settings.SmtpUsername = txtUsername.Text;
                Settings.SmtpPassword = txtPassword.Text;
            }
            else
            {
                Settings.SmtpUsername = "";
                Settings.SmtpPassword = "";
            }
            Settings.SmtpSsl = chkEnableSslForSmtp.Checked;

            // Save content configuration
            Settings.SetTheme(null, lstRootTheme.SelectedValue);
            Settings.DefaultPage               = lstMainPage.SelectedValue;
            Settings.DateTimeFormat            = txtDateTimeFormat.Text;
            Settings.DefaultLanguage           = lstDefaultLanguage.SelectedValue;
            Settings.DefaultTimezone           = int.Parse(lstDefaultTimeZone.SelectedValue);
            Settings.MaxRecentChangesToDisplay = int.Parse(txtMaxRecentChangesToDisplay.Text);
            Settings.RssFeedsMode              = (RssFeedsMode)Enum.Parse(typeof(RssFeedsMode), lstRssFeedsMode.SelectedValue);
            Settings.EnableDoubleClickEditing  = chkEnableDoubleClickEditing.Checked;
            Settings.EnableSectionEditing      = chkEnableSectionEditing.Checked;
            Settings.EnableSectionAnchors      = chkEnableSectionAnchors.Checked;
            Settings.EnablePageToolbar         = chkEnablePageToolbar.Checked;
            Settings.EnableViewPageCodeFeature = chkEnableViewPageCode.Checked;
            Settings.EnablePageInfoDiv         = chkEnablePageInfoDiv.Checked;
            Settings.DisableBreadcrumbsTrail   = !chkEnableBreadcrumbsTrail.Checked;
            Settings.AutoGeneratePageNames     = chkAutoGeneratePageNames.Checked;
            Settings.ProcessSingleLineBreaks   = chkProcessSingleLineBreaks.Checked;
            Settings.UseVisualEditorAsDefault  = chkUseVisualEditorAsDefault.Checked;
            if (txtKeptBackupNumber.Text == "")
            {
                Settings.KeptBackupNumber = -1;
            }
            else
            {
                Settings.KeptBackupNumber = int.Parse(txtKeptBackupNumber.Text);
            }
            Settings.DisplayGravatars = chkDisplayGravatars.Checked;
            Settings.ListSize         = int.Parse(txtListSize.Text);

            // Save security configuration
            Settings.UsersCanRegister = chkAllowUsersToRegister.Checked;
            Settings.UsernameRegex    = txtUsernameRegEx.Text;
            Settings.PasswordRegex    = txtPasswordRegEx.Text;
            AccountActivationMode mode = AccountActivationMode.Email;

            switch (lstAccountActivationMode.SelectedValue.ToLowerInvariant())
            {
            case "email":
                mode = AccountActivationMode.Email;
                break;

            case "admin":
                mode = AccountActivationMode.Administrator;
                break;

            case "auto":
                mode = AccountActivationMode.Auto;
                break;
            }
            Settings.AccountActivationMode    = mode;
            Settings.UsersGroup               = lstDefaultUsersGroup.SelectedValue;
            Settings.AdministratorsGroup      = lstDefaultAdministratorsGroup.SelectedValue;
            Settings.AnonymousGroup           = lstDefaultAnonymousGroup.SelectedValue;
            Settings.DisableCaptchaControl    = !chkEnableCaptchaControl.Checked;
            Settings.DisableConcurrentEditing = chkPreventConcurrentEditing.Checked;

            if (rdoNoModeration.Checked)
            {
                Settings.ChangeModerationMode = ChangeModerationMode.None;
            }
            else if (rdoRequirePageViewingPermissions.Checked)
            {
                Settings.ChangeModerationMode = ChangeModerationMode.RequirePageViewingPermissions;
            }
            else if (rdoRequirePageEditingPermissions.Checked)
            {
                Settings.ChangeModerationMode = ChangeModerationMode.RequirePageEditingPermissions;
            }

            Settings.AllowedFileTypes = GetAllowedFileExtensions();

            Settings.FileDownloadCountFilterMode = (FileDownloadCountFilterMode)Enum.Parse(typeof(FileDownloadCountFilterMode), lstFileDownloadCountFilterMode.SelectedValue);
            Settings.FileDownloadCountFilter     = txtFileDownloadCountFilter.Text.Replace(" ", "").Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);

            Settings.MaxFileSize       = int.Parse(txtMaxFileSize.Text);
            Settings.ScriptTagsAllowed = chkAllowScriptTags.Checked;
            LoggingLevel level = LoggingLevel.AllMessages;

            if (rdoAllMessages.Checked)
            {
                level = LoggingLevel.AllMessages;
            }
            else if (rdoWarningsAndErrors.Checked)
            {
                level = LoggingLevel.WarningsAndErrors;
            }
            else if (rdoErrorsOnly.Checked)
            {
                level = LoggingLevel.ErrorsOnly;
            }
            else
            {
                level = LoggingLevel.DisableLog;
            }
            Settings.LoggingLevel = level;
            Settings.MaxLogSize   = int.Parse(txtMaxLogSize.Text);
            Settings.IpHostFilter = txtIpHostFilter.Text;

            // Save advanced configuration
            Settings.DisableAutomaticVersionCheck = !chkEnableAutomaticUpdateChecks.Checked;
            Settings.DisableCache = chkDisableCache.Checked;
            Settings.CacheSize    = int.Parse(txtCacheSize.Text);
            Settings.CacheCutSize = int.Parse(txtCacheCutSize.Text);
            Settings.EnableViewStateCompression = chkEnableViewStateCompression.Checked;
            Settings.EnableHttpCompression      = chkEnableHttpCompression.Checked;

            Settings.EndBulkUpdate();

            Content.InvalidateAllPages();
            Content.ClearPseudoCache();

            lblResult.CssClass = "resultok";
            lblResult.Text     = Properties.Messages.ConfigSaved;
        }
        protected void btnSave_Click(object sender, EventArgs e)
        {
            lblResult.CssClass = "";
            lblResult.Text     = "";

            Page.Validate();

            if (!Page.IsValid)
            {
                return;
            }

            Log.LogEntry("Wiki Configuration change requested", EntryType.General, SessionFacade.CurrentUsername, currentWiki);

            Settings.BeginBulkUpdate(currentWiki);

            // Save general configuration
            Settings.SetWikiTitle(currentWiki, txtWikiTitle.Text);
            Settings.SetMainUrl(currentWiki, txtMainUrl.Text);

            // Save content configuration
            Settings.SetTheme(currentWiki, null, ThemeRootSelector.SelectedProvider + "|" + ThemeRootSelector.SelectedThemes);
            Settings.SetDefaultPage(currentWiki, lstMainPage.SelectedValue);
            Settings.SetDateTimeFormat(currentWiki, txtDateTimeFormat.Text);
            Settings.SetDefaultLanguage(currentWiki, lstDefaultLanguage.SelectedValue);
            Settings.SetDefaultTimezone(currentWiki, lstDefaultTimeZone.SelectedValue);
            Settings.SetMaxRecentChangesToDisplay(currentWiki, int.Parse(txtMaxRecentChangesToDisplay.Text));
            Settings.SetRssFeedsMode(currentWiki, (RssFeedsMode)Enum.Parse(typeof(RssFeedsMode), lstRssFeedsMode.SelectedValue));
            Settings.SetEnableDoubleClickEditing(currentWiki, chkEnableDoubleClickEditing.Checked);
            Settings.SetEnableSectionEditing(currentWiki, chkEnableSectionEditing.Checked);
            Settings.SetEnableSectionAnchors(currentWiki, chkEnableSectionAnchors.Checked);
            Settings.SetEnablePageToolbar(currentWiki, chkEnablePageToolbar.Checked);
            Settings.SetEnableViewPageCodeFeature(currentWiki, chkEnableViewPageCode.Checked);
            Settings.SetEnablePageInfoDiv(currentWiki, chkEnablePageInfoDiv.Checked);
            Settings.SetDisableBreadcrumbsTrail(currentWiki, !chkEnableBreadcrumbsTrail.Checked);
            Settings.SetAutoGeneratePageNames(currentWiki, chkAutoGeneratePageNames.Checked);
            Settings.SetProcessSingleLineBreaks(currentWiki, chkProcessSingleLineBreaks.Checked);
            Settings.SetUseVisualEditorAsDefault(currentWiki, chkUseVisualEditorAsDefault.Checked);
            if (txtKeptBackupNumber.Text == "")
            {
                Settings.SetKeptBackupNumber(currentWiki, -1);
            }
            else
            {
                Settings.SetKeptBackupNumber(currentWiki, int.Parse(txtKeptBackupNumber.Text));
            }
            Settings.SetDisplayGravatars(currentWiki, chkDisplayGravatars.Checked);
            Settings.SetListSize(currentWiki, int.Parse(txtListSize.Text));

            // Save security configuration
            Settings.SetUsersCanRegister(currentWiki, chkAllowUsersToRegister.Checked);
            AccountActivationMode mode = AccountActivationMode.Email;

            switch (lstAccountActivationMode.SelectedValue.ToLowerInvariant())
            {
            case "email":
                mode = AccountActivationMode.Email;
                break;

            case "admin":
                mode = AccountActivationMode.Administrator;
                break;

            case "auto":
                mode = AccountActivationMode.Auto;
                break;
            }
            Settings.SetAccountActivationMode(currentWiki, mode);
            Settings.SetUsersGroup(currentWiki, lstDefaultUsersGroup.SelectedValue);
            Settings.SetAdministratorsGroup(currentWiki, lstDefaultAdministratorsGroup.SelectedValue);
            Settings.SetAnonymousGroup(currentWiki, lstDefaultAnonymousGroup.SelectedValue);
            Settings.SetDisableCaptchaControl(currentWiki, !chkEnableCaptchaControl.Checked);
            Settings.SetDisableConcurrentEditing(currentWiki, chkPreventConcurrentEditing.Checked);

            if (rdoNoModeration.Checked)
            {
                Settings.SetModerationMode(currentWiki, ChangeModerationMode.None);
            }
            else if (rdoRequirePageViewingPermissions.Checked)
            {
                Settings.SetModerationMode(currentWiki, ChangeModerationMode.RequirePageViewingPermissions);
            }
            else if (rdoRequirePageEditingPermissions.Checked)
            {
                Settings.SetModerationMode(currentWiki, ChangeModerationMode.RequirePageEditingPermissions);
            }

            Settings.SetAllowedFileTypes(currentWiki, GetAllowedFileExtensions());

            Settings.SetFileDownloadCountFilterMode(currentWiki, (FileDownloadCountFilterMode)Enum.Parse(typeof(FileDownloadCountFilterMode), lstFileDownloadCountFilterMode.SelectedValue));
            Settings.SetFileDownloadCountFilter(currentWiki, txtFileDownloadCountFilter.Text.Replace(" ", "").Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries));

            Settings.SetScriptTagsAllowed(currentWiki, chkAllowScriptTags.Checked);
            Settings.SetIpHostFilter(currentWiki, txtIpHostFilter.Text);

            Settings.EndBulkUpdate(currentWiki);

            lblResult.CssClass = "resultok";
            lblResult.Text     = Properties.Messages.ConfigSaved;
        }