public ViewResult EditPassword(FormCollection collection) { string oldPassword = collection["oldPassword"]; if (oldPassword.IsNullOrEmpty()) { ModelState.AddModelError("oldPassword", "Введите старый пароль."); } else if (!UsersUtility.CheckPassword(Utility.Users.CurrentUser, oldPassword)) { ModelState.AddModelError("oldPassword", "Пароль неверный."); } if (TrySetNewPassword(Utility.Authentication.UserId, collection)) { ViewData.Add("message", "Пароль успешно изменен."); } ViewData.Model = Utility.Users.CurrentUser; // Отображаем ошибки return(View("EditPassword")); }
public ActionResult Register(string id, string returnUrl, FormCollection collection) { string password = collection["password"]; string confirmPassword = collection["confirmPassword"]; string email = collection["email"].Trim(); // во время обычной регистрации имейл это логин TimeSpan offset = TimeSpan.FromMinutes(collection["timezone"].ToInt()); try { #region Валидация if (password.IsNullOrEmpty()) { ModelState.AddModelError("password", "Введите пароль."); } if (email.IsNullOrEmpty()) { ModelState.AddModelError("email", "Введите email."); } if (!email.IsValidEmail()) { ModelState.AddModelError("email", "Введите правильный email."); } if (password != confirmPassword) { ModelState.AddModelError("confirmPassword", "Повторите пароль правильно."); } // Пользователь регестрируется через имейл, по этому он является логином IUser oldUser = Utility.Users.Get(email); if (oldUser != null) { ViewData.Add("email", email); ModelState.AddModelError("email", "Пользователь уже зарегестрирован."); // на всякий случай высылаем повторно конфирм, если пользователь решил ввести данные повторно if (!oldUser.IsConfirmed && UsersUtility.CheckPassword(oldUser, password)) { MailsManager.SendConfirmEmail(oldUser); } } #endregion if (ModelState.IsValid) { string nick = email.Split('@')[0]; try { Utility.Users.Add( nick, password, email, offset, id, // Код инвайта RegistrationType.Default); } catch (TariffException exception) { return(Message(exception.Message)); } if (returnUrl.IsNullOrEmpty()) { return(View("Registration")); } return(Redirect(returnUrl)); } ViewData.Model = GetTimeZones(); return(View()); } catch { Utility.Users.Delete(email); throw; } }
public ActionResult Login(string id, string login, string password, bool rememberme, string returnUrl) { string inviteCode = id; if (login.IsNullOrEmpty()) { ModelState.AddModelError("login", "Введите логин."); } if (password.IsNullOrEmpty()) { ModelState.AddModelError("password", "Введите пароль."); } if (ModelState.IsValid) { IUser user = Utility.Users.Get(login); if (user != null) { if (UsersUtility.CheckPassword(user, password)) { if (user.IsConfirmed) { Utility.Authentication.SignIn(user.Id, rememberme); if (!inviteCode.IsNullOrEmpty()) { IOrganization organization = Utility.Organizations.GetByInviteCode(inviteCode); try { Utility.Organizations.AddUser(organization, user); } catch (TariffException exception) { return(Message(exception.Message)); } } if (!returnUrl.IsNullOrEmpty()) { return(Redirect(returnUrl)); } return(RedirectToAction("index", "boards")); } ModelState.AddModelError("login", "Регистрация не подтверждена. Проверьте почту для получения инструкций."); } else { ModelState.AddModelError("password", "Пароль неверный."); } } else { ModelState.AddModelError("login", "Пользователя не существует."); } } return(View()); }