public async Task <IActionResult> ConfirmEmail(string userId, string code)
        {
            if (userId == null || code == null)
            {
                return(BadRequest("Não foi possível confirmar o email"));
            }

            var confirmEmail = new ConfirmEmailDTO();
            var user         = await _userManager.FindByIdAsync(userId);

            if (user == null)
            {
                return(NotFound($"Usuário ID '{userId}' não encontrado."));
            }
            else
            {
                confirmEmail.Code   = code;
                confirmEmail.Email  = user.Email;
                confirmEmail.UserId = userId;
                var retorno = await _userManager.ConfirmEmailAsync(user, confirmEmail.Code);

                //buscar no banco de dados empresa o site para redirecionar

                //var siteEmpresa = "https://localhost:44303/";
                var siteEmpresa = "https://mecanicoweb.azurewebsites.net";
                return(Redirect(siteEmpresa));
            }
        }
Esempio n. 2
0
        public async Task <IActionResult> CreateUser(RegistrationViewModel registrationModel)
        {
            var fullPath = DefaultUserImagePath();

            var image = registrationModel.Avatar;

            if (string.IsNullOrEmpty(image))
            {
                registrationModel.Avatar = ImageConvertor.GetImageFromPath(fullPath);
            }
            else
            {
                registrationModel.Avatar = await Downloader.GetImageAsBase64Url(image);
            }

            var newUser = await _userService.CreateUserAsync(registrationModel);

            if (newUser == null)
            {
                throw new ValidationException(HttpStatusCode.Forbidden, _localizer["UserAlreadyExists"].Value);
            }

            var confirmEmailDto = new ConfirmEmailDTO
            {
                UserEmail   = newUser.Email,
                CallbackUrl = registrationModel.CallbackUrlForEmailConfirm
            };
            await _emailConfirmationService.SendConfirmEmailLinkAsync(confirmEmailDto);

            return(Ok());
        }
Esempio n. 3
0
        public async Task <ConfirmEmailDTO> ConfirmEmail(string token, string email)
        {
            var path = "ConfirmEmail";

            var confirmEmailDTO = new ConfirmEmailDTO()
            {
                EmailAddress = email,
                Token        = token
            };

            var controllerResponseDTO = await Post <ConfirmEmailDTO>(path, confirmEmailDTO);

            return(controllerResponseDTO.Content);
        }
        public async Task <ActionResult> ConfirmEmail([FromQuery] ConfirmEmailDTO model)
        {
            var user = await _userManager.FindByIdAsync(model.UserId);

            if (user != null)
            {
                await _userManager.ConfirmEmailAsync(user, model.Token);

                return(Ok());
            }
            else
            {
                return(BadRequest("Username or token invalid"));
            }
        }
Esempio n. 5
0
        public async Task ConfirmEmail(ConfirmEmailDTO confirmEmailDTO)
        {
            User user = await _userManager.FindByEmailAsync(confirmEmailDTO.Email);

            if (user == null)
            {
                throw new NotFoundException("There is no user with such email");
            }

            var result = await _userManager.ConfirmEmailAsync(user, confirmEmailDTO.Code);

            if (!result.Succeeded)
            {
                throw new ValidationException("Invalid confirmation code");
            }
        }
Esempio n. 6
0
        public async Task SendConfirmEmailLinkAsync(ConfirmEmailDTO confirmEmailDto)
        {
            var user = await _unitOfWork.UserRepository.SingleOrDefaultAsync(u => u.Email == confirmEmailDto.UserEmail);

            if (user == null)
            {
                throw new ApiException(HttpStatusCode.NotFound, "User was not found.");
            }

            var role = await _unitOfWork.RoleRepository.GetAsync(user.RoleId);

            var accessToken = _jwtManager.GenerateAccessToken(user.Id, user.Email, role.Name);

            var callbackUrl = confirmEmailDto.CallbackUrl + accessToken;
            var message     = _message + callbackUrl;

            await _emailSenderService.SendEmailAsync(user.Email, "Fin App: confirm email", message);
        }
        public async Task <ControllerResponseDTO <ConfirmEmailDTO> > ConfirmEmail(ConfirmEmailDTO confirmEmailDTO)
        {
            var user = await UserManager.FindByEmailAsync(confirmEmailDTO.EmailAddress);

            var identityResult = await UserManager.ConfirmEmailAsync(user, confirmEmailDTO.Token);

            if (identityResult.Succeeded)
            {
                return(new ControllerResponseDTO <ConfirmEmailDTO>()
                {
                    Content = confirmEmailDTO
                });
            }

            confirmEmailDTO.HasErrors = true;

            return(new ControllerResponseDTO <ConfirmEmailDTO>()
            {
                ErrorMessage = identityResult.Errors.First().Description,
                Content = confirmEmailDTO
            });
        }
Esempio n. 8
0
        public async Task <ActionResult> ConfirmAccount([FromQuery] ConfirmEmailDTO confirmEmailDTO)
        {
            var badResult = Redirect($"{ApplicationConstants.LoginFrontendDefaultEndpoint}?msg=El enlace es incorrecto o ha expirado");

            var user = await userManager.FindByIdAsync(confirmEmailDTO.UserId);

            if (user == null)
            {
                return(badResult);
            }

            var result = await userManager.ConfirmEmailAsync(user, confirmEmailDTO.Token);

            if (result.Succeeded)
            {
                return(Redirect($"{ApplicationConstants.LoginFrontendDefaultEndpoint}?msg=Tu cuenta ha sido confirmada exitosamente, ya puedes iniciar sesion"));
            }
            else
            {
                return(badResult);
            }
        }
        public async Task <IActionResult> SendConfirmEmailLinkAsync(ConfirmEmailDTO confirmEmailDto)
        {
            await _emailConfirmationService.SendConfirmEmailLinkAsync(confirmEmailDto);

            return(Ok());
        }
Esempio n. 10
0
 public async Task ConfirmEmail([FromBody] ConfirmEmailDTO confirmEmailDTO)
 {
     await accountService.ConfirmEmail(confirmEmailDTO);
 }