2

私はSharePoint2010に取り組んでいます。カスタムリストの作成を自動化する機能を作成します。プログラムで機能を使用して、各リストのカスタム権限を自動的に設定するタスクが割り当てられています。それが可能かどうか、可能であればどのようにすればよいか知りたいのですが。

ここには2つのことがあります。

  1. カスタム権限レベルは、投稿-削除権限で作成されます。
  2. この権限とデフォルトで使用可能な権限は、機能を使用してカスタムメイドされたリストに設定されます。

可能であれば、オーバーライドするメソッドを指定してください。貴重なご回答をよろしくお願いいたします。

4

1 に答える 1

3

次のようなコードで、機能レシーバーの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);
    }
于 2012-07-13T14:59:22.980 に答える