2012-02-16 2 views
0

나는 개발중인 시스템에서 ACL을 구현하려고 시도해 왔으며 에는 몇 가지 문제점이있었습니다. 이는 대부분 주제가 부족한 문서가 있기 때문입니다. 이 복잡하고 기본적인 구성 요소에 대해 더 많은 정보를 얻으려면 이 정말 좋을 것입니다. 어쨌든, 나는 내가 이해하면 무언가를 작성 드리겠습니다Symfony2 ACL 문제

어쨌든, 내가 겪고있는 문제는 다음과 같습니다 : 1. 나는 Class-Field-Scope ACE로 역할을보고 편집 할 수 있습니다. 개체의 필드 . 이걸 사용하여 뷰를 체크 인하면 : isGranted ('VIEW', 객체, 'myField')

항상 거짓입니다. 클래스의 모든 인스턴스에 클래스 범위를 적용하면 안됩니까? 이 범위가 어떻게 작동하는지 잘 모르겠습니다.

  1. 그룹을 삭제할 때 해당 그룹 과 관련된 ACL 항목을 모두 삭제하고 싶습니다. $ aclProvider-이> deleteAcl (ObjectIdentity :: fromDomainObject ($ 그룹))

의미가 있습니다 :이 같은 시도했습니다. 그런 다음 새로운 그룹을 만들려고합니다. 그룹이 생성됩니다, 하지만 ACL 설정이 오류와 함께 실패합니다

공지 사항 : 정의되지 않은 오프셋 : 0 프로젝트에/공급 업체/심포니/SRC/심포니/ 구성 요소/보안/ACL이/Dbal/MutableAclProvider.php 라인 (850)

도움이 정말 감사드립니다!

답변

4

편집 : 소스 코드를 업데이트했습니다. 지금은 훨씬 더 나은 해결책입니다.

나는 최근에 ACL과 Symfony2를 조금 실험 해왔다. 내가 을 발견 한 내용이 클래스 필드 범위를 확인하는 방법이다에서

: 내가 지금까지 아무런 지식이없는 삭제 ACL을 소개

$post = $postRepo->findOneById(1); 

$securityContext = $this->get('security.context'); 
$oid = new ObjectIdentity('class', 'Liip\\TestBundle\\Entity\\Post'); 

$object = new FieldVote($oid, 'id'); 
if (true === $securityContext->isGranted('EDIT', $object)){ 
    echo "Access to 'id' field granted"; 
}else{ 
    echo "Access denied"; 
} 

$object = new FieldVote($oid, 'post'); 
if (true === $securityContext->isGranted('VIEW', $object)) 
{ 
    echo "Access to 'post' field granted"; 
}else{ 
    echo "Access denied"; 
} 

을, 언젠가 나중에 그 문제를 조사해야합니다 . 이게 도움이 되길 바란다!

주제에 대한 자세한 내용. 아마 당신을 위해하지만, 다른 사용자를 위해 도움이 될 수 있습니다 : Smyfony2 and ACLs 당신을 도움이되지 않았다

감사 레토

+0

그? 저에게 알려주세요! – rryter

+0

아니요, 작동하지 않았습니다. –