为了实现这种场景,我应该如何修改security.yml?
场景:
- mysitessss.com->
student
、lecturer
和manager
可以访问 - mysitessss.com/admin->
lecturer
和manager
可以访问 - mysitess.com/admin/private->
manager
可以访问
我应该运行哪个确切的命令来创建相应的用户?
- 学生:php应用程序/控制台fos:user:create
- 教师:php应用程序/控制台fos:user:create
- 管理器:php应用程序/控制台fos:user:create
我阅读了文档和这篇文章,但我感到困惑!
路由.yml
home:
path: /
admin:
path: /admin
admin_private:
path: /admin/private
app/config/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: ?????????? }
我认为您的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.