Chociaż obecna odpowiedź odpowiada na pytanie PO, chciałbym dodać więcej szczegółów.
Rozumiem, że OP nie chciał sprawdzać ról, ale dołączam je, aby inni użytkownicy SO mogli kopiować i wklejać z tego w przyszłości. - za każdym razem, gdy to wyszukuję w Google, kończę tutaj!
Źródła dokumentów Symfony:
Sprawdź, czy zalogował się jakikolwiek użytkownik (niezależnie od roli)
Zgodnie z odpowiedzią możesz użyć, app.user
aby sprawdzić, czy jakikolwiek użytkownik jest zalogowany.
{% if app.user %}
# user is logged in (any and all users, regardless of ROLE_*)
{% elseif not app.user %}
# user is not logged in (note the `not` in the `elseif` statement)
{% endif %}
Sprawdzanie statusu uwierzytelnienia
Możesz użyć is_granted()
metody, aby sprawdzić ROLES
, czy (poniżej są wszystkie role przypisane przez symfony, możesz też mieć swoje własne role (więcej poniżej) )
{% if is_granted('IS_AUTHENTICATED_FULLY') %}
# This user entered their credentials THIS session
{% elseif is_granted('IS_AUTHENTICATED_REMEMBERED') %}
# User logged in via a cookie (ie: Auth again before doing sensitive things)
{% elseif is_granted('IS_AUTHENTICATED_ANONYMOUSLY') %}
# This is a `guest` or anonymous user
{% endif %}
z dokumentów:
IS_AUTHENTICATED_ANONYMOUSLY - automatycznie przypisywane do użytkownika, który znajduje się w chronionej przez zaporę części witryny, ale nie jest zalogowany. Jest to możliwe tylko wtedy, gdy zezwolono na dostęp anonimowy.
IS_AUTHENTICATED_REMEMBERED - automatycznie przypisywane do użytkownika, który został uwierzytelniony za pomocą pliku cookie „zapamiętaj mnie”.
IS_AUTHENTICATED_FULLY - automatycznie przypisywane do użytkownika, który podał swoje dane logowania podczas bieżącej sesji.
Sprawdzanie ról
Możesz również użyć is_granted()
do sprawdzenia ról.
Zakładając, że mamy 3 role ( ROLE_SUPER_ADMIN
, ROLE_ADMIN
, i ROLE_USER
)
{% if is_granted('ROLE_SUPER_ADMIN') -%}
# You're `ROLE_SUPER_ADMIN`
{% elseif is_granted('ROLE_ADMIN') -%}
# You're `ROLE_ADMIN`
{% elseif is_granted('ROLE_USER') -%}
# You're `ROLE_USER`
{% else %}
# You're a `nobody` ;P
{%- endif %}
Wykonanie powyższego wewnątrz kontrolera
Zobacz następującą odpowiedź: Jak sprawdzić, czy użytkownik jest zalogowany w Symfony2 wewnątrz kontrolera?
{% if not app.user %}