如何自定义要在“添加更多 portlet”菜单中显示的 portlet
Posted
技术标签:
【中文标题】如何自定义要在“添加更多 portlet”菜单中显示的 portlet【英文标题】:How to customize which portlets to show in "Add more portlets" menu 【发布时间】:2012-05-19 10:18:25 【问题描述】:我需要自定义“添加更多portlet菜单”中出现的portlet,如下图所示:
我需要根据登录的用户或站点(社区)来限制此菜单中显示的 portlet 的数量。因此,站点所有者或站点管理员将只能将那些 portlet 添加到他们的页面中,这些 portlet 由omni-admin 为他们决定。
Liferay 是否提供任何此类功能(通过配置或其他方式)还是我必须创建一个新的 portlet 和一个挂钩来实现这一点?
环境: Liferay 6.1 CE GA2
任何想法将不胜感激。
谢谢
【问题讨论】:
【参考方案1】:以下是 Liferay 论坛中针对同一问题的answer:
您可以从管理端限制哪些 portlet 可以添加到页面中,而不必进行任何开发。
但是,您需要创建一个角色并在其中添加所有人。以下是实现此目的的步骤:
-
让用户成为您希望他们添加 portlet 的组织或站点的一部分。
转到
Control Panel
-> Roles
并担任常规角色(不是组织或站点角色)
在定义权限下拉菜单中,转到Portal
-> Site
-> Page
-> 并检查Update
作为已定义权限。
再次转到Define-permissions 下拉菜单并转到Site Application
->(选择您希望用户添加到页面的Portlet 名称)-> Add to page
。
如有必要,如果您希望用户添加其他 portlet,请重复第 4 步。
将此角色添加到您的用户:转到Control Panel
-> User and Organizations
。点击您的User
并转到Roles
。
最后你需要去Server Administration
并执行Clean Up Permissions
来清除Guest
和Power Users
角色的权限。
现在应该这样,无论用户附加到该角色,他们都会在左下角看到一个“添加”按钮,并且只能添加您在角色权限中指定的 portlet。
【讨论】:
您还可以创建一个新用户组并将新角色分配给该组。这样,属于该用户组的所有用户都将默认继承该角色。 @Prakash - 可以使用代码完成相同的操作,可以使用代码完成创建角色我们可以使用 java 代码执行步骤 3,4 吗? @Varun 是的,它可以通过编程方式完成,毕竟这是您点击提交后发生的事情:)【参考方案2】:您需要为要允许的 portlet 授予 ADD_TO_PAGE 权限。默认情况下,社区管理员对所有 portlet 拥有相当广泛的权限。检查“定义权限”中的“社区管理员”角色(控制面板/角色/社区管理员/操作/定义权限)。
我建议查看允许社区管理员做什么并创建自定义角色,定义其权限并使您的“受限”管理员成为该角色的成员,而不是默认的社区管理员。
【讨论】:
我不知道 ADD_TO_PAGE 用于此,将尝试。站点(社区)管理员或站点所有者也没有“定义权限”操作。谢谢 @Olaf Kock,我需要一个我在以下链接中发布的查询建议,***.com/questions/28813244/…。请给点建议,让网站管理员可以访问控制面板创建用户..【参考方案3】:还有更好的办法。 在其权限表中检查所有 portlet 权限。 转到 portlet 管理器并首先取消选中所有“用户”
所以它没有显示“添加更多 portlet 菜单”
【讨论】:
以上是关于如何自定义要在“添加更多 portlet”菜单中显示的 portlet的主要内容,如果未能解决你的问题,请参考以下文章
夺命雷公狗---微信开发14----用网页调试工具调试自定义菜单接口