簡體   English   中英

角色和access_control fosuserbundle

[英]roles and access_control fosuserbundle

我正在使用FOSUserBundle,現在正在嘗試角色和訪問控制。

我試圖創建一個新角色,更改一個用戶的角色,然后訪問訪問受限的頁面。

security.yml:

security:
    encoders:
        FN\UserBundle\Entity\User: sha512

    role_hierarchy:
        ROLE_USER_CONFIRMED:    ROLE_USER
        ROLE_ADMIN:             [ROLE_USER, ROLE_USER_CONFIRMED]
        ROLE_SUPER_ADMIN:       [ROLE_USER, ROLE_USER_CONFIRMED, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

    providers:
        main:
            id: fos_user.user_provider.username

    firewalls:
        dev:
            pattern:  ^/(_(profiler|wdt)|css|images|js)/
            security: false

        main_login:
            pattern: ^/login$
            anonymous: true

        main:
            pattern: ^/
            anonymous: true
            provider: main
            form_login:
                login_path: fos_user_security_login
                check_path: fos_user_security_check
                always_use_default_target_path: false
                default_target_path:            /client/home
                target_path_parameter:          _target_path
                use_referer:                    false
            logout:
                path:       fos_user_security_logout
                target:     /home
            remember_me:
                key:        %secret%

    access_control:
        - { path: ^/client, roles: ROLE_USER_CONFIRMED }
        - { path: ^/admin, roles: ROLE_ADMIN }

我通過$user->setRoles(array('ROLE_USER_CONFIRMED'));更改了用戶的角​​色$user->setRoles(array('ROLE_USER_CONFIRMED'));

在我的數據庫中,用戶角色發生了很好的變化,但是當我在FOSUserBundle工具欄中單擊該用戶時,我的用戶將停留在ROLE_USER中。 當我進入頁面“ xxx / client / home”時,我有一個“訪問被拒絕”頁面。

您是否知道為什么角色在我的數據庫中發生了很好的變化,但是我無法打開頁面?

您有用戶注銷然后重新登錄嗎? 登錄后,角色將被拉出並保存為會話的一部分,因此,如果您在用戶登錄到計算機上時應用了角色,則用戶必須先注銷然后再登錄,才能看到該角色反映在該計算機上。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM