Esempio n. 1
0
        public async Task <IActionResult> RequestPasswort(RequestPasswordViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            var user = _dbcontext.ChatUserModels.Where(cu => cu.ChatUserName.ToLower() == model.UserName.ToLower() || cu.UserName.ToLower() == model.UserName.ToLower()).FirstOrDefault();

            if (user != null)
            {
                var RemovePasswordResult = await _userManager.RemovePasswordAsync(user);

                if (RemovePasswordResult.Succeeded)
                {
                    string password          = user.GeneratePassword();
                    var    AddPasswordResult = await _userManager.AddPasswordAsync(user, password);

                    if (AddPasswordResult.Succeeded)
                    {
                        _eventBus.TriggerEvent(EventType.PasswordRequestReceived, new Args.PasswordRequestArgs {
                            UserName = user.ChatUserName, TempPassword = password
                        });
                    }
                }
            }
            return(RedirectToAction(nameof(Login)));
        }
Esempio n. 2
0
        public void RequestPassword_Post_Failure()
        {
            // arrange
            var mockAuthenticationService = new Mock <IAuthenticationService>();

            mockAuthenticationService
            .Setup(m => m.ResetPasswordRequest(It.Is <RequestPasswordRequest>(x => x.UserName == "XXX")))
            .Returns(new RequestPasswordResponse
            {
                Success = false,
                Message = "XXX"
            });

            var model = new RequestPasswordViewModel
            {
                UserName = "******"
            };

            var controller = new AccountController(null, mockAuthenticationService.Object, null);

            // act
            var result = controller.RequestPassword(model) as ViewResult;

            // assert
            Assert.IsNotNull(result);
            Assert.IsFalse(result.ViewData.ModelState.IsValid);
        }
 public NewPassword(RequestPasswordViewModel model)
 {
     InitializeComponent();
     App.Configuration.InitialAsync(this);
     NavigationPage.SetHasNavigationBar(this, false);
     _model                = model;
     BindingContext        = _model;
     _userPivotService     = DependencyService.Get <IUserPivotService>();
     _helper               = DependencyService.Get <IHelper>();
     buttonSubmit.Clicked += ButtonSubmit_Clicked;
 }
        public RequestPasswordPage()
        {
            InitializeComponent();
            App.Configuration.InitialAsync(this);
            NavigationPage.SetHasNavigationBar(this, false);
            _model                = new RequestPasswordViewModel();
            BindingContext        = _model;
            buttonSubmit.Clicked += ButtonSubmit_Clicked;
            _userPivotService     = DependencyService.Get <IUserPivotService>();
            _helper               = DependencyService.Get <IHelper>();
            var tapGotPassword = new TapGestureRecognizer()
            {
                Command = new Command(GoToLogin)
            };

            linkGotPassword.GestureRecognizers.Add(tapGotPassword);
        }
Esempio n. 5
0
        public async Task <IActionResult> RequestPassword(RequestPasswordViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var securityCode = await _localuserService
                               .InitiatePasswordResetRequest(model.Email);

            await _localuserService.SaveChangesAsync();

            //create an activation link
            var link = Url.ActionLink("ResetPassword", "PasswordReset", new { securityCode });

            Debug.WriteLine(link);

            return(View("PasswordResetRequestSent"));
        }
Esempio n. 6
0
        public ActionResult RequestPassword(RequestPasswordViewModel model)
        {
            if (this.ModelState.IsValid)
            {
                var request = new RequestPasswordRequest
                {
                    UserName = model.UserName,
                    Expires  = TimeSpan.FromHours(2)
                };

                var response = this.authenticationService.ResetPasswordRequest(request);
                if (response.Success)
                {
                    var message = new MessageRequest(response.Email)
                    {
                        Subject     = "You have requested to reset your password",
                        Message     = response.ResetPasswordToken,
                        FromAddress = Email.DoNotReply
                    };

                    var messageResponse = this.messageService.SendMessage(message);

                    if (messageResponse.Success)
                    {
                        this.TempData["SuccessMessage"] = response.Message;
                        return(this.RedirectToAction("Login"));
                    }
                    else
                    {
                        this.ModelState.AddModelError(string.Empty, response.Message);
                    }
                }
                else
                {
                    this.ModelState.AddModelError(string.Empty, response.Message);
                }
            }

            return(this.View());
        }
Esempio n. 7
0
        public void RequestPassword_Post_Success()
        {
            // arrange
            var mockAuthenticationService = new Mock <IAuthenticationService>();

            mockAuthenticationService
            .Setup(m => m.ResetPasswordRequest(It.Is <RequestPasswordRequest>(x => x.UserName == "XXX")))
            .Returns(new RequestPasswordResponse
            {
                Success = true,
                Message = "XXX"
            });

            var mockMessageService = new Mock <IMessageService>();

            mockMessageService
            .Setup(m => m.SendMessage(It.IsAny <MessageRequest>()))
            .Returns(new MessageResponse
            {
                Success = true
            });

            var model = new RequestPasswordViewModel
            {
                UserName = "******"
            };

            var controller = new AccountController(null, mockAuthenticationService.Object, mockMessageService.Object);

            // act
            var result = controller.RequestPassword(model) as RedirectToRouteResult;

            // assert
            Assert.IsNotNull(result);
            Assert.AreEqual("Login", result.RouteValues["action"]);
            Assert.IsNotNull(controller.TempData["SuccessMessage"]);
        }
        public void RequestPassword_Post()
        {
            // arrange
            var controller = new AccountController(null, null, null);
            var model = new RequestPasswordViewModel
            {

            };

            // act
            var result = controller.RequestPassword(model) as ViewResult;

            // assert
            Assert.IsNotNull(result);
        }
Esempio n. 9
0
        public ActionResult RequestPassword(RequestPasswordViewModel model)
        {
            if (this.ModelState.IsValid)
            {
                var request = new RequestPasswordRequest
                {
                    UserName = model.UserName,
                    Expires = TimeSpan.FromHours(2)
                };

                var response = this.authenticationService.ResetPasswordRequest(request);
                if (response.Status == StatusCode.OK)
                {
                    var message = new MessageRequest
                    {
                        //ToAddress = string.Empty,
                        Subject = "You have requested to reset your password",
                        Message = response.ResetPasswordToken
                    };
                    this.messageService.SendMessage(message);
                    this.TempData["SuccessMessage"] = "You have successfully requested a new password. You should receive an email presently with instructions on how to reset your password. If you do not receive an email within 15 minutes, please check that you have the correct user name and try again.";
                    return this.RedirectToAction("Login");
                }
            }

            return this.View();
        }
Esempio n. 10
0
        public IActionResult RequestPassword()
        {
            var vm = new RequestPasswordViewModel();

            return(View());
        }