我如何在 liferay 7.3.6 中将(用户和组织)作为 portlet

Posted

技术标签:

【中文标题】我如何在 liferay 7.3.6 中将(用户和组织)作为 portlet【英文标题】:How do I make ( Users and Organizations ) as a portlet in liferay 7.3.6 【发布时间】:2021-08-16 20:57:56 【问题描述】:

我正在尝试将“用户和组织”用作 portlet。

我已经尝试过this outdated (6.x) article 中提到的方法,但它不起作用。

【问题讨论】:

【参考方案1】:

完全无需任何代码即可完成此操作,但您需要进行大量配置。

portlet 是一个 OSGi 组件。首先,弄清楚实现类。 URL 给出了提示,因为它包含com_liferay_users_admin_web_portlet_UsersAdminPortlet。但是,在这种情况下,这只是关键。 grep 源代码,或使用任何其他方式查找它的使用位置,您将到达com.liferay.users.admin.web.internal.portlet.UsersAdminPortlet。如果你查看它的属性配置,你会发现这一行

"com.liferay.portlet.display-category=category.hidden",

如果您猜测这就是 portlet 不能用于任何页面的原因:您是对的。

现在,任何 OSGi 声明式服务的属性都可以通过创建一个配置文件来更改,您可以将其放入 Liferay 的部署文件夹(如果您愿意,也可以直接放入 osgi/configs)。

所以,创建一个名为com.liferay.users.admin.web.internal.portlet.UsersAdminPortlet.config 的文件,其中包含单行内容

com.liferay.portlet.display-category="category.sample"

你已经准备好了。

但是,定期权限检查可能非常严格,您应该非常清楚,打开这些权限很容易打开安全漏洞(想象一下有人创建了一个完整的管理员帐户,或者将现有帐户变成了一个管理帐户)

一个更好的方法可能是有选择地只提供适当的权限来操作这个 portlet,并在 ControlPanel 中提供对它的访问,而无需打开其他所有内容。这是常规角色和权限配置的一部分,也不需要任何代码行。

【讨论】:

以上是关于我如何在 liferay 7.3.6 中将(用户和组织)作为 portlet的主要内容,如果未能解决你的问题,请参考以下文章

如何向 Liferay 中新创建的用户授予 Alfresco 权限

如何使用 javascript 在 Liferay 中检索用户个人资料图片

如何忽略Liferay用户从LDAP错误中删除?

使用简单的 Java 代码获取当前用户 Liferay

Liferay:如何从布局集中检索布局?

Liferay 6.1中如何从用户组继承站点角色权限给他们的成员?