我正在处理 SharePoint 2010 。创建功能以自动创建自定义列表。我被分配了一项任务,以编程方式使用功能自动设置每个列表的自定义权限。我想知道这是否可能,如果可以,如何。
这里有两件事:
- 自定义权限级别将使用贡献删除权限创建。
- 此权限和默认可用权限将设置为使用功能定制的列表。
如果可能,请务必指定要覆盖的方法。提前感谢您的宝贵答案。
我正在处理 SharePoint 2010 。创建功能以自动创建自定义列表。我被分配了一项任务,以编程方式使用功能自动设置每个列表的自定义权限。我想知道这是否可能,如果可以,如何。
这里有两件事:
如果可能,请务必指定要覆盖的方法。提前感谢您的宝贵答案。
使用类似于以下的代码覆盖特征接收器的 FeatureActivated 方法:
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
SPWeb web = (SPWeb)properties.Feature.Parent;
SPList list = web.GetList(web.Url + "/Lists/MyList");
SPRoleDefinition roleDef = new SPRoleDefinition();
roleDef.BasePermissions = SPBasePermissions.DeleteListItems
| SPBasePermissions.AddListItems
| SPBasePermissions.EditListItems;
roleDef.Description = "Custom permissions deployed by feature";
roleDef.Name = "Contribute-Delete";
web.RoleDefinitions.Add(roleDef);
roleDef = web.RoleDefinitions[roleDef.Name];
SPMember owner = web.SiteUsers[@"Domain\username"];
SPUser user = web.SiteUsers[@"Domain\username"];
web.SiteGroups.Add("Contribute-Delete",owner, user,"A group for contribute delete access");
SPGroup ContributeDeleteGroup = web.SiteGroups["Contribute-Delete"];
SPRoleAssignment roleAssignment = new SPRoleAssignment(ContributeDeleteGroup);
roleAssignment.RoleDefinitionBindings.Add(roleDef);
list.BreakRoleInheritance(true);
list.RoleAssignments.Add(ContributeDeleteGroup);
}