如何在 Liferay 7 中存储公司范围内的单个变量?

How to store a company-wide single variable in Liferay 7?

我的公司有一个 "status" 可以有两个值:

只有具有 DISASTER_MANAGER 角色的人才能更改该状态。根据状态,一些 portlet show/hide 一个 UI 组件,还有一个自定义服务会检查状态以发送电子邮件。

问题:如何在 Liferay 中存储这个"status"?

我能想到的所有常用 Liferay 存储选项似乎都不合适:

我会从使用相关信息的角度来解决这个问题:您打算如何处理这些信息 - 从 "as simple as changing the background color for awareness" 到 "losen or tighten permissions all over the portal",建议会有所不同。

我想到的选项:

  • 自定义字段(可用于比在 UI 中可见的更多用途)
  • 系统设置
  • 服务生成器

正如您假设最后两个不合适:您可以组合使用它们,例如创建系统设置和假实体服务:在该服务的定义中,您只需创建一个空实体(有名称,但没有列)。你不会有任何持久性,但有一个 MyEntityLocalServiceMyEntityService:在这里,你可以实现自己的权限检查并翻转系统设置,例如通过你自己的 UI。鉴于状态的隐含紧迫性,我不会将任何人发送到系统设置 UI,而只是提供一个直接按下的按钮。

奖励:您将有一个自然的 API 端点,可以在必要时通过外部方式翻转开关。