Symfony2:不同类型的用户

时间:2014-04-03 11:47:15

标签: php symfony fosuserbundle pugxmultiuserbundle

(抱歉我的英语不好)

我需要创建不同类型的用户,并为每个用户配置特定的配置。请注意,我知道PUGXMultiUserBundle和FOSUserBundle的存在,但我想知道我是否真的需要使用这个包。

我需要3种类型的用户:

  • SuperAdmin:在后端登录并可以无限制地访问所有数据。将只有一个,没有更多。可以创建新的' Admin'和'用户'用户。

  • 管理员:在后端登录(与SuperAdmin相同的形式),可以访问与SuperAdmin相同的数据,但会过滤到创建并分配给它的数据。可以是具有此类用户的许多用户。可以创建新用户'用户。

  • 用户:在前端登录并访问自己的数据。可以创建自己的帐户。

我真的需要使用PUGXMultiUserBundle来管理吗? 真的我只需要三种类型的用户吗? SuperAdmin和Admin将共享相同的界面,并且只有一个SuperAdmin。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您可以在security.yml中添加许多roles in Symfony 2来提供。 您可以使用access_control设置用户可以访问的页面。

access_control:
        - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }

限制访问的另一种方法是使用注释和@Security。

您可以使用security.ymlrole_hierarchy中定义用户角色。

role_hierarchy:
        ROLE_SUPER_ADMIN: [ROLE_ADMIN] 
        ROLE_ADMIN: ROLE_USER

请注意,Symfony 2为经过身份验证的人ROLE_USER提供默认值。

另一方面,使用FosUserBundle可以节省时间。