检查 Liferay 应用程序显示模板中的权限

Checking permissions in Liferay Application Display Template

我正在为站点地图 portlet 开发一个应用程序显示模板 (freemarker),以便在我的页面页脚布局中呈现。到目前为止一切正常。我可以遍历我的页面并呈现正确的结果。检查页面是否隐藏也有效。

现在我还需要一项功能。我想检查一个页面是否只能由登录用户访问(=当页面权限禁止来宾查看该页面时,不向来宾用户显示 link)。

这是我的 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()} 可以解决这个问题,但我真的不知道如何检查页面上的用户权限。在一个完美的世界中,我可以区分不同的用户组,但我会满足于在登录时显示,在匿名(=guest)时隐藏。

我正在使用 Liferay 6.2。有人知道吗?

您要做的是检查给定页面(布局)的查看权限

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>