otwarchive-symphonyarchive/app/models/admin_banner.rb
2026-03-11 22:22:11 +00:00

28 lines
725 B
Ruby

class AdminBanner < ApplicationRecord
validates_presence_of :content
after_save :expire_cached_admin_banner, if: :should_expire_cache?
after_destroy :expire_cached_admin_banner, if: :active?
# update admin banner setting for all users when banner notice is changed
def self.banner_on
Preference.update_all("banner_seen = false")
end
def self.active?
self.active?
end
# we should expire the cache when an active banner is changed or when a banner starts or stops being active
def should_expire_cache?
self.saved_change_to_active? || self.active?
end
private
def expire_cached_admin_banner
unless Rails.env.development?
Rails.cache.delete("admin_banner")
end
end
end