Lines 772-792
def __update_membership(self):
|
Link Here
|
---|
|
772 |
# rewrite membership attributes in "supergroup" if we have a new name (rename) |
772 |
# rewrite membership attributes in "supergroup" if we have a new name (rename) |
773 |
if old_name and old_name != new_name: |
773 |
if old_name and old_name != new_name: |
774 |
univention.debug.debug(univention.debug.ADMIN, univention.debug.INFO, 'groups/group: rewrite memberuid after rename') |
774 |
univention.debug.debug(univention.debug.ADMIN, univention.debug.INFO, 'groups/group: rewrite memberuid after rename') |
775 |
ldapdn = ldap.dn.str2dn(self.dn) |
775 |
# ldapdn = ldap.dn.str2dn(self.old_dn) |
776 |
newldaprdn = [] |
776 |
# newldaprdn = [] |
777 |
for attr, val, ava_type in ldapdn[0]: |
777 |
# for attr, val, ava_type in ldapdn[0]: |
778 |
if attr.lower() == 'cn' and val.lower() == new_name.lower(): |
778 |
# if attr.lower() == 'cn' and val.lower() == new_name.lower(): |
779 |
val = new_name |
779 |
# val = new_name |
780 |
newldaprdn.append((attr, new_name, ava_type)) |
780 |
# newldaprdn.append((attr, new_name, ava_type)) |
781 |
ldapdn[0] = newldaprdn |
781 |
# ldapdn[0] = newldaprdn |
782 |
newdn = ldap.dn.dn2str(ldapdn) |
782 |
# newdn = ldap.dn.dn2str(ldapdn) |
783 |
for group in self.info.get('memberOf', []): |
783 |
for group in self.info.get('memberOf', []): |
784 |
if isinstance(group, type([])): |
784 |
if isinstance(group, list): |
785 |
group = group[0] |
785 |
group = group[0] |
786 |
members = self.lo.getAttr(group, 'uniqueMember') |
786 |
members = self.lo.getAttr(group, 'uniqueMember') |
787 |
newmembers = copy.deepcopy(members) |
787 |
newmembers = copy.deepcopy(members) |
788 |
newmembers = self.__case_insensitive_remove_from_list(self.dn, newmembers) |
788 |
newmembers = self.__case_insensitive_remove_from_list(self.old_dn, newmembers) |
789 |
newmembers.append(newdn) |
789 |
newmembers.append(self.dn) |
790 |
self.__set_membership_attributes(group, members, newmembers) |
790 |
self.__set_membership_attributes(group, members, newmembers) |
791 |
|
791 |
|
792 |
add_to_group = [] |
792 |
add_to_group = [] |
Lines 815-824
def __update_membership(self):
|
Link Here
|
---|
|
815 |
if isinstance(group, list): |
815 |
if isinstance(group, list): |
816 |
group = group[0] |
816 |
group = group[0] |
817 |
members = self.lo.getAttr(group, 'uniqueMember') |
817 |
members = self.lo.getAttr(group, 'uniqueMember') |
818 |
if not self.__case_insensitive_in_list(self.dn, members): |
818 |
if not self.__case_insensitive_in_list(self.dn, members) and not self.__case_insensitive_in_list(self.old_dn, members): |
819 |
continue |
819 |
continue |
820 |
newmembers = copy.deepcopy(members) |
820 |
newmembers = copy.deepcopy(members) |
821 |
newmembers = self.__case_insensitive_remove_from_list(self.dn, newmembers) |
821 |
newmembers = self.__case_insensitive_remove_from_list(self.dn, newmembers) |
|
|
822 |
newmembers = self.__case_insensitive_remove_from_list(self.old_dn, newmembers) |
822 |
univention.debug.debug(univention.debug.ADMIN, univention.debug.INFO, 'groups/group: remove from supergroup %s' % group) |
823 |
univention.debug.debug(univention.debug.ADMIN, univention.debug.INFO, 'groups/group: remove from supergroup %s' % group) |
823 |
self.__set_membership_attributes(group, members, newmembers) |
824 |
self.__set_membership_attributes(group, members, newmembers) |
824 |
|
825 |
|