2013-08-17 7 views
13

Czy istnieje prosty sposób wyłączenia niektórych działań CRUD dla danej klasy administratorów? Na przykład. Chcę tylko listę użytkowników dodaną przez front-end bez opcji ręcznego dodawania ich.wyłączyć działanie w pakiecie administratora sonaty CRUD

+0

możliwe duplikat [Syfmony2 sonatowej adminBundle bez tworzenia działań] (http : //stackoverflow.com/questions/17923343/syfmony2-sonata-adminbundle-without-create-action) – TautrimasPajarskas

Odpowiedz

34

w klasie 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')); 
} 

wykorzystać także routeCollection na szczycie klasy administratora

use Sonata\AdminBundle\Route\RouteCollection; 

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

+4

A jeśli chcesz usunąć trasę tylko wtedy, gdy użytkownik nie jest przypisano określoną rolę? –

+1

Działa to dla jednego typu użytkownika, ale jeśli wielu użytkowników ma różne role, akcja zostaje zapisana w pamięci podręcznej. Podczas przełączania ról pamięć podręczna jest ładowana, a role nie są sprawdzane. – marijnz0r

Powiązane problemy