Get User-Information with custom UI

In my app I don't want to use the Apple-Default iCloud Share-Sheet as it does not at all match the style of my app.

That's why I create CKShares manually and let others users then scan a QR-Code from the owners phone to accept a share.


Everything is working nicely... but...

Now I want the owner to be able to remove a certain participent.

A CKShare has a participants property, but for all my invited users I don't see anything. No name, email, nothing. I guess that's because of privacy reasons and it's fine to me. But not even the default UICloudSharingController will display names for me?!?


What would be suggested ways of fixing the problem? Is it ok, if I'd require a user to enter his Username when accepting or even creating a share? I'd prefer not having to do this?!?


Cheers,

Georg

".......others users then scan a QR-Code from the owners phone to accept a share."


Assign to each such QR-Code a property variable (e.g. sharer # 2738352736) that the owner can use to delete one of the users. The owner can then maintain a file in the public database with allowed sharers (e.g. a list that includes 2738352736). Before a user can access a shared database have the user check that public database file for his property variable. If a user does not see his property variable in that list then have the user's app disable sharing.

But I have ONE share per root object, right? So a QR-Code is basically just the icloud link associated to that share...

Also, I currently have all of my data in the users private databases, nothing in a public one.


What kind of information would you store in the public database that you'd associate with the qr-code?

I don't really understand your suggestion yet but look forward to your reply 🙂

1) I have never used the CKShared space - my answer to your question was a suggestion on how to avoid using the shared space by creating a 'limited shared space' in the public database.


2) the public database is not really 'public' since access to the contents in the public database is only through the app and the app itself can limit what you can actually access. Every record in the public database could include a field with a specific UUID code or some other unique identifier (e.g. add the field "Access" with a value "1964738927" for all records created by a particular device that had assigned itself the unique code "1964738927" - or you can use some sort of ID by the file's originator). That device would display a QR code with its unique code "1964738927". The app would contain an array with a set of access codes to which it's user was granted access (e.g. a "CanAccess" array with the following values: "185472936" and "2726454890" and "1964738927"). Your app scans someone else's QR code and adds that value to its "CanAccess" array (here for example the device was granted access to "1964738927"). Before an app can read the contents of a record (actually, since it's in the public database, it can 'read' the file but the app will refuse to 'process' the contents) it checks to see if its CanAccess array contains the unique value in that record's Access field.

Get User-Information with custom UI
 
 
Q