在Liferay应用程序显示模板

时间:2015-10-14 10:53:38

标签: liferay liferay-6

我正在为站点地图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。有人有个主意吗?

1 个答案:

答案 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>