예제 #1
0
        public virtual IActionResult UserUser(UserUserSettingsModel model)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageSettings))
            {
                return(AccessDeniedView());
            }

            var userSettings = _settingService.LoadSetting <UserSettings>();

            var lastUsernameValidationRule          = userSettings.UsernameValidationRule;
            var lastUsernameValidationEnabledValue  = userSettings.UsernameValidationEnabled;
            var lastUsernameValidationUseRegexValue = userSettings.UsernameValidationUseRegex;

            var addressSettings  = _settingService.LoadSetting <AddressSettings>();
            var dateTimeSettings = _settingService.LoadSetting <DateTimeSettings>();
            var externalAuthenticationSettings = _settingService.LoadSetting <ExternalAuthenticationSettings>();

            userSettings = model.UserSettings.ToSettings(userSettings);

            if (userSettings.UsernameValidationEnabled && userSettings.UsernameValidationUseRegex)
            {
                try
                {
                    //validate regex rule
                    var unused = Regex.IsMatch("test_user_name", userSettings.UsernameValidationRule);
                }
                catch (ArgumentException)
                {
                    //restoring previous settings
                    userSettings.UsernameValidationRule     = lastUsernameValidationRule;
                    userSettings.UsernameValidationEnabled  = lastUsernameValidationEnabledValue;
                    userSettings.UsernameValidationUseRegex = lastUsernameValidationUseRegexValue;

                    ErrorNotification(_localizationService.GetResource("Admin.Configuration.Settings.UserSettings.RegexValidationRule.Error"));
                }
            }

            _settingService.SaveSetting(userSettings);

            addressSettings = model.AddressSettings.ToSettings(addressSettings);
            _settingService.SaveSetting(addressSettings);

            dateTimeSettings.AllowUsersToSetTimeZone = model.DateTimeSettings.AllowUsersToSetTimeZone;
            _settingService.SaveSetting(dateTimeSettings);

            //externalAuthenticationSettings.AllowUsersitemoveAssociations = model.ExternalAuthenticationSettings.AllowUsersitemoveAssociations;
            _settingService.SaveSetting(externalAuthenticationSettings);

            //activity log
            _userActivityService.InsertActivity("EditSettings", _localizationService.GetResource("ActivityLog.EditSettings"));

            SuccessNotification(_localizationService.GetResource("Admin.Configuration.Updated"));

            //selected tab
            SaveSelectedTabName();

            return(RedirectToAction("UserUser"));
        }
예제 #2
0
        /// <summary>
        /// Prepare user user settings model
        /// </summary>
        /// <returns>User user settings model</returns>
        public virtual UserUserSettingsModel PrepareUserUserSettingsModel()
        {
            var model = new UserUserSettingsModel();

            //prepare user settings model
            model.UserSettings = PrepareUserSettingsModel();

            //prepare address settings model
            model.AddressSettings = PrepareAddressSettingsModel();

            //prepare date time settings model
            model.DateTimeSettings = PrepareDateTimeSettingsModel();

            //prepare external authentication settings model
            model.ExternalAuthenticationSettings = PrepareExternalAuthenticationSettingsModel();

            //prepare nested search models
            _userAttributeModelFactory.PrepareUserAttributeSearchModel(model.UserAttributeSearchModel);
            _addressAttributeModelFactory.PrepareAddressAttributeSearchModel(model.AddressAttributeSearchModel);

            return(model);
        }