diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-05-26 03:08:21 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-05-26 03:08:21 +0300 |
commit | 3174adc79907c808088a4ede8b891facb9142025 (patch) | |
tree | fcaa30e13a6b9c822ad29c6f9fbf6701d8f4c937 /app | |
parent | 100a5e4beade0d9b636791f347506106829781c3 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app')
-rw-r--r-- | app/assets/stylesheets/framework/common.scss | 1 | ||||
-rw-r--r-- | app/controllers/admin/application_settings_controller.rb | 1 | ||||
-rw-r--r-- | app/models/application_setting.rb | 18 | ||||
-rw-r--r-- | app/models/application_setting_implementation.rb | 11 |
4 files changed, 30 insertions, 1 deletions
diff --git a/app/assets/stylesheets/framework/common.scss b/app/assets/stylesheets/framework/common.scss index 991fc9f2645..aed5086e6ba 100644 --- a/app/assets/stylesheets/framework/common.scss +++ b/app/assets/stylesheets/framework/common.scss @@ -405,7 +405,6 @@ img.emoji { .prepend-top-16 { margin-top: 16px; } .prepend-top-20 { margin-top: 20px; } .prepend-top-32 { margin-top: 32px; } -.prepend-left-2 { margin-left: 2px; } .prepend-left-4 { margin-left: 4px; } .prepend-left-5 { margin-left: 5px; } .prepend-left-8 { margin-left: 8px; } diff --git a/app/controllers/admin/application_settings_controller.rb b/app/controllers/admin/application_settings_controller.rb index 355662bbb38..11e917ae94a 100644 --- a/app/controllers/admin/application_settings_controller.rb +++ b/app/controllers/admin/application_settings_controller.rb @@ -214,6 +214,7 @@ class Admin::ApplicationSettingsController < Admin::ApplicationController [ *::ApplicationSettingsHelper.visible_attributes, *::ApplicationSettingsHelper.external_authorization_service_attributes, + *ApplicationSetting.repository_storages_weighted_attributes, :lets_encrypt_notification_email, :lets_encrypt_terms_of_service_accepted, :domain_blacklist_file, diff --git a/app/models/application_setting.rb b/app/models/application_setting.rb index e88d9ba4e63..fc1af49e3b0 100644 --- a/app/models/application_setting.rb +++ b/app/models/application_setting.rb @@ -19,6 +19,12 @@ class ApplicationSetting < ApplicationRecord belongs_to :instance_administrators_group, class_name: "Group" + def self.repository_storages_weighted_attributes + @repository_storages_weighted_atributes ||= Gitlab.config.repositories.storages.keys.map { |k| "repository_storages_weighted_#{k}".to_sym }.freeze + end + + store_accessor :repository_storages_weighted, *Gitlab.config.repositories.storages.keys, prefix: true + # Include here so it can override methods from # `add_authentication_token_field` # We don't prepend for now because otherwise we'll need to @@ -39,6 +45,7 @@ class ApplicationSetting < ApplicationRecord cache_markdown_field :after_sign_up_text default_value_for :id, 1 + default_value_for :repository_storages_weighted, {} chronic_duration_attr_writer :archive_builds_in_human_readable, :archive_builds_in_seconds @@ -152,6 +159,7 @@ class ApplicationSetting < ApplicationRecord validates :repository_storages, presence: true validate :check_repository_storages + validate :check_repository_storages_weighted validates :auto_devops_domain, allow_blank: true, @@ -271,6 +279,10 @@ class ApplicationSetting < ApplicationRecord validates :allowed_key_types, presence: true + repository_storages_weighted_attributes.each do |attribute| + validates attribute, allow_nil: true, numericality: { only_integer: true, greater_than_or_equal_to: 0, less_than_or_equal_to: 100 } + end + validates_each :restricted_visibility_levels do |record, attr, value| value&.each do |level| unless Gitlab::VisibilityLevel.options.value?(level) @@ -434,6 +446,12 @@ class ApplicationSetting < ApplicationRecord recaptcha_enabled || login_recaptcha_protection_enabled end + repository_storages_weighted_attributes.each do |attribute| + define_method :"#{attribute}=" do |value| + super(value.to_i) + end + end + private def parsed_grafana_url diff --git a/app/models/application_setting_implementation.rb b/app/models/application_setting_implementation.rb index 69292fd11fb..40cc941c1b6 100644 --- a/app/models/application_setting_implementation.rb +++ b/app/models/application_setting_implementation.rb @@ -104,6 +104,7 @@ module ApplicationSettingImplementation login_recaptcha_protection_enabled: false, repository_checks_enabled: true, repository_storages: ['default'], + repository_storages_weighted: { default: 100 }, require_two_factor_authentication: false, restricted_visibility_levels: Settings.gitlab['restricted_visibility_levels'], session_expire_delay: Settings.gitlab['session_expire_delay'], @@ -262,6 +263,10 @@ module ApplicationSettingImplementation Array(read_attribute(:repository_storages)) end + def repository_storages_weighted + read_attribute(:repository_storages_weighted) + end + def commit_email_hostname super.presence || self.class.default_commit_email_hostname end @@ -422,6 +427,12 @@ module ApplicationSettingImplementation invalid.empty? end + def check_repository_storages_weighted + invalid = repository_storages_weighted.keys - Gitlab.config.repositories.storages.keys + errors.add(:repository_storages_weighted, "can't include: %{invalid_storages}" % { invalid_storages: invalid.join(", ") }) unless + invalid.empty? + end + def terms_exist return unless enforce_terms? |