Как дать разрешения SPGroup для SPItem? - PullRequest
5 голосов
/ 08 февраля 2011

Я попытался найти простой пример, как дать определенной группе Sharepoint X, уровень разрешения Y, для элемента списка Z - но не могу найти пример кода.

Самый короткий код, который я мог придумать для назначения определенных пользователей разрешений (в данном случае «Reader») для элемента, выглядит следующим образом:

SPRoleDefinition spRole = spWeb.RoleDefinitions["Reader"];    
SPRoleAssignment roleAssignment= new SPRoleAssignment("//myDomain/myUser",
                                                      "none@example.org",
                                                      "Name", "Notes");    
roleAssignment.RoleDefinitionBindings.Add(spRole);

SPListItem listItem = spWeb.GetListItem("http://<URL to item somewhere on the Site>");
listItem.BreakRoleInheritance(true);
listItem.RoleAssegnments.Add(roleAssignment);
listItem.Update();

Я знаю, что SPRoleAssignment.Add может также взять SPPrincipal, который, в свою очередь, является группой - я просто не знаю, как ее написать.

Пожалуйста, дайте мне пример кода, как добавить существующую группу Sharepoint (например, "MyGroup") с уровнем разрешений "Reader" к моему элементу.

1 Ответ

11 голосов
/ 08 февраля 2011

На самом деле это было довольно просто - вместо SPRoleAssignment("user","name"...) я мог просто добавить SPGroup к назначению роли, и это сработало! Полный код следующий:

//note: using SiteGroups is "safer",
//because also groups which don't yet have any permissions are included
SPGroup spGroup = spWeb.SiteGroups["MyGroup"];
SPRoleDefinition spRole = spWeb.RoleDefinitions["Read"]; 

SPRoleAssignment roleAssignment= new SPRoleAssignment(spGroup);
roleAssignment.RoleDefinitionBindings.Add(spRole);

SPListItem listItem = spWeb.GetListItem("http://<URL to item somewhere on the Site>");
listItem.BreakRoleInheritance(true);
listItem.RoleAssignments.Add(roleAssignment);
listItem.Update();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...