--- a/ucs/management/univention-directory-manager-modules/modules/univention/admin/handlers/__init__.py +++ b/ucs/management/univention-directory-manager-modules/modules/univention/admin/handlers/__init__.py @@ -2001,12 +2001,12 @@ class simpleComputer( simpleLdap ): univention.admin.allocators.release( self.lo, self.position, 'aRecord', ipAddress ) # remove computer from groups - for group in self['groups']: - groupObject=univention.admin.objects.get(univention.admin.modules.get('groups/group'), self.co, self.lo, self.position, group) - groupObject.open() - if self.dn in groupObject['hosts']: - groupObject['hosts'].remove(self.dn) - groupObject.modify(ignore_license=1) + groups = copy.deepcopy(self['groups']) + if self.oldinfo.get('primaryGroup'): + groups.append( self.oldinfo.get('primaryGroup') ) + for group in groups: + groupObject = univention.admin.objects.get(univention.admin.modules.get('groups/group'), self.co, self.lo, self.position, group) + groupObject.fast_member_remove( [ self.dn ], self.oldattr.get('uid',[]), ignore_license=1 ) def update_groups(self): if not self.hasChanged('groups') and \ --- a/ucs/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/domaincontroller_backup.py +++ b/ucs/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/domaincontroller_backup.py @@ -450,7 +450,7 @@ class object(univention.admin.handlers.simpleComputer, nagios.Support): res=univention.admin.config.getDefaultValue(self.lo, 'univentionDefaultDomainControllerMasterGroup', position=self.position) if res: self['primaryGroup']=res - self.save() + #self.save() --- a/ucs/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/domaincontroller_master.py +++ b/ucs/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/domaincontroller_master.py @@ -448,7 +448,7 @@ class object(univention.admin.handlers.simpleComputer, nagios.Support): res=univention.admin.config.getDefaultValue(self.lo, 'univentionDefaultDomainControllerMasterGroup', position=self.position) if res: self['primaryGroup']=res - self.save() + #self.save() --- a/ucs/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/domaincontroller_slave.py +++ b/ucs/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/domaincontroller_slave.py @@ -450,7 +450,7 @@ class object(univention.admin.handlers.simpleComputer, nagios.Support): res=univention.admin.config.getDefaultValue(self.lo, 'univentionDefaultDomainControllerGroup', position=self.position) if res: self['primaryGroup']=res - self.save() + #self.save() --- a/ucs/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/macos.py +++ b/ucs/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/macos.py @@ -361,7 +361,7 @@ class object(univention.admin.handlers.simpleComputer, nagios.Support): self['primaryGroup']=res - self.save() +# self.save() def exists(self): return self._exists --- a/ucs/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/managedclient.py +++ b/ucs/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/managedclient.py @@ -415,7 +415,7 @@ class object(univention.admin.handlers.simpleComputer, nagios.Support): self['primaryGroup']=res - self.save() +# self.save() def exists(self): return self._exists --- a/ucs/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/memberserver.py +++ b/ucs/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/memberserver.py @@ -440,7 +440,7 @@ class object(univention.admin.handlers.simpleComputer, nagios.Support): res=univention.admin.config.getDefaultValue(self.lo, 'univentionDefaultMemberserverGroup', position=self.position) if res: self['primaryGroup']=res - self.save() + #self.save() def exists(self): --- a/ucs/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/mobileclient.py +++ b/ucs/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/mobileclient.py @@ -412,7 +412,7 @@ class object(univention.admin.handlers.simpleComputer, nagios.Support): self['primaryGroup']=res - self.save() +# self.save() def exists(self): return self._exists