如何在sonata admin bundle中使用class-field-scope设置ACL
使用SonataAdminBundle设置ACL非常简单 至今。 现在我想深入挖掘一下。但我找不到任何东西 有关的文件 类场范围。
我想做的是以下内容:
假设我有一个产品实体。现在我想限制访问 ROLE_ADMIN_PRODUCT_STAFF用户 对于该实体的“field_XY”。
ROLE_ADMIN_PRODUCT_EDITOR应该有权访问(VIEW,EDIT)。
任何人都有过这种要求的经验吗?!
答案 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');
}
}