2014-09-03 2 views
0

내 웹 사이트에는 많은 역할을 담당하는 관리자가 있습니다. 섹션에 대한 액세스를 일부 관리자로 제한하려고하므로 입력하기 전에 특정 역할을 부여해야합니다. 관리자는/report 페이지에 액세스하기 위해 관리자에게 "ROLE_REPORT"역할을 할당해야합니다. 페이지에 액세스 할 수없는 역할이 부여 될 때, 어떤 이유관리자에게 추가 역할을 할당하는 방법

security: 
    role_hierarchy: 
     ROLE_REPORT : ROLE_USER 
     ROLE_MERCHANT: ROLE_USER 
     ROLE_VIRTUAL_TERMINAL: ROLE_MERCHANT 
     ROLE_ONLINE_CHECKOUT: ROLE_MERCHANT 
     ROLE_ADMIN:  [ROLE_MERCHANT, ROLE_VIRTUAL_TERMINAL, ROLE_ONLINE_CHECKOUT] 
     ROLE_SUPER_ADMIN: ROLE_ADMIN 

    access_control: 

     # Section Report 
     - { path: /report(.*), roles: ROLE_REPORT} 

, 내 관리자 :

여기 내 코드입니다. 역할 계층 구조와 관련이 있다고 생각합니다.

더 많은 정보를 제공해 드릴 수 있는지 알려주세요.

+2

다시/로그 아웃 로그인을 시도 했습니까? 역할은 자동으로 새로 고쳐지지 않습니다 ... –

+0

@jperovic : 그것은 작동합니다. 나는 이것을 게시하는 것에 절름발이가된다. 동의 할 수 있도록 답변으로 의견을 게시하십시오! – Ebpo

답변

1

기본적으로, 당신은 새로운 역할을 적용하려면 다시/로그인 로그 아웃해야합니다, 감사합니다.

그러나 다른 옵션이 있습니다. 보안 참조에 따르면 true으로 설정된 경우 각 요청마다 토큰을 새로 고치는 옵션 인 always_authenticate_before_granting이 있습니다. Symfony는 매번 DB를 방문하여 역할을 새로 고칩니다.

iamdto

예와 유사한 답을 제공

0

당신은 이런 식으로 예를 ROLE_ADMIN_REPORT를 들어, 새 역할을 추가하고 보안을 수정해야합니다 링크 :

security: 
    role_hierarchy: 
     ROLE_REPORT : ROLE_USER 
     ROLE_MERCHANT: ROLE_USER 
     ROLE_VIRTUAL_TERMINAL: ROLE_MERCHANT 
     ROLE_ONLINE_CHECKOUT: ROLE_MERCHANT 
     ROLE_ADMIN:  [ROLE_MERCHANT, ROLE_VIRTUAL_TERMINAL, ROLE_ONLINE_CHECKOUT] 
     ROLE_ADMIN_REPORT: [ROLE_ADMIN, ROLE_REPORT] 
     ROLE_SUPER_ADMIN: ROLE_ADMIN 

access_control: 

    # Section Report 
    - { path: /report(.*), roles: ROLE_REPORT} 
관련 문제