Sharepoint 如何将SP列表中的编辑仅限于自己的项目?
我正在寻找为Sharepoint列表定义以下选项的可能性。我知道这可以从接口来完成,但如何从XML或代码来实现呢?我可以在列表定义或列表实例中的某个位置设置此选项:Sharepoint 如何将SP列表中的编辑仅限于自己的项目?,sharepoint,sharepoint-list,splist,Sharepoint,Sharepoint List,Splist,我正在寻找为Sharepoint列表定义以下选项的可能性。我知道这可以从接口来完成,但如何从XML或代码来实现呢?我可以在列表定义或列表实例中的某个位置设置此选项: 贡献者应该能够创建项目,但不能修改或删除其他用户的项目(但编辑自己的项目-是) 审批人、网站管理员和网站集管理员应完全控制所有项目 您很可能正在寻找适用于大多数作用域的RoleAssignments属性 假设你可以这样开始 private void DoStuff() { SPList list = web.Lists[
- 贡献者应该能够创建项目,但不能修改或删除其他用户的项目(但编辑自己的项目-是)
- 审批人、网站管理员和网站集管理员应完全控制所有项目
private void DoStuff()
{
SPList list = web.Lists["MyList"];
// Create custom role
SPRoleDefinitionCollection roles = web.RoleDefinitions;
SPRoleDefinition roleDefinition = roles["Contribute"];
roleDefinition.BasePermissions = SPBasePermissions.AddListItems |
SPBasePermissions.BrowseDirectories |
SPBasePermissions.EditListItems |
SPBasePermissions.DeleteListItems |
SPBasePermissions.AddDelPrivateWebParts;
roleDefinition.Update();
//Creates a new role assignment for a group
SPGroup myGroup = web.SiteGroups["Team Site Members"];
SPRoleAssignmentCollection roleAssignments = web.RoleAssignments;
// SPRoleAssignment accepts a SPPrincipal which can be a SPUser or SPGroup
SPRoleAssignment roleAssignment = new SPRoleAssignment(myGroup);
//add a new role definition to the bound role definitions for the role assignment
SPRoleDefinitionBindingCollection roleDefBindings = roleAssignment.RoleDefinitionBindings;
roleDefBindings.Add(roles["Contribute"]);
//Add the new role assignment to the collection of role assignments for the site.
roleAssignments.Add(roleAssignment);
// Stop inheriting permissions
list.BreakRoleInheritance(true);
list.RoleAssignments.Add(roleAssignment);
list.Update();
}
Trikks,这是一个解决方案,但你让我思考。
结果,我需要的是
写安全性。我添加了feature receiver,并在FeatureActivated
中在此列表上设置SPList.WriteSecurity=2
我找到了这个MSDN文档,
我想可以在代码中设置,但在哪里
我在ListDefinition中将这部分添加到schema.xml中,就像在文档中一样,但这不起作用。部署和创建新列表后,我进入列表设置->高级设置并选中“创建和编辑访问权限”。不过,选中是第一个选项,而不是第二个选项