Sonata Admin - 为什么要使用admin checkAccess()而不是isGranted()

时间:2017-05-12 12:51:48

标签: symfony acl sonata-admin

我有一个简单的项目,不需要复杂的ACL。在我的自定义控制器中创建了一个自定义操作,扩展了CRUDController,在那里我检查了这样的访问:

$this->admin->checkAccess('verify', $object);

在模板中,我检查访问权限:

{% if admin.isGranted('VERIFY', object) %}

我的管理员用户可以拥有角色:ADMINSUPER_ADMIN

最好只检查一下这个角色:

$authorizationChecker->isGranted('SUPER_ADMIN');

{% is_granted('SUPER_ADMIN') %}

使用admin进行访问控制有什么大不了的?对我来说,只是检查用户是ADMIN还是SUPER_ADMIN似乎更容易。

1 个答案:

答案 0 :(得分:0)

您希望它通过' admin'并且不直接访问AuthorizationChecker如下:

Sonata将考虑其设置,因为您可以更改奏鸣曲(noop,vs role,vs acl,vs custom)使用的安全策略,而无需更改您检查的位置。访问。

这种解释有意义吗?