Ошибка отказа в доступе (только чтение) при настройке contentTypeID через Graph - PullRequest
0 голосов
/ 24 августа 2018

Мы используем API Graph для установки типа содержимого документа SharePoint. Не изменяя код, мы получаем ошибки «Отказано в доступе», начиная с 23 августа.

Мы выполняем "PATCH" по адресу "https://graph.microsoft.com/v1.0/sites/[companyName].sharepoint.com,[siteCollectionID],[siteId]/lists/[listId]/items/[itemId]/fields" С данными запроса "{" ContentTypeId ":" 0x [ContentTypeID] "}"

В одной среде SharePoint Online это все еще работает, но в другой среде SharePoint Online мы получаем следующую ошибку: Код: "accessDenied" Сообщение: «Поле« ContentTypeId »доступно только для чтения»

Поскольку это происходит без какого-либо изменения кода, мы задаемся вопросом, изменила ли Microsoft что-то в обновлении SharePoint Online, или есть какие-либо настройки в сбойной среде SharePoint, которые могут вызвать это исключение ??

Спасибо за любую помощь или предложения

Обновление

К сожалению, на выходных дела пошли хуже. Обновление нашей ситуации: у нас есть 2 среды SharePoint Online, которые мы администрируем сами, и 1 SP Online, которые мы не контролируем. В пятницу 1 из моих сред все еще работал правильно, и 2 начал отказывать. Теперь в понедельник все 3 среды терпят неудачу. Я на 100% уверен, что мы не меняли код, а в средах с 2 SP я на 100% уверен, что мы не изменили никаких настроек.

Я пытаюсь просмотреть обновления SharePoint Online с помощью дорожной карты Office (https://products.office.com/nl-NL/business/office-365-roadmap?filters=%26freeformsearch=SharePoint) или есть еще какие-нибудь полезные места, которые я мог бы использовать?

Ответы [ 3 ]

0 голосов
/ 27 августа 2018

Я полагаю, что в Graph есть какое-то изменение.Протестировал звонки в Почтальоне, и я могу подтвердить, что вызов Графа перестал работать в нескольких средах, начиная с 23 августа.Насколько я могу судить, это не имеет ничего общего с какими-либо настройками среды SharePoint.

В качестве обходного пути все еще представляется возможным изменить тип контента с помощью API REST SharePoint.

PATCH {siteurl}/_api/web/lists(guid'{libraryId}')/items({id})
If-Match: {eTag}
X-HTTP-Method: Merge

{"ContentTypeId": "0x0101009E44B70FDF6D5D418E3B608C7DB4E8DB0100F24E9188A7EE514197DF449302E7D11C"}

Немного раздражает необходимость прибегать к API SharePoint к чему-то, что раньше работало с Graph.

0 голосов
/ 27 августа 2018

Чтобы изменить тип содержимого элемента списка с помощью графического API, вы фактически хотите изменить фасет ContentType для самого элемента, а не для полей ContentType или ContentTypeID. Вот пример:

PATCH 

https://graph.microsoft.com/v1.0/sites/YOURTENANT.sharepoint.com:/sites/SITENAME:/lists/LISTNAME/items/1/

{
    "contentType": { "id": "0x0100D3426610C727AC42B5238A1FA52864F6" }
}

В этом случае это Id моего основного типа предмета. Я не уверен, почему исправление к полю ContentTypeId могло бы сработать, так как оно не является адресуемым полем в нашем базовом коде. Я собираюсь продолжить копать, чтобы увидеть, было ли изменение сделано недавно, но, насколько я могу судить прямо сейчас, оно действительно не должно было работать раньше, так как ContentType является сложным типом, который включает в себя как имя, так и Id, так что исправление поля прямо не правильно.

0 голосов
/ 27 августа 2018

После некоторых копаний я не вижу никаких официальных сообщений от Microsoft, в которых бы сообщалось о каких-либо обновлениях, связанных с Sharepoint онлайн. Но это может быть просто задержка или что-то, что они забыли.

Из вашего кода ошибки. «accessDenied» Сообщение: «Поле« ContentTypeId »доступно только для чтения». Кажется, разрешения были изменены.

Я бы посоветовал вам проверить элемент Field, который определяет столбец сайта. Или сравните две онлайновые среды SharePoint, чтобы увидеть, изменились ли разрешения, как предполагалось.

ReadOnly="TRUE" | "FALSE"
ReadOnlyEnforced="TRUE" | "FALSE"

Возможно, администратор сайта подумывал о блокировке столбца, но не забудьте снять его. Иногда, когда создается новый столбец сайта, администратор SharePoint устанавливает его только для чтения или только для чтения, чтобы пользователь не мог редактировать данные, хранящиеся в поле. Это можно сделать с помощью PowerShell или CSOM.

Вот некоторые ссылки и поле свойство .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...