2017-05-12 94 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自定義),而不必對「檢查」訪問權限進行更改。

這個解釋有意義嗎?