contacts icon indicating copy to clipboard operation
contacts copied to clipboard

Support Mac groups vCards

Open nalt opened this issue 8 years ago • 69 comments

Steps to reproduce

  1. Setup CardDAV Sync in MacOS
  2. Create a group in MacOS Contact app

or

  1. Create a group in Nextcloud

Expected behaviour

Groups created in Contacts app should appear as groups in Nextcloud. Groups created in Nextcloud should appear as groups in Contacts app.

Actual behaviour

A group created in Contacts app appears as a normal contact in Nextcloud. Nextcloud groups are not represented in Contacts app.

Server configuration

Operating system: Nextcloud official Docker

Web server: Nginx Proxy

Database: MariaDB

Nextcloud version: 11.0.3

Contacts version: 1.5.3

Updated from an older Nextcloud or fresh install: Updated, but contacts cleared

Client configuration

Operating system: MacOS 10.12.4

CardDAV-clients: MacOS Contacts app


Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

nalt avatar May 12 '17 12:05 nalt

Same issue with Nextcloud 12

Server configuration

Operating system: Debian GNU/Linux 8.8 (jessie) x86_64

Web server: Apache/2.4.10 (Debian) (apache2handler)

Database: mysql 5.5.55

PHP version: 5.6.30-0+deb8u1 Modules loaded: Core, date, ereg, libxml, openssl, pcre, zlib, bcmath, bz2, calendar, ctype, dba, dom, hash, fileinfo, filter, ftp, gettext, SPL, iconv, mbstring, session, posix, Reflection, standard, shmop, SimpleXML, soap, sockets, Phar, exif, sysvmsg, sysvsem, sysvshm, tokenizer, wddx, xml, xmlreader, xmlwriter, zip, apache2handler, PDO, apcu, curl, gd, imagick, intl, json, mcrypt, memcache, mysql, mysqli, pdo_mysql, pdo_sqlite, pspell, readline, recode, sqlite3, tidy, xmlrpc, xsl, mhash, apc, Zend OPcache

Nextcloud version: 12.0.0 - 12.0.0.29

Are you using external storage, if yes which one: files_external is disabled

Are you using encryption: no

Are you using an external user-backend, if yes which one: LDAP/ActiveDirectory/Webdav/...

Client configuration

Browser: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/603.3.1 (KHTML, like Gecko) Version/10.1.2 Safari/603.3.1

Operating system:

  • macOS Sierra version 10.12.6 Beta (16G8c) and Contacts version 10.0 (1756.20)
  • iOS 10.3.3 (14G5037b)

Updated from an older Nextcloud/ownCloud or fresh install: Updated from last release of NextCloud 11

List of activated apps:

App list ``` Enabled: - activity: 2.5.2 - bruteforcesettings: 1.0.2 - calendar: 1.5.3 - comments: 1.2.0 - contacts: 1.5.3 - dav: 1.3.0 - federatedfilesharing: 1.2.0 - federation: 1.2.0 - files: 1.7.2 - files_pdfviewer: 1.1.1 - files_sharing: 1.4.0 - files_texteditor: 2.4.1 - files_trashbin: 1.2.0 - files_versions: 1.5.0 - files_videoplayer: 1.1.0 - firstrunwizard: 2.1 - issuetemplate: 0.2.1 - logreader: 2.0.0 - lookup_server_connector: 1.0.0 - nextcloud_announcements: 1.1 - notifications: 2.0.0 - oauth2: 1.0.5 - password_policy: 1.2.2 - provisioning_api: 1.2.0 - serverinfo: 1.2.0 - sharebymail: 1.2.0 - survey_client: 1.0.0 - systemtags: 1.2.0 - theming: 1.3.0 - twofactor_backupcodes: 1.1.1 - updatenotification: 1.2.0 - workflowengine: 1.2.0

Disabled:

  • admin_audit
  • encryption
  • files_external
  • gallery
  • user_external
  • user_ldap
</details>

EddyLB avatar Jun 15 '17 15:06 EddyLB

Could you create a new contact on your Mac and sync it to nextcloud, then export it from nextcloud and post the result here please.

skjnldsv avatar Jul 26 '17 19:07 skjnldsv

Afaik MacOS (and/or Apple in general) stores groups as vcards and not as property in a vcard, like we do it in the contacts app. When configuring davDroid (for Android) you can choose between those two options, I'm not sure if this is also possible for apple products.

irgendwie avatar Jul 26 '17 21:07 irgendwie

If we want to implement this, this won't be a priority then :/

skjnldsv avatar Jul 26 '17 21:07 skjnldsv

Hi @skjnldsv, I've created a group "macOS" and a contact in that group. As expected, mac OS Contacts creates 2 cards:

  • one declaring the group with X-ADDRESSBOOKSERVER-KIND:group and the ID X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:8a3da972-8df0-4e5a-a572-bdd4621abc39. Apple uses X-ADDRESSBOOKSERVER-KIND instead of KIND, which is to my understanding acceptable according to RFC 6350.

  • one declaring the contact and attaching the card to the group using the ID with UID:8a3da972-8df0-4e5a-a572-bdd4621abc39

After syncing with Nextcloud, I get two non-grouped new cards (attached). It would really be great that the Nextcloud Contacts app accepts X-ADDRESSBOOKSERVER-KIND as well as KIND for identifying vCard representing a group of persons or entities.

Group macOS.vcf.txt Contact In macOS Group.vcf.txt

EddyLB avatar Jul 27 '17 06:07 EddyLB

Isn't there an option to change this behavior on Mac?

skjnldsv avatar Jul 27 '17 06:07 skjnldsv

On macOS 10.12, the user can choose between the vCard formats 2.1 and 3.0 (and the vCard encoding format for 2.1). He/she can also enable/disable the export of notes and photos in vCards and the use of a private me card.

As shown for example here, the property KIND is not supported in 3.0 (only in 4.0).

EddyLB avatar Jul 27 '17 06:07 EddyLB

MacOS does not have option to change how the vCard are synced. Even if there was a hack via some config file, this would not be user-friendly at all. Their solution corresponds to the KIND/MEMBER fields of vCard 4.0, without breaking the older standards. So the logic is the same as in the 4.0 standard.

How does Nextcloud store groups - as a name in the Categories field? What would happen, if a vCard 4.0 using the standardized KIND/MEMBER fields is sent?

I would assume the version option exposed to the user only affects the export functionality.

nalt avatar Aug 07 '17 08:08 nalt

We support iCloud contact groups with X-ADDRESSBOOKSERVER-KIND:group also now for mapping Outlook Distribution Lists to contact groups in OutlookCalDavSynchronizer

So would be really useful if the contact app could show the members of the group for a better Nextcloud and Outlook integration! Now the group is only visible as a normal contact with the name of the group and no members but atleast can be synced back to (another) Outlook or macOS instance.

aluxnimm avatar Sep 13 '17 07:09 aluxnimm

Let's go! Adding this to the 2.1 milestone! We'll try implementing that!

skjnldsv avatar Sep 13 '17 08:09 skjnldsv

Great! Do you have a plan already how to handle this vCard "dialect" and potential other ones?

nalt avatar Oct 21 '17 18:10 nalt

FYI - The same issues exists for ownCloud: #455, #475

sushidave avatar Oct 23 '17 21:10 sushidave

Maybe nice to know: DAVdroid has a nice comparison table of both methods. They also document the limited group support in nextcloud app.

Woi avatar Feb 28 '18 15:02 Woi

@skjnldsv Did you have any success with this? Is it still ongoing or stale?

chrsch avatar Apr 22 '18 13:04 chrsch

It's still ongoing. Can some of you try a vcard 4 group with the real KIND and not X-ADDRESSBOOK-KIND property on mac to see if it works?

skjnldsv avatar Aug 01 '18 20:08 skjnldsv

Hi @skjnldsv, is does not work for me with the following adjustments:

Original:

VERSION:3.0 PRODID:-//Apple Inc.//AddressBook 11.0//EN N:Test-Group;;;; FN:Test-Group X-ADDRESSBOOKSERVER-KIND:group X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:909c0bfb-9a8b-4514-b7d4-0b41ba7b11d2 REV:2018-04-07T20:45:06Z UID:b450093e-e90c-45f6-8bd4-3b91facd123 END:VCARD

Adjustment:

VERSION:3.0 PRODID:-//Apple Inc.//AddressBook 11.0//EN N:Test-Group;;;; FN:Test-Group KIND:group MEMBER:urn:uuid:909c0bfb-9a8b-4514-b7d4-0b41ba7b11d2 REV:2018-04-07T20:45:06Z UID:b450093e-e90c-45f6-8bd4-3b91facd123 END:VCARD

dphi avatar Aug 01 '18 21:08 dphi

Strangely enough, KIND/MEMBER are supposed to be supported for v4+ only :) I guess we'll try to add a support for both then.

skjnldsv avatar Aug 01 '18 21:08 skjnldsv

Yes a vcard with VERSION:3.0 is not valid with KIND/MEMBER, that's the reason for X-ADDRESSBOOKSERVER prefix. Only with VERSION:4.0 KIND/MEMBER are allowed, so the adjustment above is an invalid vcard. You really should support both, since there is no support for v4+ cards in many clients/servers.

aluxnimm avatar Aug 14 '18 09:08 aluxnimm

Hi, since I'd love to see this feature implemented, I'd like to help by testing with NC (latest version that I can install via Softaculous on my cPanel) in conjunction with two mac clients: Contacts.app on Mac OSX 10.11 (El Capitan) and macOS 11.13 (High Sierra)

What is the recommended testing procedure? I assume to connect NC CardDAV with both clients and then add a contact on each client and on NC, then create a group on each client and on NC, then sync them all and post the result here?

Whatever makes sense to contribute, please let me know. I will be gladly helping here as a tester with the above mentioned Mac-clients :-)

macbaydigital avatar Oct 31 '18 07:10 macbaydigital

Hey @sushinger :) We do not require testing yet because this feature is not implemented yet and will require a lot of changes on the server.

Nonetheless, we'd gladely need help when we'll start working on this ;)

skjnldsv avatar Oct 31 '18 07:10 skjnldsv

Whenever you need tester, I'll be available too ;)

foux avatar Oct 31 '18 08:10 foux

You folks are amazing! :D

skjnldsv avatar Oct 31 '18 08:10 skjnldsv

Just chiming in to tell you that Busycontacts also expect the server to support cards with X-ADDRESSBOOKSERVER-KIND:group... As does eM Client.

pagaille avatar May 25 '19 15:05 pagaille

So as I understand it this feature is needed to allow regular clients like emClient to display groups/categories correctly? That's quite a missing feature at the moment... Is there any roadmap about when this could be implemented?

Aesculapius avatar Sep 06 '19 07:09 Aesculapius

Process:

  • [ ] Migration path
    • [ ] Warning to the admin Extensive process
    • [ ] Notify the user
      • If any davx was used lately, show documentation for it
  • [ ] Support mac groups
  • [ ] Add delete support nextcloud/server#1175
  • [ ] Add rename support

skjnldsv avatar Sep 15 '19 18:09 skjnldsv

Is it possible that something changed in iOS 13 (possible even on macOS Catalina - not tested) on how groups are handled? All of the group vcards that have X-ADDRESSBOOKSERVER-KIND:group are shown as contacts and do not show in the groups.

alesf avatar Oct 15 '19 11:10 alesf

Here's what I am seeing:

  • Groups created in Nextcloud do not appear on MacOS or iOS
  • Groups created on MacOS or iOS do show up as regular contacts on Nextcloud

docbobo avatar Dec 04 '19 16:12 docbobo

Any news on this? I have a lot of contacts not showing up which should show up in contacts.app on macOS Catalina.

microfx avatar Jan 01 '20 03:01 microfx

@microfx as you can see in the first post, no progress has been made. I have other priorities and no other dev started working on it :)

skjnldsv avatar Jan 02 '20 09:01 skjnldsv

Thanks for letting me know. This is a pretty severe problem imho since it makes nextcloud not usable for a team and shared contact groups in an Apple ecosystem right now. So if there is a manual workaround it would be very nice to know.

Or do I misunderstand this issue - could you shortly explain what groups vCards are? My problem is that not all contacts are shown on iOS which were shared from another user/group in nextcloud.

Am 02.01.2020 um 10:15 schrieb John Molakvoæ [email protected]:

 @microfx as you can see in the first post, no progress has been made. I have other priorities and no other dev started working on it :)

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

microfx avatar Jan 02 '20 11:01 microfx