3

我的门户中有一个对话框,它打开了一个 portlet。当我单击链接并打开对话框时,对话框显示

您没有访问此 Portlet 所需的角色。

但是,如果我在页面上添加相同的 portlet,则该 portlet 在页面和对话框上都会毫无障碍地打开。我在这里想念什么?有人知道吗?

我的代码是:

#set ($profile_url = $portletURLFactory.create($request, "profile_WAR_profileportlet", $getterUtil.getLong($plid), "RENDER_PHASE"))
 $profile_url.setParameter("p_p_state", "exclusive")

<a href="#" id="profile" onclick="openDialog('$profile_url','preferences-dialog',500,500)"> Profile </a> 



window,
        'openDialog', //function name
        function(url, popupID, wd, ht) { // parameters to the function
            var A = AUI();

            popupDialog = new A.Dialog({

                    id: popupID, // popupId passed so that it would be easy to close it through events other than the close button
                    centered: false, // all the different parameters function you can check in the Alloy API
                    draggable: true,
                    resizable: false,
                    width: wd,
                    stack: true,
                    modal: true,
                    height: ht,
                    scrollbars: true,
                    xy: [getWidth()/2-wd/2,10]
                }
            ).plug(
                A.Plugin.IO,
                {
                    uri: url
                }
            );

            popupDialog.render();
        },
        ['aui-dialog','aui-dialog-iframe']
    );

提前感谢任何人都可以提供的任何帮助。

4

3 回答 3

5

liferay-portlet.xml我认为您在profile_WAR_profileportletportlet中缺少以下配置:

<add-default-resource>true</add-default-resource>

这应该true为在弹出对话框中访问的 portlet 设置为,这里是这个元素的文档

有关更多信息,您可以查看此答案,答案的第 4 点和第 5 点将对您有所帮助。

于 2013-02-13T09:50:06.280 回答
0

可能是您设置了 $profile_url 但实际上在 $preferences_url 上打开了对话框?我猜想早先已经定义了preferences_url - 并且preferences(例如portlet 编辑模式)通常需要比常规渲染阶段更多的权限。通过以管理员身份访问此交叉检查..

于 2013-02-13T08:27:37.800 回答
0

在您的 portal-ext.properties 文件中添加以下两行

portlet.add.default.resource.check.enabled=true
portlet.add.default.resource.check.whitelist=3,56_INSTANCE_0000,58,82,86,103,113,145,164,166,170,33,---here append the portlet id which you want to display 
于 2015-03-25T09:23:32.343 回答