diff options
Diffstat (limited to 'app/models/broadcast_message.rb')
-rw-r--r-- | app/models/broadcast_message.rb | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/app/models/broadcast_message.rb b/app/models/broadcast_message.rb index 733018160cd..bf25ea7367c 100644 --- a/app/models/broadcast_message.rb +++ b/app/models/broadcast_message.rb @@ -22,6 +22,7 @@ class BroadcastMessage < MainClusterwide::ApplicationRecord validates :ends_at, presence: true validates :broadcast_type, presence: true validates :target_access_levels, inclusion: { in: ALLOWED_TARGET_ACCESS_LEVELS } + validates :show_in_cli, allow_nil: false, inclusion: { in: [true, false], message: N_('must be a boolean value') } validates :color, allow_blank: true, color: true validates :font, allow_blank: true, color: true @@ -29,6 +30,8 @@ class BroadcastMessage < MainClusterwide::ApplicationRecord attribute :color, default: '#E75E40' attribute :font, default: '#FFFFFF' + scope :current_and_future_messages, -> { where('ends_at > :now', now: Time.current).order_id_asc } + CACHE_KEY = 'broadcast_message_current_json' BANNER_CACHE_KEY = 'broadcast_message_current_banner_json' NOTIFICATION_CACHE_KEY = 'broadcast_message_current_notification_json' @@ -60,6 +63,10 @@ class BroadcastMessage < MainClusterwide::ApplicationRecord end end + def current_show_in_cli_banner_messages + current_banner_messages.select(&:show_in_cli?) + end + def current_notification_messages(current_path: nil, user_access_level: nil) fetch_messages NOTIFICATION_CACHE_KEY, current_path, user_access_level do current_and_future_messages.notification @@ -72,13 +79,9 @@ class BroadcastMessage < MainClusterwide::ApplicationRecord end end - def current_and_future_messages - where('ends_at > :now', now: Time.current).order_id_asc - end - def cache ::Gitlab::SafeRequestStore.fetch(:broadcast_message_json_cache) do - Gitlab::JsonCache.new + Gitlab::Cache::JsonCaches::JsonKeyed.new end end |