diff options
author | Sean McGivern <sean@mcgivern.me.uk> | 2017-03-23 15:56:37 +0000 |
---|---|---|
committer | Sean McGivern <sean@mcgivern.me.uk> | 2017-03-23 15:56:37 +0000 |
commit | 64aaa1ae1a4cd4b1be52c505c97a93763d5eaa30 (patch) | |
tree | 7f8598e57a29aa263a6f4d80b3ae6b2f473abffd | |
parent | d576fd82333c79b3f056f26f79e85c0eceb5704b (diff) | |
parent | e0d2f249b4884f9525c44119680bf804e8a7ff20 (diff) | |
download | gitlab-ce-64aaa1ae1a4cd4b1be52c505c97a93763d5eaa30.tar.gz |
Merge branch 'deploy-key-disable-missing' into 'master'
Return 404 if deploy key cannot be found in Projects::DeployKeysController#disable
Closes #29633
See merge request !10091
-rw-r--r-- | app/controllers/projects/deploy_keys_controller.rb | 4 | ||||
-rw-r--r-- | spec/features/projects/deploy_keys_spec.rb | 26 |
2 files changed, 29 insertions, 1 deletions
diff --git a/app/controllers/projects/deploy_keys_controller.rb b/app/controllers/projects/deploy_keys_controller.rb index 1502b734f37..d0c44e297e3 100644 --- a/app/controllers/projects/deploy_keys_controller.rb +++ b/app/controllers/projects/deploy_keys_controller.rb @@ -31,8 +31,10 @@ class Projects::DeployKeysController < Projects::ApplicationController end def disable - @project.deploy_keys_projects.find_by(deploy_key_id: params[:id]).destroy + deploy_key_project = @project.deploy_keys_projects.find_by(deploy_key_id: params[:id]) + return render_404 unless deploy_key_project + deploy_key_project.destroy! redirect_to_repository_settings(@project) end diff --git a/spec/features/projects/deploy_keys_spec.rb b/spec/features/projects/deploy_keys_spec.rb new file mode 100644 index 00000000000..0b997f130ea --- /dev/null +++ b/spec/features/projects/deploy_keys_spec.rb @@ -0,0 +1,26 @@ +require 'spec_helper' + +describe 'Project deploy keys', feature: true do + let(:user) { create(:user) } + let(:project) { create(:project_empty_repo) } + + before do + project.team << [user, :master] + login_as(user) + end + + describe 'removing key' do + before do + create(:deploy_keys_project, project: project) + end + + it 'removes association between project and deploy key' do + visit namespace_project_settings_repository_path(project.namespace, project) + + page.within '.deploy-keys' do + expect { click_on 'Remove' } + .to change { project.deploy_keys.count }.by(-1) + end + end + end +end |