application_setting.rb 1.4 KB
Newer Older
D
Dmitriy Zaporozhets 已提交
1 2 3 4
# == Schema Information
#
# Table name: application_settings
#
D
Dmitriy Zaporozhets 已提交
5 6 7 8 9 10 11 12 13 14 15
#  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(255)
#  default_branch_protection :integer          default(2)
#  twitter_sharing_enabled   :boolean          default(TRUE)
D
Dmitriy Zaporozhets 已提交
16 17
#

18
class ApplicationSetting < ActiveRecord::Base
19 20
  validates :home_page_url,
    allow_blank: true,
21 22
    format: { with: URI::regexp(%w(http https)), message: "should be a valid url" },
    if: :home_page_url_column_exist
23

24 25 26
  def self.current
    ApplicationSetting.last
  end
27 28 29 30

  def self.create_from_defaults
    create(
      default_projects_limit: Settings.gitlab['default_projects_limit'],
31
      default_branch_protection: Settings.gitlab['default_branch_protection'],
32 33
      signup_enabled: Settings.gitlab['signup_enabled'],
      signin_enabled: Settings.gitlab['signin_enabled'],
34
      twitter_sharing_enabled: Settings.gitlab['twitter_sharing_enabled'],
35 36 37 38
      gravatar_enabled: Settings.gravatar['enabled'],
      sign_in_text: Settings.extra['sign_in_text'],
    )
  end
39 40 41 42

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