Редактировать только собственные элементы списка в Windows Sharepoint Services 3.0 - PullRequest
3 голосов
/ 09 апреля 2009

Есть ли способ ограничить разрешение «редактировать элемент» в WSS 3.0, чтобы пользователь мог редактировать только свои собственные документы или элементы списка? Нам нужна возможность редактировать только те документы / элементы списка, которые он создает, а НЕ элементы, созданные кем-то другим. Таким образом, по существу, нам нужно подмножество прав EDIT, а также ADD.

Возможно ли это в Windows Sharepoint Services 3.0? Есть ли способ создания пользовательских разрешений в коде или функции?

Ответы [ 8 ]

4 голосов
/ 07 мая 2009

WSS имеет базовый пользовательский интерфейс для настройки разрешения на уровне элементов для элементов списка, но они скрывают это от пользовательского интерфейса для библиотек документов. Если вы зайдете в список Settings->List Settings->Avanced settings, вы увидите варианты, чтобы сделать в значительной степени то, что вы просите. Однако в библиотеках документов этот интерфейс недоступен. Настройки, которые он использует, доступны через объектную модель.

Вы можете установить те же свойства для библиотеки документов следующим образом:

SPDocumentLibrary onlyOwnLib = theWeb.Lists["DocLibName"]  
onlyOwnLib.WriteSecurity = 2;  
onlyOwnLib.Update();  

И это должно сделать это. Однако, по-видимому, это на самом деле не устанавливает разрешения; он просто контролирует, что пользователь может делать через пользовательский интерфейс. Если бы у них был другой интерфейс к библиотеке (например, через WebDAV) или список (например, через веб-службы), это не помешало бы им редактировать элементы, которые они не создавали. Если вам нужны настоящие разрешения на уровне элементов, я думаю, вам нужно пройти путь обработчика событий.

Эта запись от Мэтта Морса объясняет это более подробно, и он даже написал инструмент командной строки, чтобы установить свойство (плюс свойство .ReadSecurity) для списков и библиотек.

2 голосов
/ 10 апреля 2009

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

Мне часто приходится копировать документы из другой системы в список в SharePoint, и в этом случае права на редактирование будут назначены системному пользователю, который передал документ, если только вы не используете подход, предложенный Кирком Лаймоном здесь

1 голос
/ 31 августа 2011

Это старый вопрос, однако проблема все еще существует.

Способ, который у меня хорошо работал в прошлом, - это использовать рабочий процесс для настройки разрешений при добавлении элемента библиотеки.

Подробнее см. http://www.sharepointusecases.com/index.php/2010/03/configure-item-level-permissions-for-document-libraries-part-2/.

1 голос
/ 19 мая 2009

вот решение по вашему запросу. перейти к списку -> список настроек -> дополнительные настройки

вы увидите раздел

Доступ для чтения: укажите, какие элементы могут читать пользователи

Все предметы Только свои

Доступ для редактирования: укажите, какие элементы могут редактировать пользователи

Все предметы Только свои Нет

выберите параметры в зависимости от требований. это все сделано .. хочу еще, нажмите на http: // mastermoss.wordpress.com

1 голос
/ 13 апреля 2009

Обратите внимание, что разрешения на уровне элементов для большого количества документов значительно увеличивают нагрузку на сервер SQL.

0 голосов
/ 03 июля 2010

Если вам нужно разрешение «Только их собственные» для библиотеки документов, ее там нет сразу. Но я создал решение в CodePlex, которое добавляет это для библиотек документов - посмотрите на http://moresharepoint.codeplex.com.

0 голосов
/ 10 апреля 2009

Кроме того, вы можете просто дать каждому человеку свою собственную папку.

Дайте всем разрешения на чтение в списке / библиотеке документов SharePoint, но дайте каждому человеку полный контроль над своей папкой. Это позволит всем читать все в списке, но создавать / редактировать свои собственные документы.

0 голосов
/ 10 апреля 2009

Я считаю, что подобные разрешения можно создавать через пользовательский интерфейс. Это зависит от масштаба и количества пунктов списка, которые у вас есть, но вы можете сделать одну из двух вещей. Во-первых (без необходимости создания сценариев) вы могли бы предоставить каждому пользовательский доступ с правом «Чтение», который не позволит им делать все, что вы можете в разрешении «Чтение», но разрешит им добавлять элементы. Затем по каждому элементу щелкните элемент -> управлять разрешениями -> (предоставьте определенному пользователю полномочия Contribute для своего документа).

Если вы создаете список SharePoint, который будет непрактичным, вы можете создать сценарий для обхода всех элементов и убедиться, что у пользователя есть разрешения на добавление (в противном случае он установит разрешение на добавление для этого пользователя).

...