public async Task <ActionResult> Login(LoginViewModel model, string returnUrl) { if (ModelState.IsValid) { try { if (await _userRepository.AuthenticateAsync(model.UserName, model.Password)) { var user = _userRepository.GetByUserName(model.UserName); if (user != null) { SignIn(user, model.RememberMe); return(RedirectToLocal(returnUrl)); } } ModelState.AddModelError(string.Empty, Resources.Invalid_Username_Password); } catch (Exception) { ModelState.AddModelError(string.Empty, Resources.Invalid_Username_Password); } } return(View(model)); }
public ActionResult Save(UserFormViewModel model) { bool newUser = model.Id == Guid.Empty; try { if (ModelState.IsValid) { var user = new CcmUser { Id = model.Id, UserName = model.UserName.Trim(), FirstName = model.FirstName ?? string.Empty, LastName = model.LastName ?? string.Empty, Comment = model.Comment ?? string.Empty, RoleId = model.RoleId, Password = model.Password }; if (newUser) { if (_userRepository.GetByUserName(user.UserName) != null) { log.Warn("Can't create user. Username {0} already exists in CCM database", user.UserName); ModelState.AddModelError("SaveUser", Resources.User_Name_Already_Taken); } else { _userRepository.Create(user); return(RedirectToAction("Index")); } } else { _userRepository.Update(user); return(RedirectToAction("Index")); } } } catch (Exception ex) { log.Error(ex, "Could not save user"); ModelState.AddModelError("SaveUser", Resources.User_could_not_be_saved); } var userIsAdmin = User.IsInRole(Roles.Admin); model.Roles = GetRoles(userIsAdmin); ViewBag.Title = newUser ? Resources.New_User : Resources.Edit_User; return(View("CreateEdit", model)); }