public void Crud() { var user = new CcmUser { UserName = $"User{DateTime.Now:yyyyMMddHHmmss}", FirstName = "Förnamn", LastName = "Efternamn", Password = "******", Comment = "Testanvändare" }; var createResult = _sut.Create(user); Assert.IsTrue(createResult); var user2 = _sut.GetById(user.Id); Assert.AreEqual("Förnamn", user2.FirstName); Assert.AreEqual("Efternamn", user2.LastName); Assert.AreEqual("Testanvändare", user2.Comment); Assert.AreEqual(user.UserName, user2.UserName); user2.FirstName = "Alvar"; user2.LastName = "Dysterkvist"; var updateResult = _sut.Update(user2); Assert.IsTrue(updateResult); var user3 = _sut.GetById(user2.Id); Assert.AreEqual("Alvar", user3.FirstName); Assert.AreEqual("Dysterkvist", user3.LastName); var deleteResult = _sut.Delete(user3.Id); Assert.IsTrue(deleteResult); var user4 = _sut.GetById(user3.Id); Assert.IsNull(user4); }
public void Update(CcmUser user, bool currentUserLocalAdmin = false) { var existingUser = _userRepository.GetUser(user.Id); // Endast lokal admin får tilldela admin-rollen var adminId = _roleRepository.GetRoleIdByName(ApplicationConstants.Admin).ToString(); if (user.RoleId == adminId && existingUser.RoleId != adminId && !currentUserLocalAdmin) { throw new Exception("Endast Root-användaren får sätta Admin-rollen."); } if (existingUser.UserName != user.UserName) { if (!_radiusUserRepository.ChangeUserName(existingUser.RadiusId, user.UserName)) { throw new Exception("Unable to change username"); } } _userRepository.Update(user, currentUserLocalAdmin); }
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)); }