我正在尋找爲Sharepoint列表定義以下選項的可能性。我知道它可以從接口完成,但是如何從XML或代碼創建呢?我可以設置這個地方在列表定義或列表實例:如何限制SP列表中的編輯僅限於擁有物品?
提供者應該能夠創建項目,但不應該是能夠修改,也不刪除其他用戶的項目(但編輯自己的物品 - 是的)。
審批,網站管理員和網站集administraotrs應該對所有項目
我正在尋找爲Sharepoint列表定義以下選項的可能性。我知道它可以從接口完成,但是如何從XML或代碼創建呢?我可以設置這個地方在列表定義或列表實例:如何限制SP列表中的編輯僅限於擁有物品?
提供者應該能夠創建項目,但不應該是能夠修改,也不刪除其他用戶的項目(但編輯自己的物品 - 是的)。
審批,網站管理員和網站集administraotrs應該對所有項目
你最有可能尋找RoleAssignments特性,可用於大多數示波器完全控制。
想你會的東西像這樣開頭
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,這是一個解決方案,但你讓我思考。原來,我需要的是WriteSecurity
。我添加了功能接收器,並在FeatureActivated
我設置SPList.WriteSecurity = 2
在此列表上。
我發現這個MSDN文檔,http://msdn.microsoft.com/en-us/library/dd588628(v=office.11).aspx
我想可以在代碼中設置它,但在哪裏?
我在ListDefinition中將此部分添加到了schema.xml中,就像在文檔中一樣,但這不起作用。部署並創建新列表後,我轉到列表設置 - >高級設置,然後選中「創建並編輯訪問權限」。不過,檢查是第一種選擇,而不是第二種。