Ошибка прерывания наследования ролей в элементе списка SharePoint с помощью PnPJS
Я использую PnPJS в веб-части SPFx, в которой у меня есть способ установить разрешения на уровне настраиваемого элемента для определенных элементов в нескольких списках. Мой код выглядит следующим образом:
let listIds: string[] = [
"LISTGUID1",
"LISTGUID2"
];
for (const listId of listIds) {
const listItems: Item[] = await sp.web.lists
.getById(listId)
.items
.filter(`LookupFieldId eq ${lfId}`)
.get();
if (Validate.ArrayWithElements(listItems)) {
for (const item of listItems) {
await item.breakRoleInheritance(false);
await item.roleAssignments.add(userId, roleDefId);
}
}
}
Я получаю сообщение об ошибке в следующей строке:
await item.breakRoleInheritance(false, false);
Сообщение об ошибке выглядит следующим образом:
Uncaught (в обещании) TypeError: item.breakRoleInheritance не является функцией
Это также не работает, когда я явно привожу результат для ввода Item
. ВItem
класс расширяется SharePointQueryableShareableItem
а также SharePointQueryableShareableItem
расширяет SharePointQueryableSecurable
. Метод определяется в последнем.
1 ответ
Я только что решил проблему, добавив импорт в свой компонент библиотеки:
import "@pnp/sp/security/web";
import "@pnp/sp/security/list";
import "@pnp/sp/security/item";
Источник: https://github.com/pnp/pnpjs/issues/1250