Hi, I want to create a new document (from my flutter app) and share this document with another user. I can't do it quickly because user can't add permission to another user id. We have to be in a team. But now I have add all users to a team and if i want to add my permission, my user had to know the membership id of the other user... So I have to do a request to get the membership id, and then adding the permission with this team & membership id... Is there a way to add permission with only the other user id ?
I am sorry if I don't understand correctly but, in your database, you do have the option to give permissions without using teams , is this something you need?
Hey @Mickaël LT
So just to make sure, you're having issues with document security right? If you want User A to be have full access to a document, while making sure User B only had viewing/reading permissions, you can assign the Permission.read(Role.user('[USER-B-ID]')) to the document
You don't need to have both the users in the same team. If your worry is about getting User B's ID, you can create a small Appwrite Function that does it for you.
You can accept an email in this function, and use the users.listUsers endpoint along with the email in the query, so get the correct user.
Yes, User A create a document from the flutter mobile application (with client SDK). User A want to add user B permission for reading this document. I can do it if I use the server sdk and a function, but I prefere doing it from my app.
List<String> perms = [];
perms.add(Permission.read(Role.user(otherUserId)));
final doc = await databases.createDocument(
databaseId: databaseId,
collectionId: collectionId,
documentId: ID.unique(),
data: data.toMap(),
permissions: perms
);
If I do that, I got this error
AppwriteException: user_unauthorized, Permissions must be one of: (any, users, user:63e501eb4d6310fbf62c, user:63e501eb4d6310fbf62c/verified, users/verified)
And after searching, user can't add permission to other user directly, user can only add permission to team/membership
Any reason why you want to do it from the client only? It's not possible right now, which is why I suggested an appwrite function instead
Because the code already exist in my app 😅 so, don't want to put it in a function, but if this is the only way, I'll do it
Is your problem resolved now?
Yes, I've move my code to a function and now I can add custom permission
[SOLVED] permission and membership
Recommended threads
- CORS error only on tables db api After u...
I've recently updated my self hosted appwrite instance to the 1.8.0 and updated my frontend with the tables db apis but strangely, even if I'm able to log in, g...
- [SOLVED] Access ExecutionStatus of a fun...
I am calling a cloud function from the newest Flutter SDK 20.2.1with the `xasync: false` flag and get the result, but the `execution.status` is not a String and...
- Appwrite isn't accepting the api from se...
Error creating user: AppwriteException: Server Error type: 'general_unknown', response: '{"message":"Server Error","code":500,"type":"general_unknown","versi...