Not able to open a portlet in liferay dialog

邮差的信 提交于 2019-12-10 20:48:48

问题


I have a dialog in my portal which opens a portlet. When I click on the link and the dialog opens, the dialog shows

You do not have the roles required to access this portlet.

However, if I add the same portlet on the page, the portlet opens without any hitch, both on the page and the dialog. What am I missing here? Anybody got any idea ?

My Codes are :

#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']
    );

Thanks in advance for any help that anyone can provide.


回答1:


I think you are missing the following configuration in the liferay-portlet.xml of the profile_WAR_profileportlet portlet:

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

This should be set to true for the portlet which is accessed inside the dialog pop-up, here is the documentation for this element.

For more information you can look at this answer the points 4 & 5 of the answer would be of help to you.




回答2:


Could it be that you're setting $profile_url but actually open the dialog on $preferences_url? I guess that the preferences_url has been defined earlier - and preferences (e.g. portlet edit mode) typically require more permissions than just the regular render phase. Crosscheck by accessing this as administrator..




回答3:


Add the below two lines in your portal-ext.properties file

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 


来源:https://stackoverflow.com/questions/14849127/not-able-to-open-a-portlet-in-liferay-dialog

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!