(fix) fixed addressbrook-only source entires having a c_uid set

Conflicts:

	NEWS
	SoObjects/Contacts/SOGoContactSourceFolder.m
pull/101/head^2
Ludovic Marcotte 2015-11-06 13:33:36 -05:00
parent bdfe95a7fb
commit fc16d6ad90
2 changed files with 13 additions and 2 deletions

3
NEWS
View File

@ -30,6 +30,9 @@ Bug fixes
- handle emails having an attachment as their content
- fixed JavaScript syntax error in attendees editor
- fixed wrong comparison of meta vs. META tag in HTML mails
- fixed popup menu position when moved to the left (#3381)
- fixed dialog position when at the bottom of the window (#2646, #3378)
- fixed addressbrook-only source entires having a c_uid set
2.3.2 (2015-09-16)
------------------

View File

@ -47,6 +47,7 @@
#import <SOGo/NSObject+DAV.h>
#import <SOGo/SOGoPermissions.h>
#import <SOGo/SOGoSource.h>
#import <SOGo/SOGoUserManager.h>
#import <SOGo/SOGoUserSettings.h>
#import <SOGo/SOGoSystemDefaults.h>
#import <SOGo/WORequest+SOGo.h>
@ -230,8 +231,15 @@
NSObject <SOGoSource> *recordSource;
newRecord = [NSMutableDictionary dictionaryWithCapacity: 8];
[newRecord setObject: [oldRecord objectForKey: @"c_uid"]
forKey: @"c_uid"];
// We set the c_uid only for authentication sources. SOGoUserSources set
// with canAuthenticate = NO and isAddressBook = YES have absolutely *NO REASON*
// to have entries with a c_uid. These can collide with real uids.
if ([[[[SOGoUserManager sharedUserManager] metadataForSourceID: [source sourceID]] objectForKey: @"canAuthenticate"] boolValue])
{
[newRecord setObject: [oldRecord objectForKey: @"c_uid"]
forKey: @"c_uid"];
}
// c_name => id
[newRecord setObject: [oldRecord objectForKey: @"c_name"]