Ejemplo n.º 1
0
        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));
            }
        }
Ejemplo n.º 3
0
        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));
        }