首页 文章

如何在fosuserbundle用户注册中分配角色(使用复选框)?

提问于
浏览
-2

我正在使用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 回答

  • 0

    脚步 :

    • 在security.yml(http://symfony.com/doc/current/book/security.html)中添加安全角色 .

    • 创建一个数组,并在内部表单构建器中创建复选框组合 .

    • 内部控制器,在创建用户实体后使用:$ userEntity-> setRoles([SELECTEDROLE VAUES IN POST VAR]);

    POST VAR中的SELECTEDROLE VAUES ===注册过程中用户选择的值 .

  • 0

    在注册时分配角色您可以向表单类添加事件订阅者或事件监听器,并使用表单事件“formEvents :: POST_SUBMIT”

    More details

相关问题