2012-02-24 8 views
2

私は、Sharepointリストの次のオプションを定義する可能性を探しています。私はそれがインターフェイスから行うことができますが、XMLやコードからの場合はどうすればいいのですか?SPリストの編集を自分のアイテムに限定する方法は?

  • の貢献者は、アイテムを作成することができるはずですが、修正したり、他のユーザーのアイテムを削除できないようにする必要があり( - はい、でも自分の項目を編集):私は、リスト定義またはリストのインスタンスで、このどこかを設定することができます。

  • 承認者、サイト管理者およびサイトコレクションのadministraotrsは、あなたが最も可能性が高いほとんどのスコープのために利用可能であるRoleAssignmentsプロパティを探しているすべての項目

答えて

1

を完全に制御する必要があります。

は、あなたがこの

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(); 
} 
2

Trikksようなもので始めることができると仮定し、これは一つの解決策ですが、あなたは私を考えていました。
私は必要なものがWriteSecurityです。フィーチャーレシーバーを追加し、FeatureActivatedSPList.WriteSecurity = 2をこのリストに設定しました。

私はこのMSDNドキュメントを見つけました。http://msdn.microsoft.com/en-us/library/dd588628(v=office.11).aspx
これはコードで設定することができますが、どこで?

ドキュメントのように、この部分をListDefinitionのschema.xmlに追加しましたが、これは機能しません。配備と新しいリストの作成後、私はリスト設定 - >詳細設定に行き、「アクセスの作成と編集」にチェックを入れます。それでも、最初のオプションがチェックされ、秒はチェックされません。

関連する問題