|
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 |
|