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 позволит вам сэкономить время.

Другие вопросы по тегам