Module: Gitlab::CurrentSettings
- Defined in:
- lib/gitlab/current_settings.rb
Class Method Summary collapse
- .current_application_settings ⇒ Object
- .current_application_settings? ⇒ Boolean
- .expire_current_application_settings ⇒ Object
-
.method_missing(name, *args, **kwargs, &block) ⇒ Object
rubocop:disable GitlabSecurity/PublicSend -- Method calls are forwarded to one of the setting classes.
-
.respond_to_missing?(name, include_private = false) ⇒ Boolean
rubocop:enable GitlabSecurity/PublicSend.
- .respond_to_organization_setting?(name, include_private) ⇒ Boolean
- .signup_disabled? ⇒ Boolean
- .signup_limited? ⇒ Boolean
Class Method Details
.current_application_settings ⇒ Object
14 15 16 |
# File 'lib/gitlab/current_settings.rb', line 14 def current_application_settings Gitlab::SafeRequestStore.fetch(:current_application_settings) { Gitlab::ApplicationSettingFetcher.current_application_settings } end |
.current_application_settings? ⇒ Boolean
18 19 20 |
# File 'lib/gitlab/current_settings.rb', line 18 def current_application_settings? Gitlab::SafeRequestStore.exist?(:current_application_settings) || Gitlab::ApplicationSettingFetcher.current_application_settings? end |
.expire_current_application_settings ⇒ Object
22 23 24 25 |
# File 'lib/gitlab/current_settings.rb', line 22 def expire_current_application_settings Gitlab::ApplicationSettingFetcher.expire_current_application_settings Gitlab::SafeRequestStore.delete(:current_application_settings) end |
.method_missing(name, *args, **kwargs, &block) ⇒ Object
rubocop:disable GitlabSecurity/PublicSend -- Method calls are forwarded to one of the setting classes
28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/gitlab/current_settings.rb', line 28 def method_missing(name, *args, **kwargs, &block) application_settings = current_application_settings return application_settings.send(name, *args, **kwargs, &block) if application_settings.respond_to?(name) if respond_to_organization_setting?(name, false) return ::Organizations::OrganizationSetting.for(::Current.organization.id).send(name, *args, **kwargs, &block) end super end |
.respond_to_missing?(name, include_private = false) ⇒ Boolean
rubocop:enable GitlabSecurity/PublicSend
41 42 43 |
# File 'lib/gitlab/current_settings.rb', line 41 def respond_to_missing?(name, include_private = false) current_application_settings.respond_to?(name, include_private) || respond_to_organization_setting?(name, include_private) || super end |
.respond_to_organization_setting?(name, include_private) ⇒ Boolean
45 46 47 48 49 |
# File 'lib/gitlab/current_settings.rb', line 45 def respond_to_organization_setting?(name, include_private) return false unless ::Current.organization_assigned ::Organizations::OrganizationSetting.for(::Current.organization.id).respond_to?(name, include_private) end |
.signup_disabled? ⇒ Boolean
6 7 8 |
# File 'lib/gitlab/current_settings.rb', line 6 def signup_disabled? !signup_enabled? end |
.signup_limited? ⇒ Boolean
10 11 12 |
# File 'lib/gitlab/current_settings.rb', line 10 def signup_limited? domain_allowlist.present? || email_restrictions_enabled? || require_admin_approval_after_user_signup? || user_default_external? end |