Создание списка разрешений на общий доступ в элементе DriveItem

Создание списка разрешений совместного доступа в элементе DriveItem.

Доступ к разрешениями совместного доступа

Коллекция разрешений включает потенциально конфиденциальные данные и может быть доступна не для каждого отправителя вызовов.

  • Для владельца элемента возвращаются все разрешения совместного доступа. Это относится и к совладельцам.
  • Если вызов отправляет не владелец, возвращаются только те разрешения, которые относятся к отправителю вызова.
  • Свойства разрешений совместного доступа, содержащие секреты (например, shareId и webUrl), возвращаются только для тех пользователей, которые могут создать такое разрешение.

Разрешения

Для вызова этого API требуется одно из следующих разрешений. Дополнительные сведения, включая сведения о том, как выбрать разрешения, см. в статье Разрешения.

Тип разрешения Разрешения (в порядке повышения привилегий)
Делегированные (рабочая или учебная учетная запись) Files.Read, Files.ReadWrite, Files.Read.All, Files.ReadWrite.All, Sites.Read.All, Sites.ReadWrite.All
Делегированные (личная учетная запись Майкрософт) Files.Read, Files.ReadWrite, Files.Read.All, Files.ReadWrite.All
Для приложений Files.Read.All, Files.ReadWrite.All, Sites.Read.All, Sites.ReadWrite.All

HTTP-запрос

GET /drives/{drive-id}/items/{item-id}/permissions
GET /groups/{group-id}/drive/items/{item-id}/permissions
GET /me/drive/items/{item-id}/permissions
GET /me/drive/root:/{path}:/permissions
GET /sites/{siteId}/drive/items/{itemId}/permissions
GET /users/{userId}/drive/items/{itemId}/permissions

Необязательные параметры запросов

Этот метод поддерживает $selectпараметры запроса OData для настройки ответа.

Необязательные заголовки запросов

Имя Тип Описание
if-none-match string Если указан заголовок запроса, а предоставленный тег etag совпадает с текущим тегом etag элемента, то возвращается ответ HTTP 304 Not Modified.

Ответ

В случае успешного выполнения этот метод возвращает код ответа 200 OK и коллекцию ресурсов Permission в тексте ответа.

Действующие разрешения совместного доступа для элемента DriveItem можно получить из двух источников:

  • разрешения совместного доступа, примененные непосредственно к самому элементу DriveItem;
  • разрешения на общий доступ, унаследованные от предков элемента DriveItem.

Абоненты могут распознать унаследованное разрешение, проверив свойство inheritedFrom. Это свойство — ресурс itemReference, отсылающий к предшествующему элементу, от которого унаследовано разрешение.

Уровни разрешений SharePoint, заданные для элемента, возвращаются с префиксом SP. Примеры: SP.View Only, SP.Limited Access, SP.View Web Analytics Data. См. полный список ролей SharePoint.

Пример

В этом примере показано, как получить набор разрешений для элемента в объекте drive пользователя, выполнившего вход в систему.

GET /me/drive/items/{item-id}/permissions

Ответ

Этот пример ответа включает три разрешения. Первое разрешение представляет собой ссылку совместного доступа с разрешениями на изменение, второе — явное разрешение для пользователя с именем John, которое унаследовано от родительской папки, а третье разрешение — это ссылка совместного доступа с правами на чтение и запись, созданная приложением.

HTTP/1.1 200 OK
Content-Type: application/json

{
  "value": [
    {
      "id": "1",
      "roles": ["write"],
      "link": {
        "webUrl": "https://onedrive.live.com/redir?resid=5D33DD65C6932946!70859&authkey=!AL7N1QAfSWcjNU8&ithint=folder%2cgif",
        "type": "edit"
      }
    },
    {
      "id": "2",
      "roles": ["write"],
      "grantedTo": {
        "user": {
          "id": "5D33DD65C6932946",
          "displayName": "John Doe"
        }
      },
      "inheritedFrom": {
        "driveId": "1234567890ABD",
        "id": "1234567890ABC!123",
        "path": "/drive/root:/Documents" }
    },
    {
      "id": "3",
      "roles": ["write"],
      "link": {
        "webUrl": "https://onedrive.live.com/redir?resid=5D33DD65C6932946!70859&authkey=!AL7N1QAfSWcjNU8&ithint=folder%2cgif",
        "type": "edit",
        "application": {
          "id": "12345",
          "displayName": "Contoso Time Manager"
        }
      }
    }
  ]
}

Замечания

Связи между разрешениями ресурса DriveItem невозможно развернуть как часть запроса на получение DriveItem или коллекции DriveItems. Необходимо открыть доступ непосредственно к свойству разрешений.

Ответы с ошибками

Дополнительные сведения о том, как возвращаются ошибки, см. в статье Отклики ошибок.