public virtual async Task <ActionResult> ResetPassword(ResetPasswordViewModel model) { if (!model.Password.IsSafePasword()) { this.AddErrors("Password", "این کلمه عبور به راحتی قابل تشخیص است"); } if (!ModelState.IsValid) { return(View(model)); } var user = await _userService.FindByNameAsync(model.Email.ToLower()); if (user == null) { // Don't reveal that the user does not exist return(RedirectToAction(MVC.Account.ActionNames.ResetPasswordConfirmation, MVC.Account.Name)); } var result = await _userService.ResetPasswordAsync(user.Id, model.Code, model.Password); if (result.Succeeded) { await _signInManager.SignInAsync(user, false, false); return(RedirectToAction(MVC.Account.ActionNames.ResetPasswordConfirmation, MVC.Account.Name)); } this.AddErrors(result); ControllerExtentions.NotyError(this, ControllerExtentions.GetListOfErrors(ModelState)); return(View(model)); }
public virtual async Task <ActionResult> ConfirmEmail(long?userId, string code) { //if(enable confirm email feature then show confirm page) //return view("info") if (userId == null || code == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var result = await _userService.ConfirmEmailAsync(userId.Value, code); if (result.Succeeded) { return(RedirectToAction(MVC.Account.Login())); } ControllerExtentions.NotyWarning(this, "مشکلی در فعال سازی اکانت شما به وجود آمد"); return(RedirectToAction(MVC.Account.ReceiveActivatorEmail())); }
public virtual async Task <ActionResult> ReceiveActivatorEmail(ActivationEmailViewModel viewModel) { if (!_userService.IsEmailAvailableForConfirm(viewModel.Email)) { this.AddErrors("Email", "ایمیل مورد نظر یافت نشد"); } if (_userService.CheckIsUserBannedOrDeleteByEmail(viewModel.Email)) { this.AddErrors("Email", "اکانت شما مسدود شده است"); } if (!ModelState.IsValid) { return(View(viewModel)); } var user = await _userService.FindByEmailAsync(viewModel.Email); //send confirmation email ControllerExtentions.NotySuccess(this, "ایمیلی تحت عنوان فعال سازی اکانت به آدرس ایمیل شما ارسال گردید"); return(RedirectToAction(MVC.Account.ActionNames.ReceiveActivatorEmail, MVC.Account.Name)); }
public virtual async Task <ActionResult> Register(RegisterViewModel model) { #region Validation if (_userService.CheckEmailExist(model.Email, null)) { this.AddErrors("Email", "این ایمیل قبلا در سیستم ثبت شده است"); } if (!model.Password.IsSafePasword()) { this.AddErrors("Password", "این کلمه عبور به راحتی قابل تشخیص است"); } if (_userService.CheckNameForShowExist(model.NameForShow, null)) { this.AddErrors("NameForShow", "این نام نمایشی قبلا در سیستم ثبت شده است"); } if (_userService.CheckPhoneNumberExist(model.PhoneNumber, null)) { this.AddErrors("PhoneNumber", "این شماره همراه قبلا در سیستم ثبت شده است"); } if (!ModelState.IsValid) { return(View(model)); } #endregion SendEmail var userId = await _userService.Register(model); var code = await _userService.GenerateEmailConfirmationTokenAsync(userId); var callbackUrl = Url.Action(MVC.Account.ConfirmEmail(userId, code), protocol: Request.Url.Scheme); // await _userService.SendEmailAsync(userId, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>"); ControllerExtentions.NotySuccess(this, "حساب کاربری شما با موفقیت ایجاد شد. برای فعال سازی " + "حساب خود به صندوق پستی خود مراجعه کنید", isSticky: true); return(RedirectToAction(MVC.Account.ConfirmEmailPage(callbackUrl))); }