Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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!"
            });
        }
Esempio n. 3
0
        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"]));
        }
Esempio n. 4
0
 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);
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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);
        }