Skip to content
Snippets Groups Projects
Commit da15471b authored by Patricio Cano's avatar Patricio Cano
Browse files

Clarify protocol access check, and make Git HTTP access call more specific.

parent 0f54e2ae
No related branches found
No related tags found
1 merge request!4696Add setting that allows admins to choose which Git access protocols are enabled.
Loading
Loading
@@ -157,7 +157,7 @@ class Projects::GitHttpController < Projects::ApplicationController
end
 
def render_not_allowed
render plain: access.message, status: :forbidden
render plain: download_access.message, status: :forbidden
end
 
def ci?
Loading
Loading
@@ -168,20 +168,20 @@ class Projects::GitHttpController < Projects::ApplicationController
return false unless Gitlab.config.gitlab_shell.upload_pack
 
if user
access.allowed?
download_access.allowed?
else
ci? || project.public?
end
end
 
def access
return @access if defined?(@access)
def download_access
return @download_access if defined?(@download_access)
 
@access = Gitlab::GitAccess.new(user, project, 'http').check('git-upload-pack')
@download_access = Gitlab::GitAccess.new(user, project, 'http').check('git-upload-pack')
end
 
def http_blocked?
access.message.include?('HTTP')
download_access.protocol_allowed?
end
 
def receive_pack_allowed?
Loading
Loading
Loading
Loading
@@ -3,7 +3,7 @@ module Gitlab
def self.allowed?(protocol)
if protocol.to_s == 'web'
true
elsif !current_application_settings.enabled_git_access_protocols.present?
elsif current_application_settings.enabled_git_access_protocols.blank?
true
else
protocol.to_s == current_application_settings.enabled_git_access_protocols
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment