Commit 913084e6 authored by Stan Hu's avatar Stan Hu

Fix clone URL not showing if protocol is HTTPS

GitLab 11.6.2 fixed the case for HTTP. However, HTTPS still did
not work because the protocol returned to `http_enabled?`
was the actual protocol in use (e.g. `https` instead of `http`).

Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/55896
parent 0e20c8eb
...@@ -20,7 +20,7 @@ module ApplicationSettingsHelper ...@@ -20,7 +20,7 @@ module ApplicationSettingsHelper
def enabled_protocol def enabled_protocol
case Gitlab::CurrentSettings.enabled_git_access_protocol case Gitlab::CurrentSettings.enabled_git_access_protocol
when 'http' when 'http'
gitlab_config.protocol Gitlab.config.gitlab.protocol
when 'ssh' when 'ssh'
'ssh' 'ssh'
end end
...@@ -35,7 +35,7 @@ module ApplicationSettingsHelper ...@@ -35,7 +35,7 @@ module ApplicationSettingsHelper
end end
def http_enabled? def http_enabled?
all_protocols_enabled? || enabled_protocol == 'http' all_protocols_enabled? || Gitlab::CurrentSettings.enabled_git_access_protocol == 'http'
end end
def enabled_project_button(project, protocol) def enabled_project_button(project, protocol)
......
---
title: Fix clone URL not showing if protocol is HTTPS
merge_request: 24131
author:
type: fixed
# frozen_string_literal: true
require 'spec_helper'
describe ApplicationSettingsHelper do
context 'when all protocols in use' do
before do
stub_application_setting(enabled_git_access_protocol: '')
end
it { expect(all_protocols_enabled?).to be_truthy }
it { expect(http_enabled?).to be_truthy }
it { expect(ssh_enabled?).to be_truthy }
end
context 'when SSH is only in use' do
before do
stub_application_setting(enabled_git_access_protocol: 'ssh')
end
it { expect(all_protocols_enabled?).to be_falsey }
it { expect(http_enabled?).to be_falsey }
it { expect(ssh_enabled?).to be_truthy }
end
shared_examples 'when HTTP protocol is in use' do |protocol|
before do
allow(Gitlab.config.gitlab).to receive(:protocol).and_return(protocol)
stub_application_setting(enabled_git_access_protocol: 'http')
end
it { expect(all_protocols_enabled?).to be_falsey }
it { expect(http_enabled?).to be_truthy }
it { expect(ssh_enabled?).to be_falsey }
end
it_behaves_like 'when HTTP protocol is in use', 'https'
it_behaves_like 'when HTTP protocol is in use', 'http'
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment