Можно ли программно предоставить разрешение для групп (в SharePoint) на сайт? - PullRequest
2 голосов
/ 14 декабря 2010

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

Когда я создаю сайт, я установил, что он не наследует разрешение

newWeb = SPContext.GetContext(HttpContext.Current).Web.Webs.Add(siteUrl, siteName, siteDescription, (uint)1033, siteTemplate, true, false);

В GUIЗатем я могу перейти к Действиям сайта (на вновь созданном сайте) -> Предоставить разрешение -> найти группы на родительском сайте, а затем предоставить разрешение для этой группы.Таким образом, на родительском сайте myGroup могут иметь разрешения на полный доступ, но на этом сайте я могу установить для него вклад или что-то еще.Возможно ли это сделать при создании сайта или сразу после него (программно)?

Заранее спасибо.

1 Ответ

2 голосов
/ 14 декабря 2010

Вы должны назначить определение роли своей группе.

Вот фрагмент кода, который я написал, чтобы назначить группе одно из предопределенных определений роли sharepoint.

public bool AssignExistingGroupToWeb(SPWeb siteWeb, string GroupName, SPRoleDefinition roleDefinition)
{
//retrieve a group
SPGroup siteGroup = siteWeb.SiteGroups.FindGroupByName(GroupName);

//create a role assignment for the group using the specified SPRoleDefinition
//examples of roles as "Full Control", "Design", etc...
SPRoleAssignment roleAssignment = new SPRoleAssignment(siteGroup);
roleAssignment.RoleDefinitionBindings.Add(roleDefinition);
siteWeb.RoleAssignments.Add(roleAssignment);
siteWeb.Update();
}

Вы можете получить SPRoleDefinition, обратившись к коллекции RoleDefinitions, вот так ...

siteWeb.RoleDefinitions["Contribute"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...