有没有办法让TWIG在安全配置文件中访问页面的access_control设置?

时间:2012-06-21 02:17:45

标签: symfony twig

我是Symfony的新手。

我想要一段代码只显示在公开的页面上。 Twig是否可以检测页面是否公开?

该页面位于IS_AUTHENTICATED_ANONYMOUSLY下,但即使用户已登录,我仍希望显示该段代码。

For Example:
www.somesite.com (shows the code, publicly available)
www.somesite.com/login (user login, publicly available, shows code)
//user is not logged in
www.somesite.com/dosomething (only available to logged-in users, code is hidden)
//user goes to the home page, still logged-in
www.somesite.com (must show the code, publicly available)

我知道我可以手动包含公共页面的代码,但有没有办法自动检测页面是否在防火墙之外?

请帮助。 =)

3 个答案:

答案 0 :(得分:1)

您可以使用支票隐藏部分树枝模板:

{% if is_granted('IS_AUTHENTICATED_REMEMBERED') %}
    {# stuff only logged in users can see #}
{% endif %}

答案 1 :(得分:0)

或检查角色IS_AUTHENTICATED_FULLY

{% if is_granted('IS_AUTHENTICATED_FULLY') %}
    {# stuff only logged in users can see #}
{% endif %}

点击此处的文档:http://symfony.com/doc/current/book/security.html#retrieving-the-user-object

答案 2 :(得分:0)

我想没有办法做到这一点。 =(