Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support Mac groups vCards #213

Open
nalt opened this issue May 12, 2017 · 57 comments
Open

Support Mac groups vCards #213

nalt opened this issue May 12, 2017 · 57 comments
Labels
1. to develop Accepted and waiting to be taken care of compatibility Compatibility with other services

Comments

@nalt
Copy link

nalt commented May 12, 2017

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.

@EddyLB
Copy link

EddyLB commented Jun 15, 2017

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>

@skjnldsv
Copy link
Member

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 skjnldsv added the needs info Not enough information provided label Jul 26, 2017
@irgendwie
Copy link
Member

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.

@skjnldsv
Copy link
Member

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

@EddyLB
Copy link

EddyLB commented Jul 27, 2017

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

@skjnldsv
Copy link
Member

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

@skjnldsv skjnldsv changed the title Groups are not synced between Server and client MacOS Contacts app Support Mac groups vCards Jul 27, 2017
@skjnldsv skjnldsv added compatibility Compatibility with other services feature parity Feature on other projects that needs to be implemented and removed needs info Not enough information provided labels Jul 27, 2017
@EddyLB
Copy link

EddyLB commented Jul 27, 2017

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).

@nalt
Copy link
Author

nalt commented Aug 7, 2017

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.

@aluxnimm
Copy link

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.

@skjnldsv skjnldsv added this to the 2.1.0 milestone Sep 13, 2017
@skjnldsv
Copy link
Member

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

@skjnldsv skjnldsv self-assigned this Sep 13, 2017
@skjnldsv skjnldsv added the 1. to develop Accepted and waiting to be taken care of label Sep 13, 2017
@nalt
Copy link
Author

nalt commented Oct 21, 2017

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

@sushidave
Copy link

sushidave commented Oct 23, 2017

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

@Woi
Copy link

Woi commented Feb 28, 2018

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

@chrsch
Copy link

chrsch commented Apr 22, 2018

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

@skjnldsv
Copy link
Member

skjnldsv commented Aug 1, 2018

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?

@dphi
Copy link

dphi commented Aug 1, 2018

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

@skjnldsv
Copy link
Member

skjnldsv commented Aug 1, 2018

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

@aluxnimm
Copy link

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.

@skjnldsv skjnldsv modified the milestones: 2.2.0, 3.0.0 Aug 22, 2018
@microfx
Copy link

microfx commented Jan 5, 2020 via email

@plinss
Copy link

plinss commented Jan 5, 2020

no. iOS is all fine. macOS is the problem.

I beg to differ, I just created a group in the Nextcloud Contacts app, and it does not show up on iOS.

@microfx
Copy link

microfx commented Jan 5, 2020 via email

@plinss
Copy link

plinss commented Jan 5, 2020

are we talking about nextcloud user groups here? which then named shared addressbooks? because that is what I am using / having problems with (only macOS!).

I am not. I am taking about contact groups created in the contacts apps, these are different than Nextcloud user groups and also different than having multiple address books.

This issue is about contact groups, iOS and macOS store contact groups as a type of vCard, where the Nextcloud Contacts app does not recognize those vCards as groups and displays them as a contact. Furthermore the Nextcloud Contacts app stores group information in the contact's vCard, which neither macOS or iOS recognize.

It sounds like you are creating different address books entirely and sharing those among Nextcloud user groups, which is fine. When you create multiple address books in Nextcloud, iOS Contacts represents those visually the same way that it does contact groups, so this is where you're likely getting confused, but they are distinct concepts in the way the data is stored.

macOS Contacts app does not appear to recognize multiple address books, which is the problem you are facing.

Try creating a group in the macOS Contacts app and drag one of your contacts into that group, you'll see the issue.

@microfx
Copy link

microfx commented Jan 5, 2020 via email

@alesf
Copy link

alesf commented Jan 8, 2020

This has already been discussed above (see #213 (comment))

I try to add necessary information to a group vCard so all clients can understand and group contacts.

Group vCard:

VERSION: 3.0
FN: Group Name
N: Group Name
UID: group-uuid-XXXX
X-ADDRESSBOOKSERVER-KIND: group
KIND: group

Contact vCards that belong to this group also have these fields:

X-ADDRESSBOOKSERVER-MEMBER: urn:uuid:group-uuid-XXXX
MEMBER: urn:uuid:group-uuid-XXXX
CATEGORIES: Group Name, ...

@skjnldsv
Copy link
Member

skjnldsv commented Feb 5, 2020

same as #609

@skjnldsv skjnldsv closed this as completed Feb 5, 2020
@nalt
Copy link
Author

nalt commented Feb 5, 2020

Please keep this issue open until the bug is fixed. #609 describes a feature, doesn't mention any details about the bug.

@Duckbilled
Copy link

On iOS 14, groups created in Nextcloud do not show up either. I am not using MacOS 11 so cannot test that. Like others said, contacts created on MacOS 10.15 show up as contact cards and dissapear as soon as I select them on Nextcloud.

@kittonian
Copy link

kittonian commented Jul 31, 2020

I've read through all of the above and I'm seeing different behavior. On Mac OS High Sierra, I can create a contact group and I see nothing in the web gui. However, I see that group across the desktop and iOS Apple clients on the LAN. Some of the desktops are High Sierra and others are the latest Catalina. All iOS devices are running the latest version.

If I create and/or delete a group, all devices update themselves, but nothing is populated in the groups. Except for the initial system where the contact group was created and various contacts were added to the group, all other devices show the group but the group is empty.

I have tried creating the group via the web gui (doesn't show up on any Apple devices), via other Mac OS desktops (group shows up properly across all devices but is empty), etc. It's consistently the same behavior. The groups show and disappear properly but they are always empty (i.e. nothing is sync'ing inside the groups).

We are running Debian, PHP 7.4.8, and the latest Nextcloud (19.x).

@EddyLB
Copy link

EddyLB commented Mar 27, 2021

This issue is opened for almost 3 years and I regret very much that it is still impossible to sync groups with Apple devices. After having created a group and added cards into that new group on a macOS device synced with a NextCloud server 18, the group with its cards shows up on iOS devices. But the NextCloud Calendars app still shows the group as a card.

@brezlord

This comment was marked as off-topic.

@Matteo85
Copy link

Matteo85 commented Sep 5, 2023

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.

With regards to issue: Contact groups can't be deleted #1175

It sounds like Apple isn't following the vCard 3.x or 4.x standards. Since Nextcloud is built to sustain those standards, waiting to fix an Apple mistake doesn't serve the community, especially since simple issues like being able to delete a user group after creating it (a simple CRUD fix) is being held back by an issue that may never be resolved. Apple has a tendency to do things the way they want and try to force compliance with their modus operandum. Since it is Nextcloud's intention to follow the vCard standards:

This is a complicated answer. We did not invent the way contacts works. We are following the official vCard format. This format include a predefined set of properties that other applications/devices supports too (Android, iOS, Windows, Gnome...). Adding a custom property would just make it compatible with Nextcloud and will not be understood by any other clients and make it complicated for us to ensure its sustainability over time. Long story short, we suggest you use the Notes field to add your custom data :)

I would suggest moving forward with vCard standards UI and functionality issues and not wait for Apple. You can't please everyone, and this is a glaring error (#1175)

@RokeJulianLockhart
Copy link

@Matteo85, should we post that in the Apple Developer Forums then?

@Matteo85
Copy link

Matteo85 commented Sep 7, 2023

You can if you want. I posted here because another thread (#1175), which is not part of the Mac development, referred to this error as having to be fixed before the thread I was viewing would be fixed. In my opinion this delay is ridiculous since they are unrelated items (or should be...). We should be able to delete user groups after creation, and this has been a known issue since 2019. To have basic CRUD functions delayed for a niche problem shouldn't be happening.

@nano13
Copy link

nano13 commented Apr 17, 2024

You can if you want. I posted here because another thread (#1175), which is not part of the Mac development, referred to this error as having to be fixed before the thread I was viewing would be fixed. In my opinion this delay is ridiculous since they are unrelated items (or should be...). We should be able to delete user groups after creation, and this has been a known issue since 2019. To have basic CRUD functions delayed for a niche problem shouldn't be happening.

And again a year later, no solution in sight, and still blocking #1175 , which is an absolutely basic standard feature, still missing for at least half a decade now. I'm very sorry to say, but this is really just a huge shitshow ...

@microfx
Copy link

microfx commented Apr 17, 2024

yeah ... haha ... ain't nobody using nextcloud for serious stuff anymore due to lacking features like this.

@nano13
Copy link

nano13 commented Apr 17, 2024

So I am actually an IT-Admin running a growing company offering typical services to a bunch of customers. I would love to have a real alternative to the well known commercial cloud solutions. If we would be successful with NextCloud and being able to make money based on that, we would most definitely consider to become an official supporter of NextCloud. This would be just a normal thing to do to ensure our own success.

But if I decide to promote NextCloud to our customers, it will be most likely just a matter of days until someone bumps into this (or some similar) issue. Do you really expect me to explain my customers then: "Yeah, sorry. This is an open bug in Nextcloud for almost a decade now. For some reason, they have tied this simple and basic functionality (#1175) to some niche problem (this) where they are waiting for Apple to fix some of their implementations (which is of course absolutely ridiculous because of course they never will because why should Apple care???), so the Nextcloud-guys will never fix this problem, either. Better you just get used to it!"

If I do this, we can close our company just right there. So unfortunately my test with NextCloud seems to end here with the result: Promoting this product will most likely backfire and undermine our customers trust in us, so we simply can't!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1. to develop Accepted and waiting to be taken care of compatibility Compatibility with other services
Projects
None yet
Development

No branches or pull requests