我遵循的Silex機制的文檔部分http://silex.sensiolabs.org/doc/providers/security.html#defining-access-rulesSilex的定義訪問規則
這裏是我的confirguration
'security.role_hierarchy' => [
'ROLE_ADMIN' => [
'ROLE_USER',
],
'ROLE_SUPER_ADMIN' => [
'ROLE_USER',
'ROLE_ADMIN',
'ROLE_ALLOWED_TO_SWITCH'
]
],
'security.access_rules' => [
[ '^.*$', 'IS_AUTHENTICATED_ANONYMOUSLY' ],
[ '^/account', 'ROLE_USER' ],
[ '^/admin', 'ROLE_ADMIN' ]
]
所以我需要的是很簡單,匿名用戶可以訪問任何地方(除/帳號/ *和/ admin/*路徑),具有「ROLE_USER」的用戶可以訪問某處和/ account/*路徑,但不能訪問/ admin/*路徑,並且具有「ROLE_ADMIN」的用戶可以隨處訪問。
我做一個很基本的控制器來測試,如果用戶被重定向,如果他不是一個「ROLE_ADMIN」:
$app->get('/admin', function() use ($app) {
return 1;
})->bind('admin');
但不是在所有。他可以查看在/管理,具有打印在頁面上的「1」 ......
據商務部:
With the above configuration, users must have the ROLE_ADMIN to access the /admin section of the website [...] (if that's not the case, the user will be automatically redirected).
確實,謝謝@Yonel – Macbernie