mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-02-23 02:16:23 +00:00
fix(addressbook): Remove vlist from dav request for Thunderbird only. In Thunderbird 115, using vlist results in contact duplication
This commit is contained in:
@@ -709,7 +709,7 @@ static NSArray *childRecordFields = nil;
|
||||
{
|
||||
NSArray *records, *names;
|
||||
NSString *sqlFilter, *compFilter;
|
||||
EOQualifier *aclQualifier, *componentQualifier, *qualifier;
|
||||
EOQualifier *aclQualifier, *componentQualifier, *qualifier, *vlistExclusionQualifier;
|
||||
|
||||
sqlFilter = [self aclSQLListingFilter];
|
||||
if (sqlFilter)
|
||||
@@ -738,8 +738,18 @@ static NSArray *childRecordFields = nil;
|
||||
else
|
||||
qualifier = aclQualifier;
|
||||
|
||||
// For Thunderbird, disable contact list
|
||||
if ([[context request] isThunderbird]) {
|
||||
vlistExclusionQualifier = [EOQualifier qualifierWithQualifierFormat: @"c_component != 'vlist'"];
|
||||
qualifier = [[[EOAndQualifier alloc] initWithQualifiers:
|
||||
vlistExclusionQualifier,
|
||||
qualifier,
|
||||
nil] autorelease];
|
||||
}
|
||||
|
||||
records = [[self ocsFolder] fetchFields: childRecordFields
|
||||
matchingQualifier: qualifier];
|
||||
|
||||
if (![records isNotNull])
|
||||
{
|
||||
[self errorWithFormat: @"(%s): fetch failed!", __PRETTY_FUNCTION__];
|
||||
@@ -1176,9 +1186,19 @@ static NSArray *childRecordFields = nil;
|
||||
{
|
||||
GCSFolder *folder;
|
||||
EOFetchSpecification *fetchSpec;
|
||||
EOQualifier *vlistExclusionQualifier;
|
||||
|
||||
folder = [self ocsFolder];
|
||||
|
||||
// For Thunderbird, disable contact list
|
||||
if ([[context request] isThunderbird]) {
|
||||
vlistExclusionQualifier = [EOQualifier qualifierWithQualifierFormat: @"c_component != 'vlist'"];
|
||||
qualifier = [[[EOAndQualifier alloc] initWithQualifiers:
|
||||
vlistExclusionQualifier,
|
||||
qualifier,
|
||||
nil] autorelease];
|
||||
}
|
||||
|
||||
if (qualifier)
|
||||
fetchSpec = [EOFetchSpecification
|
||||
fetchSpecificationWithEntityName: [folder folderName]
|
||||
|
||||
@@ -260,4 +260,9 @@
|
||||
return b;
|
||||
}
|
||||
|
||||
- (BOOL) isThunderbird
|
||||
{
|
||||
return ([[self headerForKey:@"user-agent"] rangeOfString: @"Thunderbird"].location != NSNotFound);
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
Reference in New Issue
Block a user