[Owncloud] contacts VCV REV field update problem
Evert Pot
evert at rooftopsolutions.nl
Fri May 10 22:22:40 UTC 2013
On 10 mei 2013, at 22:11, Thomas Tanghus <thomas at tanghus.net> wrote:
> Hi Ismael
>
> On Friday 03 May 2013 16:04 Ismail YENIGUL wrote:
>> Thanks for your feedback.
>> I talked with my developers. They are deleting and re-adding the contacts :)
>
> :)
>
>> But they say that there is no edit method in the webdav client called
>> WebDAV .NET
>> by the way we also delete and re-add the caldav events, owncloud use our
>> LAST-MODIFIED value in the .ics file
>> Then we thought that something is wrong with carddav?
>> My question is what is the proper way to handle update caldav/carddav?
>
> I don't know much about the protocol - we rely on SabreDAV [1] and only
> implement the backend for storing/retrieving objects. I would say a simple
> HTTP PUT is the proper way to update, but you would have to consult the WebDAV
> spec [2] and the RFC [3]
PUT is indeed the only way to update
Cheers,
Evert
>
> /Thomas
>
> [1] http://code.google.com/p/sabredav/
> [2] http://www.webdav.org/specs/
> [3] https://tools.ietf.org/html/rfc4918
>
>> On 3.5.2013 15:41, Thomas Tanghus wrote:
>>> Hi Ismail
>>>
>>> When adding new contacts their properties may get updated because we store
>>> them internally as vCard 3.0, and because we then can't guarantee that the
>>> contact is identical after adding, the REV property is updated.
>>> The method you mention is *only* called when adding contacts, so my guess
>>> is it's rather in the edit() method [1] it gets updated. I hope you're
>>> not syncing by deleting and re-adding the vCards? ;)
>>>
>>> It's a valid issue, and I will see to change it so that if contacts are
>>> updated via CardDAV the REV will only be updated/added if it doesn't
>>> exist.
>>>
>>> BTW, wouldn't it be a more reliable method to check for the Etag being
>>> send? It is my understanding that most *DAV sync clients use that.
>>>
>>> [1]
>>> https://github.com/owncloud/apps/blob/stable5/contacts/lib/vcard.php#L513>
>>> On Friday 03 May 2013 12:13 Ismail YENIGUL wrote:
>>>> We developed a outlook contacts and calendar sync from a caldav/carddav
>>>> server.
>>>> We are making tests on owncloud. There is no problem with calendar part.
>>>> But we have a problem about update date of the contacts. We create a vcf
>>>> file on the client side that contains REV field like the following
>>>>
>>>> PRODID:-//ownCloud//NONSGML Contacts 0.2.5//EN
>>>> *REV:2013-04-29T13:40:53+00:00*
>>>> FN:Yusuf Cemal
>>>> N:Cemal;Yusuf;;
>>>> ...
>>>>
>>>> When we upload this file to owncloud via DAV. Owncloud does not take
>>>> care of this field and inserts own "last change date" to the database.
>>>> This causes continues update for the same contacts on the outlook side.
>>>> Is there any way to disable auto update of last change on the owncloud
>>>> side if the REV is defined in VCF file.
>>>>
>>>> It seems that the problem is at the following lines:
>>>> # vi apps/contacts/lib/vcard.php
>>>>
>>>> /**
>>>>
>>>> * @brief Tries to update imported VCards to adhere to rfc2426
>>>>
>>>> (VERSION: 3.0) and add mandatory fields if missing.
>>>>
>>>> * @param aid Address book id.
>>>> * @param vcard A Sabre\VObject\Component of type VCARD (passed
>>>>
>>>> by reference).
>>>>
>>>> */
>>>> protected static function *updateValuesFromAdd*($aid, &$vcard)
>>>>
>>>> { // any suggestions for a better method name? ;-)
>>>>
>>>> }
>>>>
>>>> if(self::trueUID($aid, $uid)) {
>>>>
>>>> $vcard->{'UID'} = $uid;
>>>>
>>>> }
>>>>
>>>> *$now = new \DateTime;**
>>>> ** $vcard->{'REV'} = $now->format(\DateTime::W3C);*
>>>>
>>>> }
>>>>
>>>> Thanks
> --
> Med venlig hilsen / Best Regards
>
> Thomas Tanghus
> _______________________________________________
> Owncloud mailing list
> Owncloud at kde.org
> https://mail.kde.org/mailman/listinfo/owncloud
More information about the Owncloud
mailing list