只要我將sonata_admin.security.handler
設置爲sonata.admin.security.handler.acl
,唯一有權訪問的用戶就是具有ROLE_SUPER_ADMIN的用戶。 我認爲我配置一切正常,顯然不是。AclVoter拒絕訪問'LIST'
我想:
- 給用戶真正發揮作用,而不是
ROLE_VIP_CONTACT_ADMIN
由一個fos_group,沒有成功分配。 - 爲
security.access_decision_manager.strategy
所有選項:肯定的,共識和一致 - 刪除所有ACL表,ACL:初始化,奏鳴曲:管理員:設置的ACL,有和沒有奏鳴曲:管理員:生成對象的ACL和清除緩存每次。
沒有成功。
# Acme\MyBundle\Controller\CRUDController.php
$securityContext->getAdminPermissions();
# -> ["CREATE", "LIST", "DELETE", "UNDELETE", "EXPORT", "OPERATOR", "MASTER"]
dump($this->admin->getSecurityInformation());
/* -> array:3 [▼
"GUEST" => array:2 [▼
0 => "VIEW"
1 => "LIST"
]
"STAFF" => array:3 [▼
0 => "EDIT"
1 => "LIST"
2 => "CREATE"
]
"ADMIN" => array:3 [▼
0 => "MASTER"
1 => "OPERATOR"
2 => "EXPORT"
]
] */
dump($this->getUser()->getRoles());
/* -> array:15 [▼
0 => "ROLE_ADMIN"
1 => "ROLE_VIP_CONTACT_GUEST"
2 => "ROLE_VIP_CONTACT_STAFF"
3 => "ROLE_VIP_CONTACT_ADMIN" # <--- I gave him everything!
[...]
9 => "ROLE_ALLOWED_TO_SWITCH"
[...]
16 => "ROLE_USER"
] */
現在我打開瀏覽器,進入app_dev.php/my-path-to/vip/contact/list
,導致一個AccessDeniedException。
/編輯:這是同樣的問題,因爲這裏ACL + SonataAdminBundle + SonataUserBundle。