boolean - 如何在 Liferay 7 中存储公司范围的单个变量?
问题描述
我的公司有一个“状态”,它可以有两个值:
- 正常(照常营业)
- 灾害(地震/海啸等)
只有具有 DISASTER_MANAGER 角色的人才能更改该状态。根据状态,一些 Portlet 显示/隐藏 UI 组件,自定义服务也会检查状态以发送或不发送电子邮件。
问题:如何在 Liferay 中存储这个“状态”?
我能想到的所有常用 Liferay 存储选项似乎都不合适:
- 所有具有 DISASTER_MANAGER 角色的人都无法更新系统设置。
- Service Builder似乎是为存储多行而设计的,每行包含许多列。对我来说,使用 Service Builder 来存储单个布尔值听起来有点矫枉过正而且使用起来很尴尬(但如果不是,请告诉我)。
解决方案
我会从使用相关信息的角度来解决这个问题:您打算如何处理这些信息 - 从“像更改背景颜色以提高意识一样简单”到“在整个门户网站上失去或收紧权限”,建议会有所不同。
我想到的选项:
- 自定义字段(可用于比 UI 中可见的更多目的)
- 系统设定
- 服务生成器
正如您假设最后两个不合适:您可以组合使用它们,例如创建系统设置和假实体服务:在此服务的定义中,您只需创建一个空实体(带有名称,但没有列)。您不会有任何持久性,但是一个MyEntityLocalService
and MyEntityService
: 在此,您可以实现自己的权限检查并翻转系统设置,例如通过您自己的 UI。鉴于状态的隐含紧迫性,我不会将任何人发送到系统设置 UI,而只是提供一个直接按钮来按下。
奖励:如有必要,您将拥有一个自然的 API 端点来通过外部方式切换开关。
推荐阅读
- linux - 在 bash 和 ssh 中转义复杂的命令行参数
- python - Pandas 中的 Pivot 错误地将索引列转换为行标签...丢失索引列
- java - 使用 System.out.println("") 找不到符号;(NetBeans、IntelliJ 或 Eclipse)
- r - 使用 sparklyr 拆分日期和时间变量
- r - 基本 R cor() 函数的结果与Recommenderlab 包中的similarity() 函数的结果不同?
- javascript - Javascript:添加字段总计
- python - Mypy 捕获 AttributeError
- django - 如何在 Django 应用程序中实现位置搜索/地图
- python - 如何自动将数据放入代码行?
- python-2.7 - Python - 导入 _brcypt - PyUnicodeUCS4_FromUnicode