Symfony2를 사용하고 있으며 사용자와 역할이 이미 내 DB에 저장되어 있습니다.데이터베이스에 Symfony2 "access_control"정보를 저장하는 방법은 무엇입니까?
access_control:
- { path: ^/admin, role: ROLE_ADMIN}
- { path: ^/users, role: ROLE_MANAGER}
하지만 데이터베이스에서이 access_control 정보를 저장하고 싶은, 그래서 내 시스템에서 사용자는 관리 인터페이스를 사용하여 권한 자체를 변경할 수 있습니다 : 나는 security.yml
아래 뭔가를 설정하면 잘 작동합니다.
나는 ACL과 FOSUserBundle을 보았지만 이에 대한 해결책을 찾지 못했습니다. if ($user->hasRole($role))
과 같은 권한으로 확인할 수 있지만 모든 컨트롤러에서이 작업을 수행해야합니다.
동적 "access_control"기능을 정의 할 수있는 방법이 있습니까? 어쩌면 access_control을 true 또는 false를 반환 할 수있는 일부 클래스로 리디렉션하는 것과 같은 것일 수 있습니다. 어떤 해결책이 있습니까?
감사합니다. 완벽하게 작동했습니다! –
나는 그것을 얻지 않았다. 역할 계층 구조에 DB_ROLE_CHECK 역할을 배치하고 Voter에서 경로를 확인하는 방법은 무엇입니까? 예를 들어 [경로, 역할]과 같은 DB 항목이 있습니다. 그리고 access_control 규칙 ^/: DB_ROLE_CHECK, 맞습니까? 따라서 모든 요청에 대해 DBVoter를 실행합니다. $ 속성에서 나는 $ token 다음에 역할을 가질 것이다. 그러면 $ subject param이라는 경로 나 경로가 생깁니 까? 그래서 경로를 통해 DB 레코드를 가져와 결정 관리자의 $ 토큰에서 $ user와 (과)의 역할을 사용해야합니다. –