def handle(self, *args, **options): self.ldap = LdapController() self.ldap.connect(LDAP_HOSTNAME, LDAP_PORT, LDAP_BASE_SEARCH, LDAP_PROTOCOL) ldap_groups = list( itertools.chain.from_iterable( [group['cn'] for group in self.ldap.get_groups_all()])) groups_to_create = RtGroup.objects.find_groups_not_listed(ldap_groups) if groups_to_create: for group in groups_to_create: RtGroup.objects.create(name=group, type=USER_DEFINED) tmp_set_for_unique_usernames = set() for ldap_groupname in args: tmp_set_for_unique_usernames.update( self.ldap.get_groups_member(ldap_groupname)) ldap_username_list = list(tmp_set_for_unique_usernames) rt_users = RtUser.objects.filter(name__in=ldap_username_list) for user in rt_users: user_groups = self._get_groups_from_ldap_user(user) for group in RtGroupMember.objects.extra_ldap_groups( user, user_groups): RtGroupMember.objects.create( group=RtGroup.objects.get(name=group), member=user) RtGroupMember.objects.filter( group__in=RtGroupMember.objects.extra_rt_groups( user, user_groups), member=user).delete()
def setUp(self): mock_ldap = mock.MagicMock(simpleldap) self.module = LdapController(mock_ldap)