我正在为站点地图portlet开发一个应用程序显示模板(freemarker),以便在页面页脚的布局中呈现。到目前为止一切正常。我可以遍历我的页面并呈现正确的结果。检查页面是否也隐藏起作用。
现在我还需要一个功能。我想检查一个页面是否只能由已登录用户访问(=当页面权限禁止访客查看该页面时,不要显示指向访客用户的链接。)
这是我的ADT代码。
<#if entries?has_content>
<#list entries as entry>
<#assign layoutURL = portalUtil.getLayoutURL(entry, themeDisplay)>
<div class="grid3">
<ul>
<#if entry.isHidden() == false>
<li><a href="${layoutURL}">${entry.getName(locale)}</a></li>
</#if>
</ul>
</div>
</#list>
</#if>
也许${themeDisplay.getPermissionChecker()}
可以做到这一点,但我真的不知道如何在页面上检查用户权限。在一个完美的世界里,我可以区分不同的用户群,但是我在登录时适应节目,在匿名时隐藏(=来宾)。
我正在使用Liferay 6.2。有人有个主意吗?
答案 0 :(得分:5)
您要做的是检查给定页面的查看权限(布局)。
Freemarker片段:
layoutPermission.contains(permissionChecker, entry.getPlid(), 'VIEW')
layoutPermission
适用于所有ADT模板和参考LayoutPermission
界面。 entry
表示当前的Layout
实例。
我在Liferay论坛上接受了this post的建议。
要简单了解一下,如果用户已登录,您可以致电ThemeDisplay#isSignedIn
。
Freemarker片段:
<#if themeDisplay.isSignedIn()>
<#-- user is logged in -->
<#else>
<#-- user is guest -->
</#if>