예제 #1
0
        public async Task <IActionResult> Index(User user)
        {
            user.Role = Roles.Customer;
            Match matchPhone    = Regex.Match(user.Phone, @"(^\+38[0-9]{10}$|^[0-9]{10}$|^38[0-9]{10}$)");
            Match matchName     = Regex.Match(user.Name, @"\S{3,20}$");
            Match matchLastName = Regex.Match(user.LastName, @"\S{3,20}$");
            Match matchEmail    = Regex.Match(user.Email, @".@gmail\.com$|.@mail\.ru$");
            Match matchPassword = Regex.Match(user.Password, @"([0-9a-zA-Z]{6,})");

            if (matchPhone.Success && matchName.Success && matchEmail.Success && matchPassword.Success && matchLastName.Success)
            {
                if (userRep.GetUserByEmail(user.Email) == null)
                {
                    cryptoService = new CryptoService(appOptions);
                    user.Password = cryptoService.Encrypt(user.Password);
                    user.Token    = Guid.NewGuid().ToString();
                    await userRep.AddUserAsync(user);

                    emailService.Send(user.Email, user.Token, "Registration/ConfirmEmail", "Для подтверждения перейдите по ссылке", "Подтверждениe почтового адреса");
                    return(RedirectToAction("VariousInf", new { inf = "Вы успешно зарегистрированы,пожалуйста подтвердите почтовый адрес" }));
                }
                else
                {
                    ViewBag.Message = "Вы уже зарегистрированы";
                }
            }
            else
            {
                ViewBag.Message = "Не правильный ввод данных!";
            }

            return(View(user));
        }
예제 #2
0
        public async Task <IActionResult> ForgotPassword(User userToUpdate)
        {
            var _user = userRep.GetUserByEmail(userToUpdate.Email);

            if (_user == null && _user.ConfirmEmail == false)
            {
                return(RedirectToAction("ForgotPassword", new { message = $"Пользователь с почтовым адресом {userToUpdate.Email} не зарегистрирован" }));
            }

            cryptoService = new CryptoService(appOptions);
            _user.Token   = Guid.NewGuid().ToString();
            await userRep.UpdateUserAsync(_user);

            emailService.Send(_user.Email, _user.Token, "User/AllowResetPassword", "Для сброса пароля перейдите по ссылке", "Сброс пароя");
            ViewBag.message = "Письмо отправлено,проверьте вашу почту";
            return(View("ForgotPasswordConfirmation"));
        }
        public ActionResult Index(User user)
        {
            var _user = userRep.GetUserByEmail(user.Email);

            CryptoService cryptoService = new CryptoService(applicationOption);

            user.Password = cryptoService.Encrypt(user.Password);

            if (_user != null)
            {
                if (_user.Role == Roles.Admin && _user.Password == user.Password)
                {
                    servicesUser.SetUser(_user);
                    return(RedirectToAction("List", "Products"));
                }

                if (_user.Password == user.Password)
                {
                    if (_user.ConfirmEmail == true)
                    {
                        servicesUser.SetUser(_user);
                        return(RedirectToAction("List", "Products"));
                    }
                    else
                    {
                        ViewBag.Message = "Подтвердите ваш почтовый адрес";
                    }
                }
                else
                {
                    ViewBag.Message = "Неправильный логин или пароль";
                }
            }
            else
            {
                ViewBag.Message = "Пользователь не найден";
            }

            return(View(user));
        }