Я хочу знать, имеет ли пользователь роль «VIEW_GEOLOC_DATA», но у меня есть проблема с использованием функции веточки is_granted()
.Twig/Symfony2: несколько ролей с is_granted
Если я использую в качестве шаблона:
Roles : {{ dump(app.user.getRoles()) }}
is_granted('ROLE_SUPER_ADMIN') : {{ dump(is_granted('ROLE_SUPER_ADMIN')) }}
is_granted('VIEW_GEOLOC_DATA') : {{ dump(is_granted('VIEW_GEOLOC_DATA')) }}
Это то, что я получаю при рендеринге:
array(2) {
[0]=>
string(16) "ROLE_SUPER_ADMIN"
[1]=>
string(16) "VIEW_GEOLOC_DATA"
}
is_granted('ROLE_SUPER_ADMIN') : bool(true)
is_granted('VIEW_GEOLOC_DATA') : bool(false)
Я пытался войти в и, опорожнение кэш Symfony в.
Я также попытался изменить порядок ролей в массиве, возвращаемый метод getRoles() мой пользователя: функция is_granted будет принимать во внимание только первой роль массива
в качестве ясности, возможно, непосредственно возвращает результат in_array, а не добавляет if/else: 'return in_array ($ role, $ this-> getRoles());' –
Это не то же самое, что is_granted учетные записи для наследования ROLE , в то время как просто проверка того, имеет ли пользователь указанную роль, – Gamesh