Symfony2: Wie man einen Link in Twig basierend auf Berechtigungen versteckt

8

Meine Anwendung zeigt eine Liste von Projekten, Projektdetailseiten und Formularen zum Bearbeiten dieser Projekte an. Dies sind die Routen:

  • / - Liste der Projekte
  • / project / 42 - Projekt anzeigen (Projektdetailseite)
  • / project / 42 / bearbeiten - Projekt bearbeiten

Nur der Eigentümer darf ein Projekt bearbeiten.

Ich habe einen Wähler implementiert, um den Zugriff auf / project / 42 / edit für Nichtbesitzer zu verhindern.

Nun möchte ich auch den Link "Projekt bearbeiten" auf der Projektdetailseite ausblenden. Was wäre der Weg dies zu tun? Im Idealfall möchte ich in Twig etwas wie

machen %Vor%

Ich kann diese Funktion als Twig-Erweiterung implementieren, aber vielleicht existiert bereits eine ähnliche Funktionalität.

    
Olav 13.06.2013, 10:48
quelle

1 Antwort

10

Die Funktion is_granted () hat tatsächlich einen zweiten Parameter , mit dem ich genau was machen kann Ich brauche:

%Vor%

Ich benutze dies in Verbindung mit einem Check in der Controller-Aktion:

%Vor%

Dies ist tatsächlich sehr ähnlich zu dem Ansatz, den nifr in seiner Antwort auf Sonata-Benutzer - Sicherheit für benutzerdefiniertes Feld . Ich hatte gehofft, einen Weg zu finden, den Wähler automatisch anzurufen und den Aufruf von isGranted () zu vermeiden.

Wenn Sie sich den kompletten Code ansehen wollen, ist es im Tutorial-Projekt, dass ich in github .     

Olav 13.06.2013, 11:07
quelle

Tags und Links