2013-08-17 23 views
13

Esiste un modo semplice per disattivare alcune azioni CRUD per una determinata classe di amministrazione? Per esempio. Voglio solo un elenco di utenti aggiunti tramite front-end senza l'opzione di aggiungerli manualmente.disabilita l'azione nel pacchetto di amministrazione sonata CRUD

+0

possibile duplicato del [Syfmony2 sonata adminBundle senza creare azione] (http : //stackoverflow.com/questions/17923343/syfmony2-sonata-adminbundle-without-create-action) – TautrimasPajarskas

risposta

34

Nella classe admin:

protected function configureRoutes(RouteCollection $collection) 
{ 
    // to remove a single route 
    $collection->remove('delete'); 
    // OR remove all route except named ones 
    $collection->clearExcept(array('list', 'show')); 
} 

Anche utilizzare RouteCollection in cima alla classe di amministrazione

use Sonata\AdminBundle\Route\RouteCollection; 

Documenti: http://sonata-project.org/bundles/admin/master/doc/reference/routing.html#removing-a-single-route

+4

E se fosse necessario rimuovere un percorso solo quando l'utente non è assegnato un certo ruolo? –

+1

Funziona per un tipo di utente, ma se più utenti hanno ruoli diversi, l'azione viene salvata nella cache. Quando si passa da un ruolo all'altro, la cache viene caricata e i ruoli non vengono controllati. – marijnz0r