Portlet Provider
Dynamically provides portlets to Liferay’s Add Panel (e.g., based on permissions/context).
- Show/hide portlets conditionally (e.g., “Sales Dashboard” only for sales team).
- Lazy-load portlets to improve performance.
Implementation
Section titled “Implementation”Create the Module
Section titled “Create the Module”blade create -t portlet-provider sales-dashboard-providerImplement Conditional Logic
Section titled “Implement Conditional Logic”@Component( property = "javax.portlet.name=" + SalesPortletKeys.SALES_DASHBOARD, service = PortletProvider.class)public class SalesPortletProvider implements PortletProvider { @Override public Portlet provide() { return new SalesDashboardPortlet(); }
@Override public boolean isAvailable(HttpServletRequest request) { // Only show to users with "Sales" role return UserUtils.hasRole(request, "Sales"); }}Use Cases
Section titled “Use Cases”- Role-Based Portlets: HR tools for HR, finance tools for accountants.
- Contextual Portlets: Show “Project Tasks” only in project sites.