Commit 6fdc51f8 authored by Marin Jankovski's avatar Marin Jankovski

Merge branch 'bug/fix-duplicate-deploy-keys' into 'master'

Don't show duplicate deploy keys

This fixes the issue described in [#1516](https://gitlab.com/gitlab-org/gitlab-ce/issues/1516) where you would see the same deploy key multiple times if it was used by multiple projects.

See merge request !629
parents 40c8295a a0fd2eb5
Please view this file on the master branch, on stable branches it's out of date. Please view this file on the master branch, on stable branches it's out of date.
v 7.11.0 (unreleased) v 7.11.0 (unreleased)
- Don't show duplicate deploy keys
- Make the first branch pushed to an empty repository the default HEAD (Stan Hu) - Make the first branch pushed to an empty repository the default HEAD (Stan Hu)
- Make Reply-To config apply to change e-mail confirmation and other Devise notifications (Stan Hu) - Make Reply-To config apply to change e-mail confirmation and other Devise notifications (Stan Hu)
- Add application setting to restrict user signups to e-mail domains (Stan Hu) - Add application setting to restrict user signups to e-mail domains (Stan Hu)
......
...@@ -438,7 +438,7 @@ class User < ActiveRecord::Base ...@@ -438,7 +438,7 @@ class User < ActiveRecord::Base
end end
def project_deploy_keys def project_deploy_keys
DeployKey.in_projects(self.authorized_projects.pluck(:id)) DeployKey.unscoped.in_projects(self.authorized_projects.pluck(:id)).distinct(:id)
end end
def accessible_deploy_keys def accessible_deploy_keys
......
...@@ -9,9 +9,10 @@ Feature: Project Deploy Keys ...@@ -9,9 +9,10 @@ Feature: Project Deploy Keys
Then I should see project deploy key Then I should see project deploy key
Scenario: I should see project deploy keys Scenario: I should see project deploy keys
Given other project has deploy key Given other projects have deploy keys
When I visit project deploy keys page When I visit project deploy keys page
Then I should see other project deploy key Then I should see other project deploy key
And I should only see the same deploy key once
Scenario: I should see public deploy keys Scenario: I should see public deploy keys
Given public deploy key exists Given public deploy key exists
...@@ -26,7 +27,7 @@ Feature: Project Deploy Keys ...@@ -26,7 +27,7 @@ Feature: Project Deploy Keys
And I should see newly created deploy key And I should see newly created deploy key
Scenario: I attach other project deploy key to project Scenario: I attach other project deploy key to project
Given other project has deploy key Given other projects have deploy keys
And I visit project deploy keys page And I visit project deploy keys page
When I click attach deploy key When I click attach deploy key
Then I should be on deploy keys page Then I should be on deploy keys page
......
...@@ -45,10 +45,20 @@ class Spinach::Features::ProjectDeployKeys < Spinach::FeatureSteps ...@@ -45,10 +45,20 @@ class Spinach::Features::ProjectDeployKeys < Spinach::FeatureSteps
end end
end end
step 'other project has deploy key' do step 'other projects have deploy keys' do
@second_project = create :project, namespace: create(:group) @second_project = create(:project, namespace: create(:group))
@second_project.team << [current_user, :master] @second_project.team << [current_user, :master]
create(:deploy_keys_project, project: @second_project) create(:deploy_keys_project, project: @second_project)
@third_project = create(:project, namespace: create(:group))
@third_project.team << [current_user, :master]
create(:deploy_keys_project, project: @third_project, deploy_key: @second_project.deploy_keys.first)
end
step 'I should only see the same deploy key once' do
within '.available-keys' do
page.should have_selector('ul li', count: 1)
end
end end
step 'public deploy key exists' do step 'public deploy key exists' do
......
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