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