Class: ApplicationSetting

Inherits:
ActiveRecord::Base
  • Object
show all
Includes:
TokenAuthenticatable
Defined in:
app/models/application_setting.rb

Overview

Schema Information

Table name: application_settings

id                                :integer          not null, primary key
default_projects_limit            :integer
signup_enabled                    :boolean
signin_enabled                    :boolean
gravatar_enabled                  :boolean
sign_in_text                      :text
created_at                        :datetime
updated_at                        :datetime
home_page_url                     :string
default_branch_protection         :integer          default(2)
restricted_visibility_levels      :text
version_check_enabled             :boolean          default(TRUE)
max_attachment_size               :integer          default(10), not null
default_project_visibility        :integer
default_snippet_visibility        :integer
restricted_signup_domains         :text
user_oauth_applications           :boolean          default(TRUE)
after_sign_out_path               :string
session_expire_delay              :integer          default(10080), not null
import_sources                    :text
help_page_text                    :text
admin_notification_email          :string
shared_runners_enabled            :boolean          default(TRUE), not null
max_artifacts_size                :integer          default(100), not null
runners_registration_token        :string
require_two_factor_authentication :boolean          default(FALSE)
two_factor_grace_period           :integer          default(48)
metrics_enabled                   :boolean          default(FALSE)
metrics_host                      :string           default("localhost")
metrics_pool_size                 :integer          default(16)
metrics_timeout                   :integer          default(10)
metrics_method_call_threshold     :integer          default(10)
recaptcha_enabled                 :boolean          default(FALSE)
recaptcha_site_key                :string
recaptcha_private_key             :string
metrics_port                      :integer          default(8089)
metrics_sample_interval           :integer          default(15)
sentry_enabled                    :boolean          default(FALSE)
sentry_dsn                        :string
akismet_enabled                   :boolean          default(FALSE)
akismet_api_key                   :string
email_author_in_body              :boolean          default(FALSE)
default_group_visibility          :integer
repository_checks_enabled         :boolean          default(FALSE)
metrics_packet_size               :integer          default(1)
shared_runners_text               :text

Constant Summary collapse

CACHE_KEY =
'application_setting.last'

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#restricted_signup_domains_rawObject

Returns the value of attribute restricted_signup_domains_raw


62
63
64
# File 'app/models/application_setting.rb', line 62

def 
  @restricted_signup_domains_raw
end

Class Method Details

.create_from_defaultsObject


140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
# File 'app/models/application_setting.rb', line 140

def self.create_from_defaults
  create(
    default_projects_limit: Settings.gitlab['default_projects_limit'],
    default_branch_protection: Settings.gitlab['default_branch_protection'],
    signup_enabled: Settings.gitlab['signup_enabled'],
    signin_enabled: Settings.gitlab['signin_enabled'],
    gravatar_enabled: Settings.gravatar['enabled'],
    sign_in_text: Settings.extra['sign_in_text'],
    restricted_visibility_levels: Settings.gitlab['restricted_visibility_levels'],
    max_attachment_size: Settings.gitlab['max_attachment_size'],
    session_expire_delay: Settings.gitlab['session_expire_delay'],
    default_project_visibility: Settings.gitlab.default_projects_features['visibility_level'],
    default_snippet_visibility: Settings.gitlab.default_projects_features['visibility_level'],
    restricted_signup_domains: Settings.gitlab['restricted_signup_domains'],
    import_sources: ['github','bitbucket','gitlab','gitorious','google_code','fogbugz','git'],
    shared_runners_enabled: Settings.gitlab_ci['shared_runners_enabled'],
    max_artifacts_size: Settings.artifacts['max_size'],
    require_two_factor_authentication: false,
    two_factor_grace_period: 48,
    recaptcha_enabled: false,
    akismet_enabled: false,
    repository_checks_enabled: true,
  )
end

.currentObject


130
131
132
133
134
# File 'app/models/application_setting.rb', line 130

def self.current
  Rails.cache.fetch(CACHE_KEY) do
    ApplicationSetting.last
  end
end

.expireObject


136
137
138
# File 'app/models/application_setting.rb', line 136

def self.expire
  Rails.cache.delete(CACHE_KEY)
end

Instance Method Details

#home_page_url_column_existObject


165
166
167
# File 'app/models/application_setting.rb', line 165

def home_page_url_column_exist
  ActiveRecord::Base.connection.column_exists?(:application_settings, :home_page_url)
end

#runners_registration_tokenObject


185
186
187
# File 'app/models/application_setting.rb', line 185

def runners_registration_token
  ensure_runners_registration_token!
end