Moja aplikacja pokazuje listę projektów, stron szczegółowych projektu i formularzy do edycji tych projektów. Są to trasy:Symfony2: Jak ukryć link w gałązce na podstawie uprawnień
- /- lista projektów
- /projekt/42 - widok projektu (strona szczegół projektu)
- /projekt/42/edit - edycja projektu
Tylko jego właściciel może edytować projekt.
Zaimplementowałam Votera, aby uniemożliwić dostęp do/project/42/edit osobom nie będącym właścicielami.
Teraz chcę również ukryć link "edytuj projekt" na stronie szczegółów projektu. Jaki byłby sposób na zrobienie tego? Idealnie w gałązka, chciałbym zrobić coś takiego
{% if may_access(path('project_edit', { 'id': project.id })) %} <a href="{{ path('project_edit', { 'id': project.id }) }}">edit project</a> {% endif %}
mogę wdrożyć tę funkcję jako przedłużenie gałązka, ale być może podobną funkcjonalność już istnieje.
Należy pamiętać, że każdy może url hack. Upewnij się, że kontroler ma również odpowiednie przekierowania. – Lighthart
Dobra robota. Należy zwrócić uwagę, że jeśli '$ this-> show ($ project);' właśnie zwraca ten sam widok co strona projektu (/ projekt/42). Najlepiej byłoby użyć przekierowania 302 na tę trasę. – Paulpro
Ah, przepraszam, mój $ this-> show ($ project) jest tak naprawdę małym helperem, który zwraca $ this-> redirect ($ this-> generateUrl ('project_show', array ('id' => $ project- > getId()))); – Olav