public async Task <IActionResult> UserAdmin(UserAdminSettingsModel model) { if (!await _permissionService.AuthorizeAsync(StandardPermissionProvider.ManageSettings)) { return(AccessDeniedView()); } var tenantScope = _tenantContext.ActiveTenantScopeConfiguration; var userSettings = _settingService.LoadSetting <UserSettings>(tenantScope); var lastUsernameValidationRule = userSettings.UsernameValidationRule; var lastUsernameValidationEnabledValue = userSettings.UsernameValidationEnabled; var lastUsernameValidationUseRegexValue = userSettings.UsernameValidationUseRegex; var dateTimeSettings = _settingService.LoadSetting <DateTimeSettings>(tenantScope); 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; _notificationService.ErrorNotification("The regular expression for username validation is incorrect"); } } _settingService.SaveSetting(userSettings); dateTimeSettings.DefaultTimeZoneId = model.DateTimeSettings.DefaultTimeZoneId; dateTimeSettings.AllowUsersToSetTimeZone = model.DateTimeSettings.AllowUsersToSetTimeZone; _settingService.SaveSetting(dateTimeSettings); await _userActivityService.InsertActivityAsync("EditSettings", "Edited settings"); _notificationService.SuccessNotification("The settings have been updated successfully."); SaveSelectedTabName(); return(RedirectToAction("UserAdmin")); }
public async Task <UserAdminSettingsModel> PrepareUserAdminSettingsModel() { var model = new UserAdminSettingsModel { ActiveTenantScopeConfiguration = _tenantContext.ActiveTenantScopeConfiguration, //prepare user settings model UserSettings = await PrepareUserSettingsModel(), //prepare date time settings model DateTimeSettings = await PrepareDateTimeSettingsModel(), }; return(model); }