Хоча нинішня відповідь відповідає на питання ОП, я хотів би додати більше деталей.
Я розумію, що ОП не хотіла перевіряти ролі, але я включаю їх, щоб інші користувачі SO могли надалі копіювати та вставляти з цього вміст. - кожного разу, коли я переглядаю це, я закінчую тут!
Джерела документа в Symfony:
Перевірте, чи ввійшов будь-який користувач (незалежно від ролі)
Як відповів, ви можете app.user
перевірити, чи ввійшов будь-який користувач.
{% 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 %}
Перевірка стану аутентифікації
Ви можете скористатися is_granted()
методом для перевірки ROLES
, (Нижче наведено всі ролі, призначені symfony; Ви також можете мати свої ролі (докладніше нижче) )
{% 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 %}
з документів:
IS_AUTHENTICATED_ANONYMOUSLY - автоматично призначається користувачеві, який перебуває в захищеній брандмауером частині сайту, але фактично не ввійшов у систему. Це можливо лише в тому випадку, якщо дозволено анонімний доступ.
IS_AUTHENTICATED_REMEMBERED - автоматично призначається користувачеві, який отримав автентифікацію за допомогою файлу cookie запам'ятати мене.
IS_AUTHENTICATED_FULLY - автоматично призначається користувачеві, який надав свої дані про вхід під час поточного сеансу.
Перевірка ролей
Ви також is_granted()
можете перевірити ролі.
Припустимо , що ми маємо 3 ролі ( ROLE_SUPER_ADMIN
, ROLE_ADMIN
, & 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 %}
Виконайте вище всередині контролера
Перегляньте таку відповідь: Як перевірити, чи користувач увійшов у Symfony2 всередині контролера?
{% if not app.user %}