2014-09-19 191 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