Я использую Symfony2 с FOSUserBundle. Мне нужно получить максимальную роль для пользователя.Получить максимальную роль пользователя в Symfony2
role_hierarchy:
ROLE_CONTRIBUTOR: ROLE_USER
ROLE_MODERATOR: ROLE_CONTRIBUTOR
ROLE_ADMIN: ROLE_MODERATOR
ROLE_SUPER_ADMIN: ROLE_ADMIN
Если пользователь имеет роли ROLE_SUPER_ADMIN
и ROLE_CONTRIBUTOR
, мне нужен метод, как $user->getHighestRole()
, что бы вернуть ROLE_SUPER_ADMIN
. Мне нужно, чтобы это выполнялось внутри объекта User, потому что я создаю Rest API, и я хочу открыть метод getHighestRole()
в качестве поля. Я не хочу иметь избыточную информацию о ролях в security.yml
и в AppBundle\Entity\User.php
. Могу ли я получить доступ к security.role_hierarchy
в организации?
Я даже не уверен, что существует самая высокая роль, поскольку роль может содержать любую другую. У вас есть лидерство, за которым я мог бы последовать?
Да, это то, что я думал, мне нужно повторить иерархию роли в сущности. – Hakim
Да, вам нужно, потому что, если вы хотите сделать что-то более динамичное, вам нужно вставить контейнер внутри вашей сущности, и это немного грязно. –