Symfony2: разные типы пользователей
(Извините за мой плохой английский)
Мне нужно создавать разных типов пользователей, с определенной конфигурацией для каждого пользователя. Обратите внимание, что я знаю существование PUGXMultiUserBundle и FOSUserBundle, но я хочу знать, действительно ли мне нужно использовать эти пакеты.
Мне нужно 3 типа пользователей:
SuperAdmin: авторизуйтесь на сервере и получите доступ ко всем данным без ограничений. Будет только один, не более. Можно создавать новых пользователей "Администратор" и "Пользователь".
Администратор: выполните вход в бэкэнд (в той же форме, что и в SuperAdmin) и получите доступ к тем же данным, что и SuperAdmin, но отфильтруйте данные, созданные и назначенные ему. Может быть много пользователей с этим типом пользователя. Может создавать новых пользователей.
Пользователь: войдите на сайт и получите доступ к своим данным. Можете создать свой аккаунт.
Действительно мне нужно использовать PUGXMultiUserBundle для управления этим? Неужели мне нужно три типа пользователей только из двух? SuperAdmin и Admin будут использовать один и тот же интерфейс, и будет только ОДИН SuperAdmin.
Спасибо за вашу помощь!
1 ответ
Вы можете предоставить много ролей в Symfony 2, добавив их в security.yml
, Вы можете установить страницу, куда пользователь может перейти, используя access_control
,
access_control:
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
Другой способ ограничить доступ - использовать аннотацию и @Security.
Вы можете определить свои роли пользователей в security.yml
с role_hierarchy
,
role_hierarchy:
ROLE_SUPER_ADMIN: [ROLE_ADMIN]
ROLE_ADMIN: ROLE_USER
Обратите внимание, что Symfony 2 обеспечивает значение по умолчанию для аутентифицированного лица, ROLE_USER
,
Другое дело, использование FosUserBundle позволит вам сэкономить время.