Default Git access protocol to `web`
This commit is contained in:
parent
fbaabb3911
commit
29c50c5315
|
@ -44,19 +44,15 @@ module ApplicationSettingsHelper
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def enabled_project_tooltip(project, protocol)
|
def enabled_project_button(project, protocol)
|
||||||
case protocol
|
case protocol
|
||||||
when 'ssh'
|
when 'ssh'
|
||||||
sanitize_clone_button(ssh_clone_button(project, 'bottom'))
|
ssh_clone_button(project, 'bottom', false)
|
||||||
else
|
else
|
||||||
sanitize_clone_button(http_clone_button(project, 'bottom'))
|
http_clone_button(project, 'bottom', false)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def sanitize_clone_button(input)
|
|
||||||
sanitize(input, tags: %w(a), attributes: %w(id class title data-html data-container data-placement data-title data-original-title aria-describedby))
|
|
||||||
end
|
|
||||||
|
|
||||||
# Return a group of checkboxes that use Bootstrap's button plugin for a
|
# Return a group of checkboxes that use Bootstrap's button plugin for a
|
||||||
# toggle button effect.
|
# toggle button effect.
|
||||||
def restricted_level_checkboxes(help_block_id)
|
def restricted_level_checkboxes(help_block_id)
|
||||||
|
|
|
@ -12,7 +12,7 @@ module BranchesHelper
|
||||||
def can_push_branch?(project, branch_name)
|
def can_push_branch?(project, branch_name)
|
||||||
return false unless project.repository.branch_exists?(branch_name)
|
return false unless project.repository.branch_exists?(branch_name)
|
||||||
|
|
||||||
::Gitlab::GitAccess.new(current_user, project, 'web').can_push_to_branch?(branch_name)
|
::Gitlab::GitAccess.new(current_user, project).can_push_to_branch?(branch_name)
|
||||||
end
|
end
|
||||||
|
|
||||||
def project_branches
|
def project_branches
|
||||||
|
|
|
@ -40,7 +40,7 @@ module ButtonHelper
|
||||||
type: :button
|
type: :button
|
||||||
end
|
end
|
||||||
|
|
||||||
def http_clone_button(project, placement = 'right')
|
def http_clone_button(project, placement = 'right', append_link = true)
|
||||||
klass = 'http-selector'
|
klass = 'http-selector'
|
||||||
klass << ' has-tooltip' if current_user.try(:require_password?)
|
klass << ' has-tooltip' if current_user.try(:require_password?)
|
||||||
|
|
||||||
|
@ -48,7 +48,7 @@ module ButtonHelper
|
||||||
|
|
||||||
content_tag :a, protocol,
|
content_tag :a, protocol,
|
||||||
class: klass,
|
class: klass,
|
||||||
href: project.http_url_to_repo,
|
href: (project.http_url_to_repo if append_link),
|
||||||
data: {
|
data: {
|
||||||
html: true,
|
html: true,
|
||||||
placement: placement,
|
placement: placement,
|
||||||
|
@ -57,13 +57,13 @@ module ButtonHelper
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
def ssh_clone_button(project, placement = 'right')
|
def ssh_clone_button(project, placement = 'right', append_link = true)
|
||||||
klass = 'ssh-selector'
|
klass = 'ssh-selector'
|
||||||
klass << ' has-tooltip' if current_user.try(:require_ssh_key?)
|
klass << ' has-tooltip' if current_user.try(:require_ssh_key?)
|
||||||
|
|
||||||
content_tag :a, 'SSH',
|
content_tag :a, 'SSH',
|
||||||
class: klass,
|
class: klass,
|
||||||
href: project.ssh_url_to_repo,
|
href: (project.ssh_url_to_repo if append_link),
|
||||||
data: {
|
data: {
|
||||||
html: true,
|
html: true,
|
||||||
placement: placement,
|
placement: placement,
|
||||||
|
|
|
@ -481,7 +481,7 @@ class MergeRequest < ActiveRecord::Base
|
||||||
end
|
end
|
||||||
|
|
||||||
def can_be_merged_by?(user)
|
def can_be_merged_by?(user)
|
||||||
::Gitlab::GitAccess.new(user, project, 'web').can_push_to_branch?(target_branch)
|
::Gitlab::GitAccess.new(user, project).can_push_to_branch?(target_branch)
|
||||||
end
|
end
|
||||||
|
|
||||||
def mergeable_ci_state?
|
def mergeable_ci_state?
|
||||||
|
|
|
@ -23,7 +23,7 @@ module Commits
|
||||||
private
|
private
|
||||||
|
|
||||||
def check_push_permissions
|
def check_push_permissions
|
||||||
allowed = ::Gitlab::GitAccess.new(current_user, project, 'web').can_push_to_branch?(@target_branch)
|
allowed = ::Gitlab::GitAccess.new(current_user, project).can_push_to_branch?(@target_branch)
|
||||||
|
|
||||||
unless allowed
|
unless allowed
|
||||||
raise ValidationError.new('You are not allowed to push into this branch')
|
raise ValidationError.new('You are not allowed to push into this branch')
|
||||||
|
|
|
@ -43,7 +43,7 @@ module Files
|
||||||
end
|
end
|
||||||
|
|
||||||
def validate
|
def validate
|
||||||
allowed = ::Gitlab::GitAccess.new(current_user, project, 'web').can_push_to_branch?(@target_branch)
|
allowed = ::Gitlab::GitAccess.new(current_user, project).can_push_to_branch?(@target_branch)
|
||||||
|
|
||||||
unless allowed
|
unless allowed
|
||||||
raise_error("You are not allowed to push into this branch")
|
raise_error("You are not allowed to push into this branch")
|
||||||
|
|
|
@ -5,7 +5,7 @@ module Gitlab
|
||||||
|
|
||||||
attr_reader :actor, :project, :protocol
|
attr_reader :actor, :project, :protocol
|
||||||
|
|
||||||
def initialize(actor, project, protocol)
|
def initialize(actor, project, protocol = 'web')
|
||||||
@actor = actor
|
@actor = actor
|
||||||
@project = project
|
@project = project
|
||||||
@protocol = protocol
|
@protocol = protocol
|
||||||
|
@ -50,8 +50,6 @@ module Gitlab
|
||||||
end
|
end
|
||||||
|
|
||||||
def check(cmd, changes = nil)
|
def check(cmd, changes = nil)
|
||||||
raise 'Access denied due to unspecified Git access protocol' unless protocol.present?
|
|
||||||
|
|
||||||
return build_status_object(false, "Git access over #{protocol.upcase} is not allowed") unless protocol_allowed?
|
return build_status_object(false, "Git access over #{protocol.upcase} is not allowed") unless protocol_allowed?
|
||||||
|
|
||||||
unless actor
|
unless actor
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
module Gitlab
|
module Gitlab
|
||||||
module ProtocolAccess
|
module ProtocolAccess
|
||||||
def self.allowed?(protocol)
|
def self.allowed?(protocol)
|
||||||
if protocol.to_s == 'web'
|
if protocol == 'web'
|
||||||
true
|
true
|
||||||
elsif current_application_settings.enabled_git_access_protocol.blank?
|
elsif current_application_settings.enabled_git_access_protocol.blank?
|
||||||
true
|
true
|
||||||
else
|
else
|
||||||
protocol.to_s == current_application_settings.enabled_git_access_protocol
|
protocol == current_application_settings.enabled_git_access_protocol
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
|
|
||||||
describe Gitlab::GitAccess, lib: true do
|
describe Gitlab::GitAccess, lib: true do
|
||||||
let(:access) { Gitlab::GitAccess.new(actor, project, 'web') }
|
let(:access) { Gitlab::GitAccess.new(actor, project) }
|
||||||
let(:project) { create(:project) }
|
let(:project) { create(:project) }
|
||||||
let(:user) { create(:user) }
|
let(:user) { create(:user) }
|
||||||
let(:actor) { user }
|
let(:actor) { user }
|
||||||
|
|
Loading…
Reference in New Issue