Commit f5aaf89a authored by Michael Kozono's avatar Michael Kozono

Merge branch 'ag-refactor-maintenance-mode-check' into 'master'

Re-factor check for maintenance mode

See merge request gitlab-org/gitlab!49387
parents b7365c90 67e0c38c
...@@ -13,7 +13,7 @@ module EE ...@@ -13,7 +13,7 @@ module EE
def read_only_message def read_only_message
message = ::Gitlab::Geo.secondary? ? geo_secondary_read_only_message : super message = ::Gitlab::Geo.secondary? ? geo_secondary_read_only_message : super
return message unless maintenance_mode? return message unless ::Gitlab.maintenance_mode?
return maintenance_mode_message.concat(message) if message return maintenance_mode_message.concat(message) if message
maintenance_mode_message maintenance_mode_message
...@@ -156,11 +156,5 @@ module EE ...@@ -156,11 +156,5 @@ module EE
next_unprocessed_event.created_at < EVENT_LAG_SHOW_THRESHOLD.ago next_unprocessed_event.created_at < EVENT_LAG_SHOW_THRESHOLD.ago
end end
end end
def maintenance_mode?
return unless ::Feature.enabled?(:maintenance_mode)
::Gitlab::CurrentSettings.maintenance_mode
end
end end
end end
...@@ -96,15 +96,11 @@ module EE ...@@ -96,15 +96,11 @@ module EE
def check_maintenance_mode!(cmd) def check_maintenance_mode!(cmd)
return unless cmd == 'git-receive-pack' return unless cmd == 'git-receive-pack'
return unless maintenance_mode? return unless ::Gitlab.maintenance_mode?
raise ::Gitlab::GitAccess::ForbiddenError, 'Git push is not allowed because this GitLab instance is currently in (read-only) maintenance mode.' raise ::Gitlab::GitAccess::ForbiddenError, 'Git push is not allowed because this GitLab instance is currently in (read-only) maintenance mode.'
end end
def maintenance_mode?
::Gitlab::CurrentSettings.current_application_settings.maintenance_mode
end
def can_access_without_new_smartcard_login? def can_access_without_new_smartcard_login?
return true unless user return true unless user
......
...@@ -36,7 +36,7 @@ module EE ...@@ -36,7 +36,7 @@ module EE
allowed = super || geo_node_update_route? || geo_api_route? allowed = super || geo_node_update_route? || geo_api_route?
return true if allowed return true if allowed
return false if maintenance_mode? return false if ::Gitlab.maintenance_mode?
return false unless ::Gitlab::Geo.secondary? return false unless ::Gitlab::Geo.secondary?
git_write_routes git_write_routes
...@@ -90,13 +90,7 @@ module EE ...@@ -90,13 +90,7 @@ module EE
override :read_only? override :read_only?
def read_only? def read_only?
maintenance_mode? || super ::Gitlab.maintenance_mode? || super
end
def maintenance_mode?
return unless ::Feature.enabled?(:maintenance_mode)
::Gitlab::CurrentSettings.maintenance_mode
end end
end end
end end
......
...@@ -115,4 +115,10 @@ module Gitlab ...@@ -115,4 +115,10 @@ module Gitlab
'web' 'web'
end end
def self.maintenance_mode?
return false unless ::Feature.enabled?(:maintenance_mode)
::Gitlab::CurrentSettings.maintenance_mode
end
end end
...@@ -329,4 +329,24 @@ RSpec.describe Gitlab do ...@@ -329,4 +329,24 @@ RSpec.describe Gitlab do
expect(described_class.http_proxy_env?).to eq(false) expect(described_class.http_proxy_env?).to eq(false)
end end
end end
describe '.maintenance_mode?' do
it 'returns true when maintenance mode is enabled' do
stub_application_setting(maintenance_mode: true)
expect(described_class.maintenance_mode?).to eq(true)
end
it 'returns false when maintenance mode is disabled' do
stub_application_setting(maintenance_mode: false)
expect(described_class.maintenance_mode?).to eq(false)
end
it 'returns false when maintenance mode feature flag is disabled' do
stub_feature_flags(maintenance_mode: false)
expect(described_class.maintenance_mode?).to eq(false)
end
end
end end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment