Запретить добавление элементов в список или документацию - PullRequest
0 голосов
/ 28 февраля 2010

Как я могу запретить добавление элемента или документа в список или библиотеку документов? Из-за некоторых других сценариев функций я не могу нарушить наследование ролей, и у меня есть настраиваемые разрешения для списка. Сегодня мы ограничиваем добавление с помощью обработчика событий (добавление элементов) - но это приводит к плохому UX.

Есть ли способ иметь наследование ролей для списка и при этом иметь базовую маску разрешений? Примерно так: разрешить все, что предлагает родительский веб, но не X, Y, Z. Прерывание наследования ролей традиционным способом ставит проблему явного управления пользователями и ролями. Здесь может помочь удержание SPGoup другого SPGoup, но это тоже невозможно. Дайте мне знать ваши предложения.

Ответы [ 5 ]

0 голосов
/ 01 марта 2010

Если вы используете пользовательский шаблон списка, вы можете создать пользовательский шаблон панели инструментов . Тем не менее, вы, вероятно, не захотите использовать это в шаблоне списка OOTB, и похоже, что он не будет работать на существующем списке .

Даже если вы реализуете это, я все равно оставлю Event Receiver на месте, чтобы предотвратить подделку URL.

0 голосов
/ 28 февраля 2010

Я что-то здесь упускаю, когда предлагаю: просто скрыть панель инструментов (или определенную кнопку) на странице просмотра? Это безболезненный хук CSS, выполняемый на странице просмотра или в SharePoint Designer

0 голосов
/ 28 февраля 2010

Вы можете решить свою проблему, создав веб-часть со следующими функциями.

Определите, что зарегистрированный пользователь находится в группе администраторов. Если он не входит в эту группу, отправьте предупреждение javascript о том, что «у вас нет разрешения на добавление нового элемента», и перенаправьте на страницу (location.href = "") allitems.aspx.

И разместите эту веб-часть на странице Newform.aspx. (добавить & toolpaneview = 2 & sharedview = true в URL-адресе Newform.aspx для страницы редактирования)

Надеюсь, это поможет. Дайте мне знать, если вам нужна дополнительная помощь.

0 голосов
/ 28 февраля 2010

Создайте IHTTPModule и создайте подкласс контекстного события AuthenticateRequest.

В процедуре AuthenticateRequest вы можете проверить, какой тип действия происходит, а затем перенаправить пользователя на страницу SharePoint «Отказано в доступе». Именно так SharePoint выполняет эту функцию, поэтому опыт использования UX будет таким же.

Если вы хотите узнать мое мнение, я бы остановился на том, как SharePoint обрабатывает разрешения «из коробки» и нарушает наследование ролей. Конечно, это добавит новые сложности в вашу жизнь. Но я думаю, что вы можете лучше управлять этими сложностями с помощью SharePoint Admin Toolkit и некоторых пользовательских утилит для управления разрешениями. Я думаю, что это лучшее решение, чем то, что вы пытаетесь сделать.

0 голосов
/ 28 февраля 2010

Я думаю, что вы просите, чтобы пользователь мог добавить разрешения в список, но на самом деле не может быть добавлен в список. Приемник событий будет лучшим способом. Единственное другое решение, которое я могу придумать, - это использовать пользовательскую форму элемента, которая будет выполнять проверку.

...