2017-05-12 40 views
0

我有一个简单的项目,它不需要复杂的ACL。创建一个自定义操作在扩展CRUDController我自定义控制器,还有我检查这样的访问:Sonata Admin - 为什么要使用管理员checkAccess()而不是isGranted()

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

在模板我检查,如访问:

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

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

那岂不是更好只是为了检查的作用,而不是:

$authorizationChecker->isGranted('SUPER_ADMIN'); 

{% is_granted('SUPER_ADMIN') %} 

有什么关于使用管理访问控制大不了的?对于我来说,只是检查用户是ADMIN还是SUPER_ADMIN似乎容易得多。

回答

0

你希望它通过“管理”,而不是直接到AuthorizationChecker走的理由如下:

索纳塔会考虑到它的设置,您可以更改奏鸣曲使用的安全策略(空操作,vs角色,vs acl,vs自定义),而不必对“检查”访问权限进行更改。

这个解释有意义吗?