public IActionResult ConfirmEmail(ConfirmEmailRequest confirmEmailRequest)
        {
            var user = _userService.GetByEmail(confirmEmailRequest.Email);

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

            if (!_userService.ConfirmEmail(user, confirmEmailRequest.ConfirmationToken))
            {
                return(BadRequest(new { message = "Confirmation token not valid" }));
            }

            return(Ok(new { message = "email confirmed" }));
        }
Esempio n. 2
0
        public async Task <IActionResult> ConfirmEmail([FromBody] ConfirmEmailRequest request)
        {
            try
            {
                var reqestObject = new AuthorizedRequestObject <ConfirmEmailRequest, ConfirmEmailReply>(request)
                {
                    UserId = User.GetUserId()
                };
                ConfirmEmailReply reply = await mediator.Send(reqestObject).ConfigureAwait(false);

                return(Ok(reply));
            }
            catch (ArgumentNullException e)
            {
                return(BadRequest(e.Message));
            }
        }
Esempio n. 3
0
        protected virtual IActionResult ConfirmEmail(ConfirmEmailRequest confirmEmailRequest)
        {
            if (confirmEmailRequest == null || confirmEmailRequest.Code == null)
            {
                return(BadRequest());
            }

            try
            {
                var login = AccountServices.ConfirmEmail(confirmEmailRequest.Code);
                return(Ok(new { jwt = GenerateToken(login.Email), data = login }));
            }
            catch (ArgumentException)
            {
                return(BadRequest(new { error = "Email could not be confirmed." }));
            }
        }
Esempio n. 4
0
        // GET
        public async Task <IActionResult> IndexAsync(ConfirmEmailRequest model, CancellationToken token)
        {
            if (!ModelState.IsValid)
            {
                return(Redirect("/"));
            }

            if (User.Identity.IsAuthenticated)
            {
                return(Redirect("/"));
            }
            model.Code = System.Net.WebUtility.UrlDecode(model.Code);
            var user = await _userManager.FindByIdAsync(model.Id.ToString());

            if (user is null)
            {
                throw new ApplicationException($"Unable to load user with ID '{model.Id}'.");
            }

            if (user.PhoneNumberConfirmed)
            {
                return(RedirectToRoute(RegisterController.Signin));
            }
            if (user.EmailConfirmed)
            {
                return(await GoToStepAsync(user, RegistrationStep.RegisterSetPhone, model.ReturnUrl));
            }
            var result = await _userManager.ConfirmEmailAsync(user, model.Code);

            if (!result.Succeeded)
            {
                _logger.Error($"Error confirming email for user with ID '{model.Id}': {result}, User: {user}");
                return(RedirectToRoute(RegisterController.RegisterRouteName,
                                       new
                {
                    //There was an extra step in here
                    page = RegistrationStep.RegisterSetEmailPassword
                }));
            }

            TempData[HomeController.Referral] = model.Referral;

            return(await GoToStepAsync(user,
                                       RegistrationStep.RegisterSetPhone,
                                       model.ReturnUrl));
        }
        public async Task <IActionResult> ConfirmEmail([FromBody] ConfirmEmailRequest request)
        {
            var confirmation = await _identityService.ConfirmEmail(request.Email, request.Token);

            if (!confirmation.Succeeded)
            {
                return(BadRequest(new IdentityFailedResponse
                {
                    Errors = confirmation.Errors
                }));
            }

            return(Ok(new IdentitySuccessResponse
            {
                Message = "Email Confirmed"
            }));
        }
        public async Task <IActionResult> ConfirmEmail([FromBody] ConfirmEmailRequest request)
        {
            var user = await _userManager.FindByIdAsync(request.UserID);

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

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

            if (result.Succeeded)
            {
                return(Ok());
            }

            return(BadRequest());
        }
Esempio n. 7
0
        public async Task <IActionResult> ConfirmEmailAsync([FromBody] ConfirmEmailRequest request)
        {
            var user = await _userService.FindByIdAsync(request.UserId);

            if (user == null)
            {
                return(BadRequest(ErrorHelper.CreateErrorRespose("Invalid confirmation code.")));
            }

            var result = await _authService.ConfirmEmailAsync(user, request.Code);

            if (result.Succeeded)
            {
                return(Ok());
            }

            return(BadRequest(ErrorHelper.CreateErrorRespose(result.Errors)));
        }
Esempio n. 8
0
        public string _GenerateConfirmLink(string login)
        {
            var receiverStrings = login.Split('@');
            var xmppLogin       = receiverStrings[0];

            using (var context = new InnostarModelsContext())
            {
                var repository = new ChatUserRepository(context);
                var users      = repository._Get(e => e.XmppLogin == xmppLogin).ToList();

                if (users.Any())
                {
                    var user = users.FirstOrDefault();

                    var confirmRepository = new ConfirmEmailRequestRepository(context);
                    var rnd        = new Random();
                    var requestKey = rnd.Next(99).ToString(CultureInfo.InvariantCulture)
                                     + Guid.NewGuid().ToString().Replace("-", string.Empty)
                                     + rnd.Next(99).ToString(CultureInfo.InvariantCulture)
                                     + Guid.NewGuid().ToString().Replace("-", string.Empty);

                    //user.Disabled = true;
                    //repository._Update(user);
                    //repository._Save();

                    var request = new ConfirmEmailRequest
                    {
                        IsActive            = true,
                        RequestAcceptedTime = DateTime.Now,
                        RequestKey          = requestKey,
                        User = user
                    };

                    confirmRepository._Insert(request);
                    confirmRepository._Save();
                }
            }

            return(string.Empty);
        }
        public void ConfirmEmail_Call_FindByIdAsync_ConfirmEmailAsync_Methods()
        {
            var accountsController = new AccountsController(
                _applicationUserManager.Object,
                _emailSendingServiceMock.Object,
                _inviteServiceMock.Object);

            var confirmEmail = new ConfirmEmailRequest
            {
                Code   = "code",
                UserId = "userIdId"
            };
            var confirmResult = IdentityResult.Success;

            _applicationUserManager.Setup(um => um.FindByIdAsync(It.IsAny <string>())).ReturnsAsync(_registerUser);
            _applicationUserManager.Setup(um => um.ConfirmEmailAsync(It.IsAny <string>(), It.IsAny <string>())).ReturnsAsync(confirmResult);

            var actionResult = accountsController.ConfirmEmail(confirmEmail);

            _applicationUserManager.Verify(um => um.FindByIdAsync(It.IsAny <string>()), Times.Once());
            _applicationUserManager.Verify(um => um.ConfirmEmailAsync(It.IsAny <string>(), It.IsAny <string>()), Times.Once());
        }
        public async Task <IHttpActionResult> ConfirmEmail([FromBody] ConfirmEmailRequest confirm)
        {
            if (confirm == null)
            {
                return(BadRequest());
            }

            try
            {
                confirm.UserId = FromBase64(confirm.UserId);
                confirm.Code   = FromBase64(confirm.Code);
            }
            catch (Exception)
            {
                return(BadRequest());
            }

            if (await _userManager.FindByIdAsync(confirm.UserId) == null)
            {
                return(BadRequest());
            }

            try
            {
                var result = await _userManager.ConfirmEmailAsync(confirm.UserId, confirm.Code);

                if (!result.Succeeded)
                {
                    return(GetErrorResult(result));
                }
            }
            catch (Exception)
            {
                return(InternalServerError());
            }

            return(Ok());
        }
Esempio n. 11
0
 public new IActionResult ConfirmEmail([FromBody] ConfirmEmailRequest confirmEmailRequest)
 {
     return(base.ConfirmEmail(confirmEmailRequest));
 }
Esempio n. 12
0
        public async Task <EmptyResponse> ConfrimEmailAsync([FromBody] ConfirmEmailRequest request)
        {
            await _authenticationService.ConfirmEmailAsync(request.Token);

            return(new EmptyResponse());
        }
Esempio n. 13
0
        public async Task <IActionResult> ConfirmEmail([FromBody] ConfirmEmailRequest model)
        {
            await _userProvider.ConfirmEmailAsync(model.Id, model.Token);

            return(Ok());
        }
Esempio n. 14
0
        protected virtual IActionResult ConfirmEmail(ConfirmEmailRequest confirmEmailRequest)
        {
            var loginResponse = UserBusiness.ConfirmEmail(confirmEmailRequest.Code);

            return(Ok(new { logged = true, jwt = GenerateToken(loginResponse.Email), data = loginResponse }));
        }
Esempio n. 15
0
        public async Task <IActionResult> ConfirmEmail(ConfirmEmailRequest request)
        {
            var response = await _authRepo.ConfirmEmail(request.Token, request.Email);

            return(HandleServiceResponse(response));
        }
Esempio n. 16
0
        public async Task <IActionResult> ConfirmEmail([FromBody] ConfirmEmailRequest request)
        {
            OperationResult result = await accountService.ConfirmEmail(request.UserId, request.Token);

            return(ToActionResult(result));
        }
Esempio n. 17
0
 public async Task <IActionResult> ConfirmEmail([FromBody] ConfirmEmailRequest request)
 => await mediator.AuthorizeHandlerActionResult <ConfirmEmailRequest, ConfirmEmailReply>(request, User).ConfigureAwait(false);
Esempio n. 18
0
 public Task <ApiResponse> ConfirmEmailAsync(ConfirmEmailRequest model)
 {
     throw new System.NotImplementedException();
 }
        public async Task<IHttpActionResult> ConfirmEmail(ConfirmEmailRequest model)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            // Confirm the email address
            var result = await UserManager.ConfirmEmailAsync(model.UserId, model.Code);

            // Return OK if the account was confirmed successfully
            if (result.Succeeded)
            {
                return Ok();
            }
            else
            {
                return BadRequest();
            }


        }
Esempio n. 20
0
        public async Task <bool> Execute(string code)
        {
            ConfirmEmailRequest request = null;
            string codeHashed           = null;

            try
            {
                codeHashed = _codeHashHelper.GenerateHash(code);
                DateTime maxDate = DateTime.Now.AddDays(-_daysToExpire);
                request = (await _emailConfirmCollection.FindAsync(x => x.Code == codeHashed && x.Status == ConfirmEmailRequestStatus.NotResolved && x.CreateDate > maxDate)).SingleOrDefault();

                if (request == null)
                {
                    return(false);
                }

                var account = (await _accountRepo.FindAsync(x => x.AccountId == request.AccountId)).SingleOrDefault();

                if (request.Email != account.Email)
                {
                    await _logger.LogInfoAsync("ConfirmEmailCommand.ConfirmEmail", "Request email and account email are different", new
                    {
                        RequestEmail = request.Email,
                        AccountEmail = account.Email
                    });

                    return(false);
                }
                if (account.EmailStatus == EmailStatus.Confirmed)
                {
                    return(false);
                }

                //update account and save
                _accountRepo.UpdateOne(x => x.AccountId == account.AccountId, Builders <Account> .Update.Set(x => x.EmailStatus, EmailStatus.Confirmed));

                //update request and save
                var updDef = Builders <ConfirmEmailRequest> .Update.Set(x => x.Status, ConfirmEmailRequestStatus.Resolved)
                             .Set(x => x.ResolveDate, DateTime.Now);

                await _emailConfirmCollection.UpdateOneAsync(x => x.Id == request.Id, updDef);

                //log and return
                await _logger.LogEventAsync("ConfirmEmailCommand.ConfirmEmail", "Successfully confirmed", new
                {
                    CodeHashed          = codeHashed,
                    ConfirmEmailRequest = request
                });

                return(true);
            }
            catch (Exception ex)
            {
                await _logger.LogErrorAsync("ConfirmEmailCommand.ConfirmEmail", "Exception occurred", new
                {
                    Exception           = ex,
                    CodeHashed          = codeHashed,
                    ConfirmEmailRequest = request
                });

                throw;
            }
        }
Esempio n. 21
0
        public async Task <ActionResult> SendConfirmEmail([FromBody] ConfirmEmailRequest request)
        {
            await _authenticationService.SendConfirmEmailAsync(request);

            return(Ok());
        }