public int Handle(EasyADGroup group) { _repo.SaveOrUpdate(group); _repo.DeleteGroupUsers(group.Id); var groupUsers = _groupManager.GetUsersInGroup(group.Name); foreach (var groupUser in groupUsers) { var backofficeUser = _userService.GetByUsername(groupUser.Login); if (backofficeUser == null) { // create the backoffice user backofficeUser = _userService.CreateUserWithIdentity(groupUser.Login, groupUser.Email, _userService.GetUserTypeById(group.UserType)); } backofficeUser.Name = groupUser.DiplayName; _repo.AddUserToGroup(group.Id, backofficeUser.Id); var groupsUserIsIn = _repo.GetGroupsForUser(backofficeUser.Id).ToList(); ConfigureUserRights(backofficeUser, groupsUserIsIn); } return(group.Id); }
public GroupSaveViewModel PostSave(EasyADGroup group) { var groupManager = ManagerFactory.GetManager(); string message = ""; if (!ValidateGroup(group.Name, groupManager, ref message)) { return(FailedSave(message)); } if (!ValidUserType(group.UserType)) { return(FailedSave("Invalid User Type!")); } if (!ValidateSections(group.Sections, ref message)) { return(FailedSave(message)); } var repo = new EasyADRepository(DatabaseContext.Database, DatabaseContext.SqlSyntax); var handler = new SaveGroupHandler(repo, groupManager, Services.UserService); var groupId = handler.Handle(group); return(new GroupSaveViewModel { GroupId = groupId, Success = true, Message = "Group created!" }); }
public void TestSaveGroupHandler() { //Arrange var handler = new SaveGroupHandler(Repo, Manager, Services.UserService); var groupName = "AD-Editors"; Manager.AddUsers(groupName, new EasyADUser { Login = "******", DiplayName = "User A", Email = "usera@local" } ); var group = new EasyADGroup { Name = groupName, UserType = AllUserTypes["Editors"], Sections = string.Join(";", AllSections["Content"], AllSections["Media"]) }; //Act handler.Handle(group); var groups = Repo.GetAll(); var user = Services.UserService.GetByUsername("userA"); //Assert Assert.AreEqual(1, groups.Count()); Assert.AreEqual(groupName, groups.First().Name); Assert.IsNotNull(user); Assert.AreEqual("User A", user.Name); Assert.AreEqual("usera@local", user.Email); Assert.AreEqual(group.UserType, user.UserType.Id); Assert.AreEqual(2, user.AllowedSections.Count()); Assert.IsTrue(user.AllowedSections.Contains(AllSections["Content"])); Assert.IsTrue(user.AllowedSections.Contains(AllSections["Media"])); }
public void SaveOrUpdate(EasyADGroup group) { if (group.Id > 0) { _database.Update(group); } else { _database.Save(group); } }
public void Resolve_OneType() { //Arrange var group1 = new EasyADGroup { Id = 1, Name = "Group A", Sections = "content;media;", UserType = 1 }; var groups = new List <EasyADGroup> { group1 }; var expected = 1; //Act var actual = UserTypeResolver.Resolve(groups, _allUserTypes).Id; //Assert Assert.AreEqual(expected, actual); }
public void Resolve_OneGroup() { //Arrange var group1 = new EasyADGroup { Id = 1, Name = "Group A", Sections = "content;media;", UserType = 1 }; var groups = new List <EasyADGroup> { group1 }; var expected = new[] { "content", "media" }; //Act var actual = SectionResolver.Resolve(groups); //Assert Assert.AreEqual(2, actual.Length); }
public void Resolve_TwoGroups() { //Arrange var group1 = new EasyADGroup { Id = 1, Name = "Group A", Sections = "content;media;", UserType = 1 }; var group2 = new EasyADGroup { Id = 2, Name = "Group B", Sections = "translation;", UserType = 3 }; var groups = new List <EasyADGroup> { group1, group2 }; var expected = new[] { "content", "media", "translation" }; //Act var actual = SectionResolver.Resolve(groups); //Assert Assert.AreEqual(3, actual.Length); Assert.IsTrue(expected.All(e => actual.Contains(e))); }
public void Resolve_MultipleGroups() { //Arrange var group1 = new EasyADGroup { Id = 1, Name = "Group A", Sections = "content;media;", UserType = 1 }; var group2 = new EasyADGroup { Id = 2, Name = "Group B", Sections = "translation;", UserType = 3 }; var group3 = new EasyADGroup { Id = 3, Name = "Group B", Sections = "content;media;users;members;", UserType = 2 }; var groups = new List <EasyADGroup> { group1, group2, group3 }; var expected = 2; //Act var actual = UserTypeResolver.Resolve(groups, _allUserTypes).Id; //Assert Assert.AreEqual(expected, actual); }