diff options
Diffstat (limited to 'app/models/broadcast_message.rb')
-rw-r--r-- | app/models/broadcast_message.rb | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/app/models/broadcast_message.rb b/app/models/broadcast_message.rb index c5a234ffa69..733018160cd 100644 --- a/app/models/broadcast_message.rb +++ b/app/models/broadcast_message.rb @@ -1,8 +1,9 @@ # frozen_string_literal: true -class BroadcastMessage < ApplicationRecord +class BroadcastMessage < MainClusterwide::ApplicationRecord include CacheMarkdownField include Sortable + include IgnorableColumns ALLOWED_TARGET_ACCESS_LEVELS = [ Gitlab::Access::GUEST, @@ -12,6 +13,8 @@ class BroadcastMessage < ApplicationRecord Gitlab::Access::OWNER ].freeze + ignore_column :namespace_id, remove_with: '16.0', remove_after: '2022-06-22' + cache_markdown_field :message, pipeline: :broadcast_message, whitelisted: true validates :message, presence: true @@ -85,10 +88,8 @@ class BroadcastMessage < ApplicationRecord private - def fetch_messages(cache_key, current_path, user_access_level) - messages = cache.fetch(cache_key, as: BroadcastMessage, expires_in: cache_expires_in) do - yield - end + def fetch_messages(cache_key, current_path, user_access_level, &block) + messages = cache.fetch(cache_key, as: BroadcastMessage, expires_in: cache_expires_in, &block) now_or_future = messages.select(&:now_or_future?) @@ -131,7 +132,6 @@ class BroadcastMessage < ApplicationRecord end def matches_current_user_access_level?(user_access_level) - return false if target_access_levels.present? && Feature.disabled?(:role_targeted_broadcast_messages) return true unless target_access_levels.present? target_access_levels.include? user_access_level @@ -145,9 +145,7 @@ class BroadcastMessage < ApplicationRecord # This fixes a mismatch between requests in the GUI and CLI # # This has to be reassigned due to frozen strings being provided. - unless current_path.start_with?("/") - current_path = "/#{current_path}" - end + current_path = "/#{current_path}" unless current_path.start_with?("/") escaped = Regexp.escape(target_path).gsub('\\*', '.*') regexp = Regexp.new "^#{escaped}$", Regexp::IGNORECASE |