Return 404 if deploy key cannot be found in Projects::DeployKeysController#disable

Closes #29633
This commit is contained in:
Adam Niedzielski 2017-03-23 15:45:25 +01:00
parent d576fd8233
commit e0d2f249b4
2 changed files with 29 additions and 1 deletions

View File

@ -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

View File

@ -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