Beispiel #1
0
        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));
        }
Beispiel #2
0
        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()));
        }
Beispiel #3
0
        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));
        }
Beispiel #4
0
        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)));
        }