Получение разрешений объектов SharePoint Online с помощью Microsoft Graph API - PullRequest
1 голос
/ 18 марта 2019

Мне нужно сопоставить разрешения для всех объектов SharePoint Online (сайты, списки, элементы списка, вложения, файлы, папки).Кажется, что это возможно через API CSOM, но в Microsoft Graph ничего подобного не найдено.

Следующий запрос успешно возвращает запрошенный элемент :

https://graph.microsoft.com/beta/sites/root/Lists/{List ID}/items/{item ID}/

Но следующий запрос не возвращает разрешения, как я ожидал:

https://graph.microsoft.com/beta/sites/root/Lists/{List ID}/items/{item ID}/permissions

Я получил следующую ошибку:

{
    "error": {
        "code": "BadRequest",
        "message": "Resource not found for the segment 'permissions'.",
        "innerError": {
            "request-id": "ab9f4cfe-f0e1-433b-9767-96d4b3e58c59",
            "date": "2019-03-18T18:52:21"
        }
    }
}  

Та же ошибка была получена и при следующем запросе:

https://graph.microsoft.com/beta/sites/root/Lists/{List ID}/permissions

Год назад был задан очень похожий вопрос , и ответ состоял в том, что это невозможно.

Возможно ли это сейчас?Если да, то что я делаю не так?

1 Ответ

1 голос
/ 19 марта 2019

В документации по ресурсам List или ListItem не указано permissions в качестве допустимого свойства или отношения.

Если List является библиотекой документов, то вы можете использовать связанную DriveItem для просмотра ее permission коллекции:

GET /v1.0/sites/root/lists/{list-id}/items/{item-id}/driveitem/permissions

Например, выполнение /v1.0/sites/root/lists/eacf1ff2-7f98-4f71-963a-44e0cf35f608/items/4/driveitem/permissions в Обозреватель графиков возвращает:

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#sites('root')/lists('eacf1ff2-7f98-4f71-963a-44e0cf35f608')/items('4')/driveItem/permissions",
  "value": [
    {
      "id": "VGVhbSBTaXRlIE93bmVycw",
      "roles": ["owner"],
      "grantedTo": {
        "user": {
          "displayName": "Team Site Owners"
        }
      },
      "inheritedFrom": {}
    },
    {
      "id": "VGVhbSBTaXRlIFZpc2l0b3Jz",
      "roles": ["read"],
      "grantedTo": {
        "user": {
          "displayName": "Team Site Visitors"
        }
      },
      "inheritedFrom": {}
    },
    {
      "id": "VGVhbSBTaXRlIE1lbWJlcnM",
      "roles": ["write"],
      "grantedTo": {
        "user": {
          "displayName": "Team Site Members"
        }
      },
      "inheritedFrom": {}
    },
    //...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...