首页 > 解决方案 > 如何在 Liferay 7 中存储公司范围的单个变量?

问题描述

我的公司有一个“状态”,它可以有两个值:

只有具有 DISASTER_MANAGER 角色的人才能更改该状态。根据状态,一些 Portlet 显示/隐藏 UI 组件,自定义服务也会检查状态以发送或不发送电子邮件。

问题:如何在 Liferay 中存储这个“状态”?

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

标签: booleanliferayliferay-7liferay-service-builder

解决方案


我会从使用相关信息的角度来解决这个问题:您打算如何处理这些信息 - 从“像更改背景颜色以提高意识一样简单”到“在整个门户网站上失去或收紧权限”,建议会有所不同。

我想到的选项:

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

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

奖励:如有必要,您将拥有一个自然的 API 端点来通过外部方式切换开关。


推荐阅读