diff --git a/ChangeLog b/ChangeLog index ad92d7c78..62fa79aac 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,6 +2,8 @@ * SoObjects/SOGo/LDAPUserManager.m ([LDAPUserManager -contactInfosForUserWithUIDorEmail:uid]): check that uid is not empty. + ([LDAPUserManager -_fillContactMailRecords:contact]): if the + system email is already present, remove it before adding it. * SoObjects/SOGo/LDAPSource.m ([LDAPSource -checkLogin:loginToCheckandPassword:passwordToCheck]): check that diff --git a/SoObjects/SOGo/LDAPUserManager.m b/SoObjects/SOGo/LDAPUserManager.m index 66b193564..6b0379d1e 100644 --- a/SoObjects/SOGo/LDAPUserManager.m +++ b/SoObjects/SOGo/LDAPUserManager.m @@ -265,12 +265,14 @@ static NSString *defaultMailDomain = nil; - (void) _fillContactMailRecords: (NSMutableDictionary *) contact { NSMutableArray *emails; - NSString *uid; + NSString *uid, *systemEmail; emails = [contact objectForKey: @"emails"]; uid = [contact objectForKey: @"c_uid"]; - [emails addObject: - [NSString stringWithFormat: @"%@@%@", uid, defaultMailDomain]]; + systemEmail = [NSString stringWithFormat: @"%@@%@", uid, defaultMailDomain]; + if ([emails containsObject: systemEmail]) + [emails removeObject: systemEmail]; + [emails addObject: systemEmail]; [contact setObject: [emails objectAtIndex: 0] forKey: @"c_email"]; }