2013-07-08 21 views
5

Sono nuovo in Symfony2 e per le esigenze della mia azienda sto utilizzando i pacchetti Sonata Admin e User.Visualizza gli elementi sulla dashboard in base al ruolo utente

Vorrei sapere se è possibile nascondere o mostrare gli elementi sul dashboard in base al ruolo di un utente registrato.

Ad esempio, ho diverse entità gestite da Sonata AdminBundle (utente, azienda, missione, sito, ecc. Gestione) e desidero visualizzare la gestione degli utenti solo per il super amministratore, la società e la gestione del sito ad un altro ruolo (SITE_ADMIN per esempio) e missioni a un terzo ruolo.

Avete mai affrontato questa situazione? Potresti darmi la soluzione o gli indizi per andare direttamente alla soluzione?

Molte grazie,

Enes

risposta

5

Usa Role handler e consentire diritti connessi degli utenti solo per, ad esempio, gli amministratori del gruppo (crearlo). Quindi assegnare gli utenti admin al gruppo Admins. Sonata Admin raccoglierà le restrizioni e mostrerà gli elementi del dashboard agli amministratori.

+2

Sì, è necessario impostare 'sonata_admin: security: handler: sonata.admin.security.handler.role' nella propria configurazione. Quindi sarai in grado di impostare i ruoli richiesti per accedere alle diverse parti dell'amministratore. –

+0

Grazie mille per le tue risposte, un po 'in ritardo ma per me va tutto bene :) – Enessari

2

Inoltre è possibile nascondere e blocchi di visualizzazione nel userboard in questo modo:

# app/config/config.yml 
sonata_admin: 
dashboard: 
    groups: 
     acme.admin.group.content: 
      label: acme.admin.group.content 
      label_catalogue: AcmeDemoBundle 
      items: 
       - sonata.admin.post 
     acme.admin.group.blog: 
      items: ~ 
      item_adds: 
       - sonata.admin.page 
      roles: [ ROLE_ONE, ROLE_TWO ] 
     acme.admin.group.misc: ~ 

Come accennato in the docs.

Si prega di notare che questo cambia solo la visibilità di un blocco, non l'accessibilità. Se non ci sono restrizioni, le persone potrebbero comunque aprire il collegamento nel browser se lo conoscono.

Se si utilizza la risposta precedente che implementa il file sonata.admin.security.handler.role, il blocco deve essere nascosto automaticamente se l'utente non ha il ruolo corretto.