sonata admin bundle acl-class-field和acl-object-field

时间:2012-05-21 11:55:05

标签: symfony symfony-sonata

如何在sonata admin bundle中使用class-field-scope设置ACL

使用SonataAdminBundle设置ACL非常简单 至今。 现在我想深入挖掘一下。但我找不到任何东西 有关的文件 类场范围。

我想做的是以下内容:

假设我有一个产品实体。现在我想限制访问 ROLE_ADMIN_PRODUCT_STAFF用户 对于该实体的“field_XY”。

ROLE_ADMIN_PRODUCT_EDITOR应该有权访问(VIEW,EDIT)。

任何人都有过这种要求的经验吗?!

1 个答案:

答案 0 :(得分: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');
    }
}