@AndrewSlv

Symfony: как правильно создавать и работать с ролями из БД?

Помогите разобратсья.
Не могу разобраться как работать с ролями в симфони.
Например : мне нужно N ролей, по ним я планирую разграничение доступа.
Есть соответсвенно Entity: Role и Users.
Фикстурой добавляю в Role, 4 роли : ROLE_USER, ROLE_1, ROLE_2, ROLE_ADMIN
Как мне дальше при регистрации "красиво" сделать определение ролей для юзера.
Т.е.:
1) На этапе регистрации мне необходимо предоставить пользователю выбор ROLE_1, ROLE_2.
Для этого при создании формы мне нужно указать "choice" ROLE_1/ROLE_2. Но как их получить?
Правильно ли я понимаю - форму нужно обявить как сервис и передать в нее EntytyManager - так я смогу получить
из базы роли.
Правильный ли это вариант?
1.1)
Но это не "красиво" использовать при составлении запроса и в дальнейшем при проврке на роль
использовать magic string, типа
- SELECT * FROM Roles WHERE name = 'ROLE_1'
-if($role->getName == "ROLE_1")
etc

Получаеться необходимо заранее создать какието константы в проекте для этих ролей?

2) При описании секции access_control:
- { path: ^/, roles: ROLE_USER } ROLE_1/ROLE_2
- { path: ^/admin, roles: ROLE_ADMIN}
Если поменяються названия ролей.. то необходимо "лезть в код" (првить эту секцию).

Есть ли какойто workaround или best practice для этих вопросов/проблем?

Извиняюсь за возможную сумбурность в описании проблем(ы). Возможно нехватает какихто знаний, скилочка.
Зарнее спасибо за советы.
  • Вопрос задан
  • 1389 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы