2014-09-19 52 views
0

如何修改security.yml以实现此方案?FOSUserBundle:根据角色设置独特角色和认证URL

情景:

  • mysitessss.com - >studentlecturermanager可以访问
  • mysitessss.com/admin - >lecturermanager可以访问
  • mysitessss.com/admin/private - >manager可以访问

我应该运行哪个确切的命令来创建相应的u SERS?

  • 学生:php app/console fos:user:create ?????????
  • 教师:php app/console fos:user:create ?????????
  • 经理:php app/console fos:user:create ?????????

我读了documentationthis post但我很困惑!

的routing.yml

home: 
    path:/

admin: 
    path: /admin 

admin_private: 
    path: /admin/private 

应用程序/配置/ security.yml

security: 
    role_hierarchy: 
     ROLE_STUDENT: ????????? 
     ROLE_LECTURER: ???????????? 
     ROLE_MANAGER: ??????? 

    access_control: 
     - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/, role: ????????? } 
     - { path: ^/admin, role: ????????? } 
     - { path: ^/admin/private, role: ?????????? } 

回答

1

我觉得你这样的security.yml会长相:

security: 
    role_hierarchy: 
     ROLE_LECTURER: [ROLE_STUDENT] 
     ROLE_MANAGER: [ROLE_LECTURER] 

    access_control: 
     - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/, role: ROLE_STUDENT } 
     - { path: ^/admin, role: ROLE_LECTURER } 
     - { path: ^/admin/private, role: ROLE_MANAGER } 

你可以创建 他们每个用户和促进作用:

$ php app/console fos:user:create student 
$ php app/console fos:user:promote student ROLE_STUDENT 
$ php app/console fos:user:create lecturer 
$ php app/console fos:user:promote lecturer ROLE_LECTURER 
# ... etc. 
+0

谢谢。我明天会测试它,并让你知道。 – BentCoder 2014-09-19 21:11:36