2

Sharepoint リストの次のオプションを定義する可能性を探しています。インターフェイスから実行できることはわかっていますが、XMLまたはコードから作成するにはどうすればよいですか? これをリスト定義またはリスト インスタンスのどこかに設定できますか:

  • 寄稿者はアイテムを作成できる必要がありますが、他のユーザーのアイテムを変更または削除することはできません (ただし、自分のアイテムを編集する - はい)。

  • 承認者、サイト管理者、およびサイト コレクション管理者は、すべてのアイテムを完全に制御する必要があります

4

2 に答える 2

2

トリック、これは 1 つの解決策ですが、考えさせられました。
結局、私が必要としていたのは ですWriteSecurity。フィーチャー レシーバーを追加し、このリストFeatureActivatedに設定しました。SPList.WriteSecurity = 2

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

ドキュメントのように ListDefinition の schema.xml にこの部分を追加しましたが、これは機能しません。展開して新しいリストを作成したら、[リストの設定] -> [詳細設定] に移動し、[アクセスの作成と編集] をオンにします。それでも、checked は 2 番目ではなく 1 番目のオプションです。

于 2012-02-27T09:18:27.160 に答える
1

ほとんどのスコープで使用できる 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();
}
于 2012-02-25T08:35:26.177 に答える