Example #1
0
        public async Task <IActionResult> SendEmailConfirmTokenAgain([FromBody] SendEmailConfirmTokenAgainModel body)
        {
            body.Email = body.Email.ToLower();
            var user = await _userService.GetUserByEmailAsync(body.Email);

            if (user == null)
            {
                _logger.LogWarning($"Invalid send confirmation email attempt. User {body.Email} doesn't exist.");
                return(Ok());
            }

            if (user.EmailConfirmed)
            {
                return(ErrorResponse($"Emailová adresa je už potvrdená."));
            }

            string token = await _userService.GenerateEmailConfirmationTokenAsync(user);

            string callbackUrl = new Uri(_baseUrl, $@"confirmEmail/{user.Id}/{token}").ToString();

            if (!_emailService.SendConfirmationEmail(body.Email, callbackUrl, "RegistrationEmail"))
            {
                _logger.LogError($"Error when sending confirmation email to user {body.Email}.");
                return(BadRequest());
            }
            _logger.LogInformation($"Confirmation email to user {user.Email} sent.");
            return(Ok());
        }
Example #2
0
        public async Task SendEmailConfirmTokenAgain_EmailSuccess_Ok()
        {
            UserController controller = new UserController(_loggerMock.Object,
                                                           MockUserService(true, true, true),
                                                           MockEmailService(true),
                                                           _envSettingsMock.Object);
            SendEmailConfirmTokenAgainModel sendEmailConfirmTokenModel = CreateSendEmailConfirmTokenAgain();

            var result = await controller.SendEmailConfirmTokenAgain(sendEmailConfirmTokenModel);

            Assert.IsType <OkResult>(result);
        }
Example #3
0
        public async Task SendEmailConfirmTokenAgain_UserNotExists_BadRequestObjectResult()
        {
            UserController controller = new UserController(_loggerMock.Object,
                                                           MockUserService(true, true, false),
                                                           MockEmailService(true),
                                                           _envSettingsMock.Object);
            SendEmailConfirmTokenAgainModel sendEmailConfirmTokenModel = CreateSendEmailConfirmTokenAgain();

            var result = await controller.SendEmailConfirmTokenAgain(sendEmailConfirmTokenModel);

            // expect Ok result anyway, it's not revealed if user exists
            Assert.IsType <OkResult>(result);
        }