public async Task <ActionResult> ChangeEmail(SetEmailViewModel model) { if (!ModelState.IsValid) { return(PartialView(model)); } var result = await UserManager.SetEmailAsync(User.Identity.GetUserId <int>(), model.NewEmail); if (result.Succeeded) { var user = await UserManager.FindByIdAsync(User.Identity.GetUserId <int>()); if (user != null) { user.EmailConfirmed = false; await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); if (user.Email != null && user.Email.Any()) { string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); await UserManager.SendEmailAsync(user.Id, "Confirme su cuenta en Gesem", "<h1>Gesem</h1><p>Nombre de usuario: " + user.UserName + " <p>Por favor confirme su cuenta presionando <a href=\"" + callbackUrl + "\">aquí</a>"); } } return(JsonRedirectToAction("Index", "#Manage", new { Message = ManageMessageId.ChangeEmailSuccess })); } AddErrors(result); return(PartialView(model)); }
// // GET: /Manage/ChangeEmail public ActionResult ChangeEmail() { var user = UserManager.FindById(User.Identity.GetUserId <int>()); if (user != null) { var model = new SetEmailViewModel() { NewEmail = user.Email }; return(PartialView(model)); } return(PartialView()); }
public void It_redirects_to_twitter_when_twitter_creds_arent_complete() { // user is NOT NULL but also invalid creds. Probably backed out of a signup before mocker.Setup <IUserRepository>(x => x.GetByEmail("*****@*****.**")).Returns(new User()); mocker.Setup <ITwitterFactory>(x => x.GetAuthorizationUri()).Returns(new Uri("http://twitter")); var viewModel = new SetEmailViewModel { UserEmail = "*****@*****.**" }; Sut.Index(viewModel).ShouldBeType <RedirectResult>(); mocker.VerifyAll(); mocker.GetMock <IContext>().VerifySet(x => x.UserId); }
public void It_sets_email__saves_and_redirects_to_twitter() { mocker.Setup <IUserRepository>(x => x.Save(It.IsAny <User>())).Callback <User>(u => { u.Id = BsonObjectId.Empty; u.Email.ShouldEqual("*****@*****.**"); }); mocker.Setup <ITwitterFactory>(x => x.GetAuthorizationUri()).Returns(new Uri("http://twitter")); var viewModel = new SetEmailViewModel { UserEmail = "*****@*****.**" }; Sut.Index(viewModel).ShouldBeType <RedirectResult>(); mocker.VerifyAll(); mocker.GetMock <IContext>().VerifySet(x => x.UserId); }
public IActionResult UpdateEmail(SetEmailViewModel user) { if (!ModelState.IsValid) { return(View()); } try { User.SetEmail(user.Email); return(RedirectToAction("Info", "User")); } catch (SetFailedException ex) { ModelState.AddModelError("", ex.Message); return(View()); } }
public ActionResult Index(SetEmailViewModel model) { var user = userRepository.GetByEmail(model.UserEmail); if (user != null && user.AuthData.IsCompleted) { mailController.LoginEmail(user).Deliver(); return(View("PleaseCheckEmail")); } user = user ?? new User { Email = model.UserEmail }; userRepository.Save(user); context.UserId = user.Id; // 3. Then they are forwarded to Twitter to get authorization var uri = twitterFactory.GetAuthorizationUri(); return(RedirectPermanent(uri.ToString())); }
public virtual SaveResult SetEmail(SetEmailViewModel request) { try { if (request.UserId == 0) { return new SaveResult { Status = "error", Message = "Id is not valid!" } } ; if (UserManager.IsInRole(request.UserId, "Admin")) { return new SaveResult { Status = "error", Message = "User is admin!" } } ; RepositoryAspNetUsers repo = new RepositoryAspNetUsers(); AspNetUser user = repo.GetById(request.UserId); user.Email = request.NewEmail; repo.Update(user); return(new SaveResult { Status = "success" }); } catch (Exception ex) { return(new SaveResult { Status = "error", Message = ex.Message }); } }
public async Task <ActionResult> ChangeEmail(SetEmailViewModel model) { if (ModelState.IsValid) { var user = await UserManager.FindByIdAsync(User.Identity.GetUserId <int>()); if (user != null) { if (user.Email != model.EmailActuel) { ModelState.AddModelError("EmailActuel", "L'email actuel n'est pas correct"); } else { //Mettre à jour l'email et le username dans les tables AspNetIdentity (Email = UserName) user.Email = model.NouvelEmail; user.UserName = model.NouvelEmail; var result = await UserManager.UpdateAsync(user); if (result.Succeeded) { //Récupérer le role de l'utilisateur connecté (Client ou Vendeur) pour pouvoir mettre à jour la table JC_CUSTOMER ou JC_SELLER var roles = await UserManager.GetRolesAsync(user.Id); if (roles != null) { if (roles[0] == "Client") { using (var client = new HttpClient()) { //Passing service base url client.BaseAddress = new Uri(Baseurl); var response = client.PutAsJsonAsync("api/customer/UpdateEmail/" + user.Id, model.NouvelEmail).Result; if (response.IsSuccessStatusCode) { return(RedirectToAction("Index")); } } } } else { if (roles[0] == "Vendeur") { //Mettre jour l'email du vendeur sur la table JC_SELLER via l'api using (var client = new HttpClient()) { //Passing service base url client.BaseAddress = new Uri(Baseurl); var response = client.PutAsJsonAsync("api/seller/UpdateEmail/" + user.Id, model.NouvelEmail).Result; if (response.IsSuccessStatusCode) { return(RedirectToAction("Index")); } } } } } else { return(RedirectToAction("Index", new { Message = ManageMessageId.Error })); } } } } return(View(model)); }