繁体   English   中英

如何在Symfony 2.3或更高版本中为已登录用户和未登录用户混合内容

[英]How to mix content for logged users and not logged users in Symfony 2.3 or superior

在Symfony 2.3或更高版本中执行此操作的最佳方法是什么:

我有一个可以在公共区域或安全区域张贴的网页。

当用户打开安全网页版本时,让我们说/ SecureArea / page1只能查看内容并做更多事情但是当用户没有登录时,他们可以在/ PublicArea / page1中看到相同的内容但只能看到内容没有做任何其他事情,至少当然他们登录。

在Symfony中保护网页非常简单,您将网页放在一个安全的区域,但我要做的是在两者中都有相同版本的网页,用户可以看到相同的内容,但只能如果他们登录到系统,他们会做更多的事情。 我不想重复自己并创建同一页面的两个不同版本。

对于这种情况,您可以根据is_granted('IS_AUTHENTICATED_FULLY')决定做什么,它基本上检查当前用户是否已登录,因此示例如下:

{% if is_granted('IS_AUTHENTICATED_FULLY') %}
    {# do something that only logged in users could see #}
{% else %}
    {# do something that unauthenticated users can see #}
{% endif %}

如果要检查用户是否已登录控制器,请执行以下操作:

if ($this->get('security.authorization_checker')->isGranted('IS_AUTHENTICATED_FULLY')) {
    // user logged in
} else {
    // not logged in
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM