diff options
| -rw-r--r-- | CHANGELOG | 1 | ||||
| -rw-r--r-- | app/models/application_setting.rb | 12 | ||||
| -rw-r--r-- | app/models/ci/application_setting.rb | 12 | ||||
| -rw-r--r-- | config/initializers/1_settings.rb | 4 | 
4 files changed, 25 insertions, 4 deletions
| diff --git a/CHANGELOG b/CHANGELOG index 8916b9f0403..a6bef82693a 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,7 @@  Please view this file on the master branch, on stable branches it's out of date.  v 8.3.0 (unreleased) +  - Ensure cached application settings are refreshed at startup (Stan Hu)    - Fix: Assignee selector is empty when 'Unassigned' is selected (Jose Corcuera)    - Fix 500 error when update group member permission diff --git a/app/models/application_setting.rb b/app/models/application_setting.rb index b2d5fe1558f..3df8135acf1 100644 --- a/app/models/application_setting.rb +++ b/app/models/application_setting.rb @@ -73,15 +73,23 @@ class ApplicationSetting < ActiveRecord::Base    end    after_commit do -    Rails.cache.write('application_setting.last', self) +    Rails.cache.write(cache_key, self)    end    def self.current -    Rails.cache.fetch('application_setting.last') do +    Rails.cache.fetch(cache_key) do        ApplicationSetting.last      end    end +  def self.expire +    Rails.cache.delete(cache_key) +  end + +  def self.cache_key +    'application_setting.last' +  end +    def self.create_from_defaults      create(        default_projects_limit: Settings.gitlab['default_projects_limit'], diff --git a/app/models/ci/application_setting.rb b/app/models/ci/application_setting.rb index 1307fa0b472..4e512d290ee 100644 --- a/app/models/ci/application_setting.rb +++ b/app/models/ci/application_setting.rb @@ -14,11 +14,15 @@ module Ci      extend Ci::Model      after_commit do -      Rails.cache.write('ci_application_setting.last', self) +      Rails.cache.write(cache_key, self) +    end + +    def self.expire +      Rails.cache.delete(cache_key)      end      def self.current -      Rails.cache.fetch('ci_application_setting.last') do +      Rails.cache.fetch(cache_key) do          Ci::ApplicationSetting.last        end      end @@ -29,5 +33,9 @@ module Ci          add_pusher: Settings.gitlab_ci['add_pusher'],        )      end + +    def self.cache_key +      'ci_application_setting.last' +    end    end  end diff --git a/config/initializers/1_settings.rb b/config/initializers/1_settings.rb index b162b8a83fc..80b480eac37 100644 --- a/config/initializers/1_settings.rb +++ b/config/initializers/1_settings.rb @@ -293,3 +293,7 @@ if Rails.env.test?    Settings.gitlab['default_can_create_group'] = true    Settings.gitlab['default_can_create_team']  = false  end + +# Force a refresh of application settings at startup +ApplicationSetting.expire +Ci::ApplicationSetting.expire | 
