Merge branch 'default_clone_protocol_based_on_user_keys' into 'master'
When rendering the clone page, check user profile to decide default clone protocol If the user has uploaded SSH-keys, use SSH; otherwise, use http(s). Closes #3504. See merge request !1998
This commit is contained in:
commit
c3676aa156
6 changed files with 41 additions and 4 deletions
|
@ -175,11 +175,19 @@ module ProjectsHelper
|
|||
end
|
||||
|
||||
def default_url_to_repo(project = @project)
|
||||
current_user ? project.url_to_repo : project.http_url_to_repo
|
||||
if default_clone_protocol == "ssh"
|
||||
project.ssh_url_to_repo
|
||||
else
|
||||
project.http_url_to_repo
|
||||
end
|
||||
end
|
||||
|
||||
def default_clone_protocol
|
||||
current_user ? "ssh" : "http"
|
||||
if !current_user || current_user.require_ssh_key?
|
||||
"http"
|
||||
else
|
||||
"ssh"
|
||||
end
|
||||
end
|
||||
|
||||
def project_last_activity(project)
|
||||
|
|
|
@ -31,8 +31,17 @@ Feature: Explore Projects
|
|||
Then I should see empty public project details
|
||||
And I should see empty public project details with http clone info
|
||||
|
||||
Scenario: I visit an empty public project page as user
|
||||
Scenario: I visit an empty public project page as user with no ssh-keys
|
||||
Given I sign in as a user
|
||||
And I have no ssh keys
|
||||
And public empty project "Empty Public Project"
|
||||
When I visit empty project page
|
||||
Then I should see empty public project details
|
||||
And I should see empty public project details with http clone info
|
||||
|
||||
Scenario: I visit an empty public project page as user with an ssh-key
|
||||
Given I sign in as a user
|
||||
And I have an ssh key
|
||||
And public empty project "Empty Public Project"
|
||||
When I visit empty project page
|
||||
Then I should see empty public project details
|
||||
|
@ -57,8 +66,16 @@ Feature: Explore Projects
|
|||
Then I should see project "Community" home page
|
||||
And I should see an http link to the repository
|
||||
|
||||
Scenario: I visit public project page as user
|
||||
Scenario: I visit public project page as user with no ssh-keys
|
||||
Given I sign in as a user
|
||||
And I have no ssh keys
|
||||
When I visit project "Community" page
|
||||
Then I should see project "Community" home page
|
||||
And I should see an http link to the repository
|
||||
|
||||
Scenario: I visit public project page as user with an ssh-key
|
||||
Given I sign in as a user
|
||||
And I have an ssh key
|
||||
When I visit project "Community" page
|
||||
Then I should see project "Community" home page
|
||||
And I should see an ssh link to the repository
|
||||
|
|
|
@ -7,6 +7,7 @@ Feature: Project Create
|
|||
Scenario: User create a project
|
||||
Given I sign in as a user
|
||||
When I visit new project page
|
||||
And I have an ssh key
|
||||
And fill project form with valid data
|
||||
Then I should see project page
|
||||
And I should see empty project instuctions
|
||||
|
@ -14,6 +15,7 @@ Feature: Project Create
|
|||
@javascript
|
||||
Scenario: Empty project instructions
|
||||
Given I sign in as a user
|
||||
And I have an ssh key
|
||||
When I visit new project page
|
||||
And fill project form with valid data
|
||||
Then I see empty project instuctions
|
||||
|
|
|
@ -2,6 +2,7 @@ class Spinach::Features::ExploreProjects < Spinach::FeatureSteps
|
|||
include SharedAuthentication
|
||||
include SharedPaths
|
||||
include SharedProject
|
||||
include SharedUser
|
||||
|
||||
step 'I should see project "Empty Public Project"' do
|
||||
expect(page).to have_content "Empty Public Project"
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
class Spinach::Features::ProjectCreate < Spinach::FeatureSteps
|
||||
include SharedAuthentication
|
||||
include SharedPaths
|
||||
include SharedUser
|
||||
|
||||
step 'fill project form with valid data' do
|
||||
fill_in 'project_path', with: 'Empty'
|
||||
|
|
|
@ -18,4 +18,12 @@ module SharedUser
|
|||
def user_exists(name, options = {})
|
||||
User.find_by(name: name) || create(:user, { name: name, admin: false }.merge(options))
|
||||
end
|
||||
|
||||
step 'I have an ssh key' do
|
||||
create(:key, user: @user, title: "An ssh-key", key: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+L3TbFegm3k8QjejSwemk4HhlRh+DuN679Pc5ckqE/MPhVtE/+kZQDYCTB284GiT2aIoGzmZ8ee9TkaoejAsBwlA+Wz2Q3vhz65X6sMgalRwpdJx8kSEUYV8ZPV3MZvPo8KdNg993o4jL6G36GDW4BPIyO6FPZhfsawdf6liVD0Xo5kibIK7B9VoE178cdLQtLpS2YolRwf5yy6XR6hbbBGQR+6xrGOdP16eGZDb1CE2bMvvJijjloFqPscGktWOqW+nfh5txwFfBzlfARDTBsS8WZtg3Yoj1kn33kPsWRlgHfNutFRAIynDuDdQzQq8tTtVwm+Yi75RfcPHW8y3P Work")
|
||||
end
|
||||
|
||||
step 'I have no ssh keys' do
|
||||
Key.delete_all
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue