public async Task <IActionResult> SetPassword([FromBody] SetPasswordInput input)
        {
            if (!ModelState.IsValid)
            {
                return(Ok(ModelState));
            }

            var user = await _userManager.GetUserAsync(User);

            if (user == null)
            {
                return(NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."));
            }

            var addPasswordResult = await _userManager.AddPasswordAsync(user, input.NewPassword);

            if (!addPasswordResult.Succeeded)
            {
                foreach (var error in addPasswordResult.Errors)
                {
                    ModelState.AddModelError("ModelErrors", error.Description);
                }
                return(Ok(ModelState));
            }

            await _signInManager.RefreshSignInAsync(user);

            var statusMessage = "Your password has been set.";

            return(Ok(new StatusResponse()
            {
                Status = statusMessage
            }));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> SetPassword(SetPasswordInput model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var addPasswordResult = await _userManager.AddPasswordAsync(CurrentUser, model.NewPassword);

            if (!addPasswordResult.Succeeded)
            {
                foreach (var error in addPasswordResult.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }
                return(BadRequest(ModelState));
            }

            await _signInManager.SignInAsync(CurrentUser, isPersistent : false);

            _logger.LogInformation("User set password successfully.");

            return(Ok("Your password has been set."));
        }
        public async Task <IActionResult> SetPassword(SetPasswordInput model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var addPasswordResult = await UserManager.AddPasswordAsync(CurrentUser, model.NewPassword);

            if (!addPasswordResult.Succeeded)
            {
                foreach (var error in addPasswordResult.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }
                return(BadRequest(ModelState));
            }

            await SignInManager.SignInAsync(CurrentUser, false);

            Logger.LogInformation("Senha definida pelo usuário com sucesso.");

            return(Ok("Your password has been set."));
        }