En varias ocasiones tuve el requerimiento de no mostrar algunos portlets en la lista de portlets disponibles para ser agregados a una página, y este ocultamiento no se podia hacer mediante permisos porque el usuario tenia que usar el portlet y no debia tirar el error de que el portlet no estaba disponibles. Entonces me di cuenta de que algunos portlets del core de Liferay no estaban disponibles para ser agregados a una página, por ejemplo el portlet de Look and Feel, el My Account o el del Page Setting. Para esto hay que declarar al portlet como portlet de sistema en liferay-portlet.xml.
liferay-portlet.xml
<portlet> <portlet-name>MIPORTLET</portlet-name> ... <system>;rue</system< </portlet>
Desde otro portlet vamos a llamar a MIPORTLET
<% PortletURL miPortletURL = new PortletURLImpl( request, "MIPORTLET", plid, PortletRequest.ACTION_PHASE); miPortletURL.setWindowState(WindowState.MAXIMIZED); miPortletURL.setPortletMode(PortletMode.VIEW); miPortletURL.setParameter("struts_action", "/miportlet/view"); %> <a href="<%= miPortletURL %>"<IR A MI PORTLET</a>

