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

时间:2019-04-04 03:01:44

标签: boolean liferay liferay-7 liferay-service-builder

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

  • 正常(照常营业)
  • 灾难(如果发生地震/海啸/等)

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

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

我可以想到的所有Liferay普通存储选项似乎都不适当:

  • 拥有DISASTER_MANAGER角色的所有人都无法更新system setting
  • Service Builder似乎用于存储多行,每行包含许多列。在我看来,使用Service Builder来存储单个布尔值听起来过于矫kill和使用笨拙(但如果不是,请告诉我)。

1 个答案:

答案 0 :(得分:1)

我将从使用有问题的信息的角度来解决这个问题:您打算如何处理这些信息-从“像更改背景颜色一样简单以进行感知”到“在整个过程中失去或加强许可”门户”,建议将有所不同。

我想到的选项:

  • 自定义字段(可用于更多用途,而不是在用户界面中可见)
  • 系统设置
  • 服务构建器

您假设后两者不合适:您可以将它们组合使用,例如创建系统设置和伪实体服务:在此服务的定义中,您将只创建一个空实体(具有名称,但没有列)。您将不会有任何持久性,而是拥有MyEntityLocalServiceMyEntityService:在这里,您可以实施自己的权限检查并翻转系统设置,例如通过您自己的UI。考虑到状态的紧急性,我不会将任何人发送到系统设置用户界面,而只需提供一个直接按钮即可。

奖金:您将拥有一个自然的API端点,可以在必要时通过外部方式来进行切换。