Я создал собственный список SharePoint, который программно настраивает разрешения для каждого элемента списка.Эта часть приложения работает путем очистки всех разрешений в элементе списка и добавления разрешений тем пользователям, которым я хочу предоставить разрешения «Чтение» или «Участие».Я считаю, что эта часть приложения верна: выбрав «Управление разрешениями для элемента списка», я вижу соответствующих пользователей и роли для рассматриваемых элементов списка в списке «Разрешения».
Однако я с удивлением осозналчто только пользователь, отправивший элемент списка, может успешно редактировать элемент.Я опишу то, что вижу, со следующими двумя пользователями: UserA и UserB.Пользователь A отправил элемент списка.Пользователь B пытается изменить тот же элемент списка после назначения разрешений (вручную или программно).
Пользователь B не может редактировать элемент списка:
- Пользователь B может видеть элемент редактированияссылка на панели инструментов элемента.
- Пользователь B может щелкнуть ссылку и увидеть EditForm.aspx.
- Когда Пользователь B вносит изменения и нажимает кнопку отправки, Пользователь B встречает стандартную страницу ошибки SharePoint «Отказано в доступе».
- Обработчик события для обновления элемента списка не запускается.
- Ручное повышение разрешения UserB на включение полного контроля не влияет на поведение, описанное выше.
В отличие от этого, UserA сталкивается далекоболее предсказуемое поведение:
- Пользователь A может видеть ссылку «Изменить элемент» на панели инструментов элемента.
- Пользователь A может щелкнуть ссылку и увидит EditForm.aspx.
- КогдаПользователь A отправляет, изменения сохраняются, и пользователь перенаправляется обратно в список элементов.
- Обработчики событий запускаются после отправки UserA.
Это оставляет меня с несколькими вопросами:
- Это ожидаемое поведение для SharePoint, которое мне удалось пропустить?
- Что можно сделать, чтобы позволить UserB изменять элемент списка?