diff options
Diffstat (limited to 'app/models')
-rw-r--r-- | app/models/namespace.rb | 8 | ||||
-rw-r--r-- | app/models/namespace_setting.rb | 9 |
2 files changed, 14 insertions, 3 deletions
diff --git a/app/models/namespace.rb b/app/models/namespace.rb index e7bf1ff42a5..5bb06cdbb4a 100644 --- a/app/models/namespace.rb +++ b/app/models/namespace.rb @@ -557,6 +557,14 @@ class Namespace < ApplicationRecord cluster_enabled_granted? || certificate_based_clusters_enabled_ff? end + def enabled_git_access_protocol + # If the instance-level setting is enabled, we defer to that + return ::Gitlab::CurrentSettings.enabled_git_access_protocol unless ::Gitlab::CurrentSettings.enabled_git_access_protocol.blank? + + # Otherwise we use the stored setting on the group + namespace_settings&.enabled_git_access_protocol + end + private def cluster_enabled_granted? diff --git a/app/models/namespace_setting.rb b/app/models/namespace_setting.rb index ef917c8a22e..504daf2662e 100644 --- a/app/models/namespace_setting.rb +++ b/app/models/namespace_setting.rb @@ -9,14 +9,17 @@ class NamespaceSetting < ApplicationRecord belongs_to :namespace, inverse_of: :namespace_settings + enum jobs_to_be_done: { basics: 0, move_repository: 1, code_storage: 2, exploring: 3, ci: 4, other: 5 }, _suffix: true + enum enabled_git_access_protocol: { all: 0, ssh: 1, http: 2 }, _suffix: true + + validates :enabled_git_access_protocol, inclusion: { in: enabled_git_access_protocols.keys } + validate :default_branch_name_content validate :allow_mfa_for_group validate :allow_resource_access_token_creation_for_group before_validation :normalize_default_branch_name - enum jobs_to_be_done: { basics: 0, move_repository: 1, code_storage: 2, exploring: 3, ci: 4, other: 5 }, _suffix: true - chronic_duration_attr :runner_token_expiration_interval_human_readable, :runner_token_expiration_interval chronic_duration_attr :subgroup_runner_token_expiration_interval_human_readable, :subgroup_runner_token_expiration_interval chronic_duration_attr :project_runner_token_expiration_interval_human_readable, :project_runner_token_expiration_interval @@ -24,7 +27,7 @@ class NamespaceSetting < ApplicationRecord NAMESPACE_SETTINGS_PARAMS = [:default_branch_name, :delayed_project_removal, :lock_delayed_project_removal, :resource_access_token_creation_allowed, :prevent_sharing_groups_outside_hierarchy, :new_user_signups_cap, - :setup_for_company, :jobs_to_be_done, :runner_token_expiration_interval, + :setup_for_company, :jobs_to_be_done, :runner_token_expiration_interval, :enabled_git_access_protocol, :subgroup_runner_token_expiration_interval, :project_runner_token_expiration_interval].freeze self.primary_key = :namespace_id |