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

Seb*_*eld 1 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>
Run Code Online (Sandbox Code Playgroud)

也许${themeDisplay.getPermissionChecker()}可以做到这一点,但我真的不知道如何在页面上检查用户权限.在一个完美的世界里,我可以区分不同的用户群,但是我在登录时会选择显示,在匿名时隐藏(=来宾).

我正在使用Liferay 6.2.有人有个主意吗?

Tom*_*nos 5

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

Freemarker片段:

layoutPermission.contains(permissionChecker, entry.getPlid(), 'VIEW')
Run Code Online (Sandbox Code Playgroud)

layoutPermission适用于所有ADT模板和参考LayoutPermission界面.entry表示当前Layout实例.

我在Liferay论坛上接受了这篇文章的建议.

要简单地找出,如果用户登录,您可以打电话ThemeDisplay#isSignedIn.

Freemarker片段:

<#if themeDisplay.isSignedIn()>
    <#-- user is logged in -->
<#else>
    <#-- user is guest -->
</#if>
Run Code Online (Sandbox Code Playgroud)