diff --git a/SoObjects/Contacts/SOGoContactEntryPhoto.m b/SoObjects/Contacts/SOGoContactEntryPhoto.m index 6ae248e08..eee89311c 100644 --- a/SoObjects/Contacts/SOGoContactEntryPhoto.m +++ b/SoObjects/Contacts/SOGoContactEntryPhoto.m @@ -44,25 +44,34 @@ - (id) GETAction: (WOContext *) localContext { NGVCardPhoto *photo; - NSData *data; + NSString *uri; + NSData *data; id response; photo = [self photo]; + data = nil; + uri = nil; + if ([photo isInline]) data = [photo decodedContent]; - else - data = [[photo flattenedValuesForKey: @""] - dataUsingEncoding: NSISOLatin1StringEncoding]; + else if ([[photo value: 0 ofAttribute: @"value"] isEqualToString: @"uri"]) + uri = [photo flattenedValuesForKey: @""]; + if (data) { response = [localContext response]; - [response setHeader: [self davContentType] forKey: @"content-type"]; [response setHeader: [NSString stringWithFormat:@" %d", (int)[data length]] forKey: @"content-length"]; [response setContent: data]; } + else if (uri) + { + response = [localContext response]; + [response setStatus: 302]; + [response setHeader: uri forKey: @"location"]; + } else response = nil;