0

ソナタ管理バンドルでclass-field-scopeを使用してACLを設定するにはどうすればよいですか

SonataAdminBundleを使用したACLの設定は、これまでのところ簡単です。ここでもう少し深く掘り下げたいと思います。しかし、class-field-scopeに関するドキュメントが見つかりません。

私がやりたいことは次のとおりです。

私が製品エンティティを持っているとしましょう。次に、そのエンティティの「field_XY」のROLE_ADMIN_PRODUCT_STAFFユーザーのアクセスを制限します。

ただし、ROLE_ADMIN_PRODUCT_EDITORにはアクセス(VIEW、EDIT)が必要です。

誰もがこの種の要件の経験を持っていますか?!

4

1 に答える 1

2

configureFormFields() メソッドで $this->isGranted('ROLE_ADMIN_PRODUCT_STAFF') を使用して、現在ログインしているユーザーの役割に応じてフィールドを追加できます。

例:

protected function configureFormFields(FormMapper $formMapper)
{
    $formMapper
        ->add('first_field')
        ->add('second_field');

    if ($this->isGranted('ROLE_ADMIN_PRODUCT_STAFF') {
        $formMapper
            ->add('field_XY');
    }
}
于 2012-05-21T12:47:24.987 に答える