Symfony2 ACL 시스템을 사용하여이를 달성하는 우아한 방법을 아는 사람이 있는지 궁금합니다. 다른 기준과 결합 된 Symfony2 ACL
나는ROLE_USER
에 의해 편집 할 필요가있는
Comment
엔티티 (내 도메인 개체)가 있지만 이것은 단지 게시 된 주석 5 분 이내에 허용 - 그렇지 않으면 주석 만
ROLE_ADMIN
편집 할 수 있습니다.
ROLE_USER
및 ROLE_ADMIN
으로 만 편집 할 수 있도록 간단하게 각각 RoleSecurityIdentity
을 만듭니다.
이제는 ROLE_USER
의 시간 요소를 통합하려고 할 때 제 문제가 발생합니다. 내 첫 번째 문제는 ACL 테이블뿐 아니라 도메인 객체의 정보가 필요하다는 것입니다. 그러나 이것은 Comment
이 게시 된 시간을 보유 할 수있는 사용자 정의 ObjectIdentity
클래스를 작성하여 해결할 수 있다고 생각합니다.
지금 내가 생각하는 어려운 부분
위해 나는 또한 작성시보고 알고있는 사용자 정의 PermissionGrantingStrategy
을 만들어야합니다. Comment
유형을 검사 할 때로드해야하지만로드하는 방법을 모르겠습니다. 이런 종류의 일을 구성 할 수있는 일종의 공장이 있는지 아는 사람이 있습니까? 따라서 엔터티에 특정 PermissionGrantingStrategy
이 연결되어 있으면 해당 엔터티가 사용됩니다. 그렇지 않으면 기본값이 사용됩니다.
ACL 문서가 약간 희박 해 보이는 것처럼 누군가가 이것을 달성하는 방법을 알고 있다면 나는이 책이 길다는 것을 알고 있습니다. 내 폴백 솔루션은 단순히 코멘트를 편집 할 수 있는지 확인하고 ACL을 전혀 신경 쓸 필요가 없는지 확인하기 위해 일종의 서비스를 만드는 것입니다.
소리가 잘 들리고 보안 컨텍스트의 isGranted (조건부로 컨트롤을 표시하여 설명을 편집 할 때도 사용할 수 있음)를 통해 액세스 할 수 있습니다. 나는 그것이 오늘 밤에 총을 맞을 것이고 그것이 작동한다면 대답을 체크 할 것이다. 그러나 당신이 승자 위에있는 것처럼 보인다 :) 고마워! – Kasheen
이 솔루션을 구현 한 후 확인해 보겠습니다. 투표자를 만들 때 함정을 많이 발견하여 도움이 될만한 코드를 게시 할 예정입니다. 그렇기 때문에 내 코드가 설명서로 제공되기를 바랍니다. 나는 정확함을 보장 할 수 없다.). – Kasheen