Esempio n. 1
0
        public DtoApiBoolResponse AddToFirstRunGroup()
        {
            var clientGuid = RequestContext.Principal.Identity.Name;
            var client     = new ServiceComputer().GetByGuid(clientGuid);

            if (client == null)
            {
                return new DtoApiBoolResponse()
                       {
                           Value = false
                       }
            }
            ;
            var membership = new EntityGroupMembership();

            membership.ComputerId = client.Id;
            membership.GroupId    = -2;

            new ServiceGroupMembership().AddMembership(new List <EntityGroupMembership>()
            {
                membership
            });
            return(new DtoApiBoolResponse()
            {
                Value = true
            });
        }
Esempio n. 2
0
        private void AddComputerToToemsGroup(EntityComputer computer)
        {
            if (string.IsNullOrEmpty(ServiceSetting.GetSettingValue(SettingStrings.NewProvisionDefaultGroup)))
            {
                Logger.Debug("New Provision default group is not enabled.  Skipping");
                return;
            }

            var group = _groupService.GetGroupByName(ServiceSetting.GetSettingValue(SettingStrings.NewProvisionDefaultGroup));

            if (group == null)
            {
                return;
            }

            if (group.Type.Equals("Dynamic"))
            {
                return;
            }

            var groupMembership = new EntityGroupMembership();

            groupMembership.ComputerId = computer.Id;
            groupMembership.GroupId    = group.Id;
            _groupMemberships.Add(groupMembership);
            _groupMembershipService.AddMembership(_groupMemberships);
        }
        private bool Update(int groupId)
        {
            var queries = _groupService.GetDynamicQuery(groupId);
            var members = _groupService.GetDynamicMembers(queries);

            if (members == null)
            {
                _uow.GroupMembershipRepository.DeleteRange(x => x.GroupId == groupId);
                _uow.Save();
                return(true);
            }

            var membershipList = new List <EntityGroupMembership>();

            foreach (DataTable table in members.Tables)
            {
                if (table.Rows.Count == 0)
                {
                    _uow.GroupMembershipRepository.DeleteRange(x => x.GroupId == groupId);
                    _uow.Save();
                    return(true);
                }
                foreach (DataRow row in table.Rows)
                {
                    var membership = new EntityGroupMembership();
                    var computerId = row["computer_id"];
                    membership.ComputerId = Convert.ToInt32(computerId);
                    membership.GroupId    = groupId;
                    membershipList.Add(membership);
                }
            }

            //Delete members that no longer belong
            var existingMembers = _groupService.GetGroupMembers(groupId);

            foreach (var existingMember in existingMembers)
            {
                if (membershipList.All(x => x.ComputerId != existingMember.Id))
                {
                    _uow.GroupMembershipRepository.DeleteRange(x => x.ComputerId == existingMember.Id && x.GroupId == groupId);
                }
                _uow.Save();
            }

            //add the new members
            var result = new ServiceGroupMembership().AddMembership(membershipList);

            if (result != null)
            {
                if (result.Success)
                {
                    return(true);
                }
            }

            return(false);
        }
Esempio n. 4
0
        private void CreateMembershipList(EntityComputer computer, string dn)
        {
            if (dn == _baseDn)
            {
                return;
            }
            var parentOu      = dn.Substring(dn.IndexOf(",", StringComparison.Ordinal) + 1);
            var parentOuGroup = _groupService.GetGroupByDn(parentOu);

            if (parentOuGroup == null)
            {
                return;
            }
            if (parentOuGroup.Id < 1)
            {
                return;
            }
            var groupMembership = new EntityGroupMembership();

            groupMembership.ComputerId = computer.Id;
            groupMembership.GroupId    = parentOuGroup.Id;
            _groupMemberships.Add(groupMembership);
            CreateMembershipList(computer, parentOu);
        }