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"
] */
지금 내 브라우저를 열고과 AccessDeniedException 결과 app_dev.php/my-path-to/vip/contact/list
로 이동합니다.
/편집 : 여기는 ACL + SonataAdminBundle + SonataUserBundle과 같은 문제입니다.