184 lines
5.0 KiB
Markdown
184 lines
5.0 KiB
Markdown
---
|
|
title: Permissions
|
|
weight: 50
|
|
geekdocRepo: https://github.com/owncloud/ocis
|
|
geekdocEditPath: edit/master/docs/apis/http/graph
|
|
geekdocFilePath: permissions.md
|
|
---
|
|
|
|
{{< toc >}}
|
|
|
|
## Permissions API
|
|
|
|
The Permissions API is implementing a subset of the functionality of the
|
|
[MS Graph Permission resource](https://learn.microsoft.com/en-us/graph/api/resources/permission?view=graph-rest-1.0).
|
|
|
|
### Example Permissions
|
|
|
|
The JSON representation of a Drive, as handled by the Spaces API, looks like this:
|
|
````json
|
|
{
|
|
"@libre.graph.permissions.roles.allowedValues": [
|
|
{
|
|
"id": "b1e2218d-eef8-4d4c-b82d-0f1a1b48f3b5",
|
|
"description": "Allows reading the shared file or folder",
|
|
"displayName": "Viewer",
|
|
"@libre.graph.weight": 1
|
|
},
|
|
{
|
|
"id": "fb6c3e19-e378-47e5-b277-9732f9de6e21",
|
|
"description": "Allows reading and writing the shared file or folder",
|
|
"displayName": "Editor",
|
|
"@libre.graph.weight": 2
|
|
},
|
|
{
|
|
"id": "312c0871-5ef7-4b3a-85b6-0e4074c64049",
|
|
"description": "Allows managing a space",
|
|
"displayName": "Manager",
|
|
"@libre.graph.weight": 3
|
|
},
|
|
{
|
|
"id": "4916f47e-66d5-49bb-9ac9-748ad00334b",
|
|
"description": "Allows creating new files",
|
|
"displayName": "File Drop",
|
|
"@libre.graph.weight": 4
|
|
}
|
|
],
|
|
"@libre.graph.permissions.actions.allowedValues": [
|
|
"libre.graph/driveItem/basic/read",
|
|
"libre.graph/driveItem/permissions/read",
|
|
"libre.graph/driveItem/upload/create",
|
|
"libre.graph/driveItem/standard/allTasks",
|
|
"libre.graph/driveItem/upload/create"
|
|
],
|
|
"value": [
|
|
{
|
|
"id": "67445fde-a647-4dd4-b015-fc5dafd2821d",
|
|
"link": {
|
|
"type": "view",
|
|
"webUrl": "https://cloud.example.org/s/fhGBMIkKFEHWysj"
|
|
}
|
|
},
|
|
{
|
|
"id": "34646ab6-be32-43c9-89e6-987e0c237e9b",
|
|
"roles": [
|
|
"b1e2218d-eef8-4d4c-b82d-0f1a1b48f3b5"
|
|
],
|
|
"grantedToV2": [
|
|
{
|
|
"user": {
|
|
"id": "4c510ada-c86b-4815-8820-42cdf82c3d51",
|
|
"displayName": "Albert Einstein"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "81d5bad3-3eff-410a-a2ea-eda2d14d4474",
|
|
"roles": [
|
|
"b1e2218d-eef8-4d4c-b82d-0f1a1b48f3b5"
|
|
],
|
|
"grantedToV2": [
|
|
{
|
|
"user": {
|
|
"id": "4c510ada-c86b-4815-8820-42cdf82c3d51",
|
|
"displayName": "Albert Einstein"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "b470677e-a7f5-4304-8ef5-f5056a21fff1",
|
|
"roles": [
|
|
"b1e2218d-eef8-4d4c-b82d-0f1a1b48f3b5"
|
|
],
|
|
"grantedToV2": [
|
|
{
|
|
"user": {
|
|
"id": "f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c",
|
|
"displayName": "Marie Skłodowska Curie"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "453b02be-4ec2-4e7d-b576-09fc153de812",
|
|
"roles": [
|
|
"fb6c3e19-e378-47e5-b277-9732f9de6e21"
|
|
],
|
|
"grantedToV2": [
|
|
{
|
|
"user": {
|
|
"id": "4c510ada-c86b-4815-8820-42cdf82c3d51",
|
|
"displayName": "Albert Einstein"
|
|
}
|
|
}
|
|
],
|
|
"expirationDateTime": "2018-07-15T14:00:00.000Z"
|
|
},
|
|
{
|
|
"id": "86765c0d-3905-444a-9b07-76201f8cf7df",
|
|
"roles": [
|
|
"312c0871-5ef7-4b3a-85b6-0e4074c64049"
|
|
],
|
|
"grantedToV2": [
|
|
{
|
|
"group": {
|
|
"id": "167cbee2-0518-455a-bfb2-031fe0621e5d",
|
|
"displayName": "Philosophy Haters"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "c42b5cbd-2d65-42cf-b0b6-fb6d2b762256",
|
|
"grantedToV2": [
|
|
{
|
|
"user": {
|
|
"id": "4c510ada-c86b-4815-8820-42cdf82c3d51",
|
|
"displayName": "Albert Einstein"
|
|
}
|
|
}
|
|
],
|
|
"@libre.graph.permissions.actions": [
|
|
"libre.graph/driveItem/basic/read",
|
|
"libre.graph/driveItem/path/update"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
````
|
|
|
|
## Creating Share Invitation / Link
|
|
|
|
### Create a link share `POST /drives/{drive-id}/items/{item-id}/createLink`
|
|
|
|
https://owncloud.dev/libre-graph-api/#/drives.permissions/CreateLink
|
|
|
|
### Create a user/group share `POST /drives/{drive-id}/items/{item-id}/invite`
|
|
|
|
https://owncloud.dev/libre-graph-api/#/drives.permissions/Invite
|
|
|
|
## Reading Permissions
|
|
|
|
### List the effective sharing permissions on a driveitem `GET /drives/{drive-id}/items/{item-id}/permissions`
|
|
|
|
https://owncloud.dev/libre-graph-api/#/drives.permissions/ListPermissions
|
|
|
|
### List Get sharing permission for a file or folder `GET /drives/{drive-id}/items/{item-id}/permissions/{perm-id}`
|
|
|
|
https://owncloud.dev/libre-graph-api/#/drives.permissions/GetPermission
|
|
|
|
## Updating Permissions
|
|
|
|
### Updating sharing permission `POST /drives/{drive-id}/items/{item-id}/permissions/{perm-id}`
|
|
|
|
https://owncloud.dev/libre-graph-api/#/drives.permissions/UpdatePermission
|
|
|
|
### Set password of permission `POST /drives/{drive-id}/items/{item-id}/permissions/{perm-id}/setPassword`
|
|
|
|
https://owncloud.dev/libre-graph-api/#/drives.permissions/SetPermissionPassword
|
|
|
|
### Deleting permission `DELETE /drives/{drive-id}/items/{item-id}/permissions/{perm-id}`
|
|
|
|
https://owncloud.dev/libre-graph-api/#/drives.permissions/DeletePermission |