2017-11-16 13 views
0

소나타 관리 번들에 내 권한을 설정하고 싶지만 설명서를 읽었을 때 혼란 스럽습니다. 역할에 표준 권한을 추가 할 수는 있지만 사용자가 PUSH 알림을 만들 수 있음을 의미하는 자체 PUSH 권한을 만들 수 있습니다.소나타 관리 사용자

나는 Official Documentation에 나와있는 지침을 따르고 있지만 할 수는 없습니다. 왜냐하면 나는 그것이 정말로 정상적인 것이라고 생각하기 때문에 나는 오해를하고있다.

자세히 자세히. 우리는 이러한 권한을 가지고 여기에 다른 권한을 추가하고 싶습니다.

security: 
    handler: sonata.admin.security.handler.acl 

    information: 
     PUSH:  [LIST, PUSH] 
     GUEST: [VIEW, LIST] 
     STAFF: [EDIT, LIST, CREATE, PUSH] 
     EDITOR: [OPERATOR, EXPORT] 
     ADMIN: [MASTER] 

    admin_permissions: [VIEW, CREATE, LIST, DELETE, UNDELETE, PUSH, EXPORT, OPERATOR, MASTER] 

하지만 설정이 명령을 실행할 때 새로운 명령이 오류 얻을

php app/console sonata:admin:setup-acl 

을 작동하지 않습니다 :

Permission Description 
LIST view the list of objects 
VIEW view the detail of one object 
CREATE create a new object 
EDIT update an existing object 
DELETE delete an existing object 
EXPORT (for the native Sonata export links) 
ALL grants LIST, VIEW, CREATE, EDIT, DELETE and EXPORT 

내 구성은

[InvalidArgumentException] 
    The code "PUSH" is not supported 

어떤 아이디어? 어쩌면 내가 원하는 것을 할 수 없습니다.

답변

0

내가 원하는 것을 해결하는 방법을 찾지 못했지만 해결 방법을 찾았습니다.

아이디어는 새로운 역할 (PUSH_ROLE)을 만든 다음 원하는 역할에이 역할을 할당한다는 것입니다. 그런 다음 나뭇 가지 템플릿에서 is_granted ('ROLE_PUSH')가 True인지 확인합니다.

새 역할을 만드는 방법

:

sonata_admin: 
    security: 
     handler: sonata.admin.security.handler.acl 

     role_admin: ROLE_ADMIN 
     role_super_admin: ROLE_SUPER_ADMIN