2017-04-12 4 views
1

Ich benutze ACL in Sonata Admin Bundle. Und wenn ich mich als root (die ROLE_SUPER_ADMIN hat) anmelden, kann ich neue Benutzer erstellen. Ich habe einen erstellt (genannt qwer) und dann angemeldet als qwer.Empty Dashboard für nicht ROLE_SUPER_ADMIN Benutzer (symfony2, sonata acl)

PROBLEM: in meiner Situation qwer Benutzer leer dashbord hat, mit auch Rollen wie

ROLE_SONATA_USER_ADMIN_USER_GUEST, ROLE_SONATA_USER_ADMIN_USER_STAFF, ROLE_SONATA_USER_ADMIN_USER_EDITOR

Bitte sagen Sie mir - was soll ich understad tun, wo das Problem ist.

Antwort

1

Haben Sie the documentation for ACL vollständig befolgt? Sie sollten Ihre sonata_admin-Konfiguration und security.yml nur hinzufügen, um sicher zu sein. Mine wie folgt aussieht:

sonata_admin: 
    # ... 
    security: 
     handler: sonata.admin.security.handler.acl 
     # acl security information 
     information: 
      LIST:  [LIST] 
      GUEST: [VIEW, LIST] 
      STAFF: [LIST, CREATE] 
      EDITOR: [OPERATOR, EXPORT, EDIT] 
      ADMIN: [MASTER] 
     admin_permissions: [CREATE, LIST, DELETE, UNDELETE, EXPORT, OPERATOR, MASTER] 
     # permission related to the objects 
     object_permissions: [VIEW, EDIT, DELETE, UNDELETE, OPERATOR, MASTER, OWNER] 

Auch Ihre gewährleisten security.yml die erforderliche Konfiguration:

security: 
    # ... 
    providers: 
     fos_userbundle: 
      id: fos_user.user_manager 
    acl: 
     connection: default 
    access_decision_manager: 
     strategy: unanimous 

Und ein PermissionMap zu Ihrem app/config/parameters.yml oder Bündel Parameter hinzu:

# src/AppBundle/Resources/config/services.yml 

parameters: 
    # ... 
    # Symfony 3 and above 
    security.acl.permission.map: 
     class: Sonata\AdminBundle\Security\Acl\Permission\AdminPermissionMap 

    # Symfony < 3 
    security.acl.permission.map.class: Sonata\AdminBundle\Security\Acl\Permission\AdminPermissionMap 

Dann gibt es drei Befehle Sie müssen folgendes ausführen:

Initiali ze Ihren ACL-Setup (nur einmal)

php app/console init:acl

neu laden Änderungen an die Konfiguration (jede Änderung in der sonata_admin Konfigurationsdatei)

php app/console sonata:admin:setup-acl

To (neu) ACL-Regeln erzeugen für bereits bestehenden Entitäten/Objekte. (Jede Änderung in der sonata_admin Konfigurationsdatei)

php app/console sonata:admin:generate-object-acl

Dann, sobald die Konfiguration Setup, Logout und melden Sie sich wieder ein für die Rollen zu übernehmen.

+1

es Ihnen danken! Ich habe eine Lösung gefunden, indem ich folgende Zeilen hinzugefügt habe: 'services: security.acl.permission.map: Klasse: Sonata \ AdminBundle \ Sicherheit \ Acl \ Permission \ AdminPermissionMap Parameter:' wie hier: http: // fkn. ktu10.com/?q=node/8737 – qwe

+1

Oh, du hast Recht, ich habe eine ähnliche Zeile wie meine 'parameter.yml'. Total verpasst. Ich werde die Antwort mit Ihrer Eingabe bearbeiten. – Neodork

0

dieses Problem Prüfung zu lösen, dass Ihr in der App-Bundle Linien haben:

services: 
    security.acl.permission.map: 
     class: Sonata\AdminBundle\Security\Acl\Permission\AdminPermissionMap 

parameters: 
Verwandte Themen