View | Details | Raw Unified | Return to bug 12644
Collapse All | Expand All

(-)univention-directory-manager-modules/modules/univention/admin/handlers/groups/group.py (-2 / +13 lines)
 Lines 388-395    Link Here 
388
		if old != new:
388
		if old != new:
389
			ml.append( ( 'uniqueMember', old, new ) )
389
			ml.append( ( 'uniqueMember', old, new ) )
390
			uids = self.lo.getAttr( self.dn, 'memberUid' )
390
			uids = self.lo.getAttr( self.dn, 'memberUid' )
391
			new = map( lambda x: x[ x.find( '=' ) + 1 : x.find( ',' ) ], new )
391
			new_uids = []
392
			ml.append( ( 'memberUid', uids, new ) )
392
			for member in new:
393
				if member.startswith('uid='): # UID is stored in DN --> use UID directly
394
					new_uids.append( member[ member.find('=') + 1 : member.find(',') ] ) # string between first '=' and first ','
395
				else: # UID is not stored in DN --> fetch UID by DN
396
					uid_list = self.lo.getAttr(member, 'uid')
397
					if len(uid_list) == 0:
398
						univention.debug.debug(univention.debug.ADMIN, univention.debug.ERROR, 'groups/group: A groupmember has no UID (%s)' % member)
399
					else:
400
						new_uids.append(uid_list[0])
401
						if len(uid_list) > 1:
402
							univention.debug.debug(univention.debug.ADMIN, univention.debug.WARN, 'groups/group: A groupmember has multiple UIDs (%s %s)' % (member, str(uid_list)))
403
			ml.append( ( 'memberUid', uids, new_uids ) )
393
		return ml
404
		return ml
394
405
395
	def _ldap_post_create(self):
406
	def _ldap_post_create(self):

Return to bug 12644