public async Task <IActionResult> UpdateCredentials(UpdateResourceOwnerCredentialsViewModel viewModel) { if (viewModel == null) { throw new ArgumentNullException(nameof(viewModel)); } // 1. Validate the view model. await TranslateUserEditView(DefaultLanguage); var authenticatedUser = await SetUser(); ViewBag.IsUpdated = false; viewModel.Validate(ModelState); if (!ModelState.IsValid) { return(await GetEditView(authenticatedUser)); } // 2. Create a new user if he doesn't exist or update the credentials. var resourceOwner = await _userActions.GetUser(authenticatedUser); var subject = authenticatedUser.GetSubject(); await _userActions.UpdateCredentials(subject, viewModel.Password); ViewBag.IsUpdated = true; return(await GetEditView(authenticatedUser)); }
public async Task <IActionResult> Index(UpdateResourceOwnerCredentialsViewModel viewModel) { if (viewModel == null) { throw new ArgumentNullException(nameof(viewModel)); } // 1. Validate the view model. await TranslateUserEditView(DefaultLanguage).ConfigureAwait(false); var authenticatedUser = await SetUser().ConfigureAwait(false); ViewBag.IsUpdated = false; if (!ModelState.IsValid) { return(View(viewModel)); } // 2. Update the credentials try { var subject = authenticatedUser.GetSubject(); await _changePasswordAction.Execute(new ChangePasswordParameter { ActualPassword = viewModel.ActualPassword, NewPassword = viewModel.NewPassword, Subject = subject }).ConfigureAwait(false); ViewBag.IsUpdated = true; return(View(viewModel)); } catch (Exception ex) { ModelState.AddModelError("error_message", ex.Message); return(View(viewModel)); } }
public async Task <IActionResult> UpdateCredentials( UpdateResourceOwnerCredentialsViewModel viewModel, CancellationToken cancellationToken) { // 1. Validate the view model. var authenticatedUser = await SetUser().ConfigureAwait(false); ViewBag.IsUpdated = false; viewModel.Validate(ModelState); if (!ModelState.IsValid) { return(await GetEditView(authenticatedUser !, cancellationToken).ConfigureAwait(false)); } // 2. CreateJwk a new user if he doesn't exist or update the credentials. //var resourceOwner = await _getUserOperation.Execute(authenticatedUser).ConfigureAwait(false); var subject = authenticatedUser.GetSubject(); var updated = subject != null && await _resourceOwnerRepository.SetPassword(subject, viewModel.Password !, cancellationToken) .ConfigureAwait(false); ViewBag.IsUpdated = updated; return(await GetEditView(authenticatedUser !, cancellationToken).ConfigureAwait(false)); }