FOS Userbundle是否在某些条件下忽略db存储的角色?

时间:2015-01-09 16:01:51

标签: symfony fosuserbundle role

通过php app/console fos:user:promote xyz ROLE_ADMINphp app/console fos:user:promote xyz --super向用户提升角色ROLE_ADMIN后,数据库中相应的“角色”字段显示:

a:2:{i:0;s:10:"ROLE_ADMIN";i:1;s:16:"ROLE_SUPER_ADMIN";}

两个角色都添加到app/config/security.yml中,但在以xyz登录后,我无法访问所需的页面(403)并使用Symfonys工具栏,分析器/安全性显示:Roles [ROLE_USER]

其他捆绑相关的任务,如登录/注销,通过电子邮件注册/确认,重置密码等正常工作。如何强制捆绑(或Symfony?)从db读取角色或为什么不读取它们?

我的security.yml:

# app/config/security.yml

安全性:     编码器:         FOS \ UserBundle \ Model \ UserInterface:sh​​a512

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: form.csrf_provider
            default_target_path: article_index
        logout:
            path: /logout
            target: article_index
        anonymous:    true

access_control:
    - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/admin/, role: ROLE_ADMIN }
    - { path: ^/article/new, role: ROLE_USER }
    - { path: ^/article/create, role: ROLE_USER }
    - { path: ^/comment/new, role: ROLE_USER }

acl:
    connection: default

0 个答案:

没有答案