Ошибка прерывания наследования ролей в элементе списка 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

Другие вопросы по тегам