diff --git a/ChangeLog b/ChangeLog index ab7cd08a8..9b20d508d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2010-08-11 Wolfgang Sourdeau + * Main/SOGo+DAV.m (-davCurrentUserPrincipal): new method + implementing the "{DAV:}current-user-principal" property. + + * SoObjects/Contacts/SOGoContactGCSEntry.m (-davAddressData): new + DAV property accessor returning the card content. + * SoObjects/SOGo/WORequest+SOGo.m (-isAddressBookApp): new (hackish) test method to determine whether the client is Apple's AddressBook.app. diff --git a/Main/SOGo+DAV.m b/Main/SOGo+DAV.m index 6369e6855..131f70dec 100644 --- a/Main/SOGo+DAV.m +++ b/Main/SOGo+DAV.m @@ -504,4 +504,30 @@ return r; } +- (SOGoWebDAVValue *) davCurrentUserPrincipal +{ + NSDictionary *userHREF; + NSString *usersUrl, *login; + SOGoUser *activeUser; + SOGoWebDAVValue *davCurrentUserPrincipal; + + activeUser = [[self context] activeUser]; + login = [activeUser login]; + if ([login isEqualToString: @"anonymous"]) + davCurrentUserPrincipal = nil; + else + { + usersUrl = [NSString stringWithFormat: @"%@%@/", + [self davURLAsString], login]; + userHREF = davElementWithContent (@"href", XMLNS_WEBDAV, usersUrl); + davCurrentUserPrincipal + = [davElementWithContent (@"current-user-principal", + XMLNS_WEBDAV, + userHREF) + asWebDAVValue]; + } + + return davCurrentUserPrincipal; +} + @end diff --git a/SoObjects/Contacts/SOGoContactGCSEntry.m b/SoObjects/Contacts/SOGoContactGCSEntry.m index 22ee70bc0..03251f6ed 100644 --- a/SoObjects/Contacts/SOGoContactGCSEntry.m +++ b/SoObjects/Contacts/SOGoContactGCSEntry.m @@ -115,6 +115,11 @@ return @"text/x-vcard"; } +- (NSString *) davAddressData +{ + return [self contentAsString]; +} + /* specialized actions */ - (void) save