我正在使用fosuserbundle进行注册和登录(身份验证) . 我想在注册时分配角色(使用复选框) .
这三个将采用复选框ROLE_ADMIN,ROLE_USER,ROLE_SUPPER_ADMIN的形式 .
我创建了一个扩展baseUser的User实体 . 我有RegisterType扩展BaseType .
我想使用fosuserbundle的角色值,如何将fosuserbundle的角色与复选框链接?
我的security.yml如下所示
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: ROLE_ADMIN
providers:
fos_userbundle:
id: fos_user.user_provider.username
firewalls:
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_provider: security.csrf.token_manager
logout:
path: /logout
target: /login
anonymous: true
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: ROLE_USER }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/Services/, role: ROLE_USER }
我现在必须做些什么来实现我想要的目标?
2 回答
脚步 :
在security.yml(http://symfony.com/doc/current/book/security.html)中添加安全角色 .
创建一个数组,并在内部表单构建器中创建复选框组合 .
内部控制器,在创建用户实体后使用:$ userEntity-> setRoles([SELECTEDROLE VAUES IN POST VAR]);
POST VAR中的SELECTEDROLE VAUES ===注册过程中用户选择的值 .
在注册时分配角色您可以向表单类添加事件订阅者或事件监听器,并使用表单事件“formEvents :: POST_SUBMIT”
More details