sonata_admin.security.handler
からsonata.admin.security.handler.acl
に設定すると、ROLE_SUPER_ADMINのアクセス権を持つユーザーのみがアクセスできます。 私はだと思います。私はすべてを正しく構成しましたが、明らかにそうではありません。AclVoterが 'LIST'へのアクセスを拒否する
私が試した:
- をユーザーに代わりfos_groupで割り当てるの本当の役割
ROLE_VIP_CONTACT_ADMIN
を与えるために、何の成功を。 security.access_decision_manager.strategy
のすべてのオプション:すべてのACLのテーブルを削除するには、肯定的、コンセンサスと全会一致- 、ACL:INIT、ソナタ:管理者:セットアップ-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"
] */
今、私は自分のブラウザを開き、AccessDeniedExceptionその結果、app_dev.php/my-path-to/vip/contact/list
に行きます。
/編集:ここと同じ問題ですACL + SonataAdminBundle + SonataUserBundle。