[英]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.