Как сохранить единую переменную для всей компании в Liferay 7? - PullRequest
0 голосов
/ 04 апреля 2019

У моей компании есть «статус», который может иметь два значения:

  • Нормальный (обычный бизнес)
  • Бедствие (в случае землетрясения / цунами / и т. Д.)

Только люди с ролью DISASTER_MANAGER могут изменять этот статус.В зависимости от статуса, несколько портлетов показывают / скрывают компонент пользовательского интерфейса, а также настраиваемая служба проверяет статус отправления электронной почты или нет.

Вопрос: Как сохранить этот «статус» в Liferay?

Все обычные варианты хранения Liferay, которые я могу себе представить, кажутся неуместными:

  • A системная настройка не будет обновляться всеми людьми с ролью DISASTER_MANAGER.
  • Service Builder , похоже, предназначен для хранения нескольких строк, каждая из которых содержит несколько столбцов.Мне кажется, что использование Service Builder для хранения одного логического значения было бы излишним и неудобным для использования (но если это не так, пожалуйста, дайте мне знать).

1 Ответ

1 голос
/ 04 апреля 2019

Я бы подошел к этой проблеме с точки зрения использования рассматриваемой информации: что вы намереваетесь делать с этой информацией - от «так просто, как изменение цвета фона для осведомленности» до «утраты или ужесточения разрешений во всем портал ", рекомендации будут другие.

Опции, которые приходят мне в голову:

  • Настраиваемое поле (может использоваться для большего количества целей, чем видно в пользовательском интерфейсе)
  • Настройка системы
  • Service Builder

Поскольку вы предполагаете, что последние два неуместны: вы можете использовать их в комбинации, например, создайте системный параметр и службу поддельной сущности: в определении этой службы вы просто создадите пустую сущность (с именем, но без столбцов). У вас не будет никакой настойчивости, но MyEntityLocalService и MyEntityService: в этом вы можете реализовать свои собственные проверки разрешений и изменить настройки системы, например, через ваш собственный интерфейс. Учитывая подразумеваемую срочность статуса, я бы не стал отправлять кого-либо в интерфейс настроек системы, а просто предоставлял бы прямую кнопку для нажатия.

Бонус: у вас будет естественная конечная точка API, чтобы при необходимости переключить переключатель с помощью внешних средств.

...