Meine Anwendung zeigt eine Liste von Projekten, Projektdetailseiten und Formularen zum Bearbeiten dieser Projekte an. Dies sind die Routen:Symfony2: Verstecken von Links in Twig basierend auf Berechtigungen
- /- Liste der Projekte
- /Projekt/42 - Ansicht Projekt (Projektdetailseite)
- /Projekt/42/bearbeiten - bearbeiten Projekt
Nur Der Besitzer kann ein Projekt bearbeiten.
Ich habe einen Voter implementiert, um den Zugriff auf/project/42/edit für Nicht-Besitzer zu verhindern.
Jetzt möchte ich auch den Link "Projekt bearbeiten" von der Projektdetailseite ausblenden. Was wäre der Weg dies zu tun? Idealerweise in Zweig, würde ich so etwas wie
{% if may_access(path('project_edit', { 'id': project.id })) %} <a href="{{ path('project_edit', { 'id': project.id }) }}">edit project</a> {% endif %}
tun, wie ich diese Funktion als Zweig Erweiterung implementieren kann, aber vielleicht eine ähnliche Funktionalität bereits vorhanden ist.
Bitte beachten Sie, jeder kann URL Hack. Stellen Sie sicher, dass Ihr Controller über die entsprechenden Weiterleitungen verfügt. – Lighthart
Gute Arbeit. Eine Sache zu beachten, wenn '$ this-> show ($ project);' nur die gleiche Ansicht wie die Projektseite (/ project/42) zurückgibt. Es wäre wahrscheinlich am besten, eine 302-Umleitung zu dieser Route zu verwenden. – Paulpro
Ah, sorry, mein $ this-> show ($ project) ist eigentlich nur ein kleiner Helfer, der $ this-> redirect zurückgibt ($ this-> generateUrl ('project_show', array ('id' => $ project) > getId()))); – Olav