如何在 Magnolia CMS 中向登录用户显示页面的某些内容部分

How to show certain content part of the page to Logged in users In Magnolia CMS

我可以使用 ACL 保护页面和 HTTP 资源,但我想保护页面中的某些内容部分仅供登录用户使用?如何在 Magnolia CMS 中实施?

例如。我只想向登录用户显示产品价格。

我们是否需要通过复制来创建受保护和不受保护的内容,或者有没有办法只保护内容的价格部分?

您可以在模板脚本中完成:

[#assign username = (ctx.user.name)! /]
[#assign loggedIn = username?has_content && username != 'anonymous' /]
<div>
  Some unprotected content...
  [#if loggedIn]
    <span class="protected">only for logged in users</span>
  [/#if]
  ... and again unprotected.
</div>

无论如何,如果您已经有一个自定义模型 class,我会添加一个 isLoggedIn() 方法,执行检查(您可以在那里添加更多检查,即用户是否具有某些必需的角色),并在模板脚本中使用以下内容:

<div>
  Some unprotected content...
  [#if model.loggedIn]
    <span class="protected">only for logged in users</span>
  [/#if]
  ... and again unprotected.
</div>