Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dzaporozhets@gitlab.com>2015-03-17 19:49:38 +0300
committerDmitriy Zaporozhets <dzaporozhets@gitlab.com>2015-03-17 19:49:38 +0300
commitbfc8ded120b5a0dac4a1ee56b5f4b1b714ebf113 (patch)
treed3d9c977b2917de4676812d016d2c2044680d6ab /app
parent9162e34bb078be9f4fb35b7e43f89c926dc3bcd8 (diff)
parent7d2b34bd61df9722ac2461e87ce595228eecef21 (diff)
Merge branch 'last-deploy-key' into 'master'
Delete deploy key when last connection to a project is destroyed. Addresses #1959. See merge request !1710
Diffstat (limited to 'app')
-rw-r--r--app/controllers/projects/deploy_keys_controller.rb4
-rw-r--r--app/models/deploy_keys_project.rb8
2 files changed, 10 insertions, 2 deletions
diff --git a/app/controllers/projects/deploy_keys_controller.rb b/app/controllers/projects/deploy_keys_controller.rb
index b7cc305899c..679a5d76ec0 100644
--- a/app/controllers/projects/deploy_keys_controller.rb
+++ b/app/controllers/projects/deploy_keys_controller.rb
@@ -37,7 +37,7 @@ class Projects::DeployKeysController < Projects::ApplicationController
@key.destroy
respond_to do |format|
- format.html { redirect_to project_deploy_keys_url }
+ format.html { redirect_to namespace_project_deploy_keys_path(@project.namespace, @project) }
format.js { render nothing: true }
end
end
@@ -50,7 +50,7 @@ class Projects::DeployKeysController < Projects::ApplicationController
end
def disable
- @project.deploy_keys_projects.where(deploy_key_id: params[:id]).last.destroy
+ @project.deploy_keys_projects.find_by(deploy_key_id: params[:id]).destroy
redirect_to namespace_project_deploy_keys_path(@project.namespace,
@project)
diff --git a/app/models/deploy_keys_project.rb b/app/models/deploy_keys_project.rb
index f23d8205ddc..7e88903b9af 100644
--- a/app/models/deploy_keys_project.rb
+++ b/app/models/deploy_keys_project.rb
@@ -16,4 +16,12 @@ class DeployKeysProject < ActiveRecord::Base
validates :deploy_key_id, presence: true
validates :deploy_key_id, uniqueness: { scope: [:project_id], message: "already exists in project" }
validates :project_id, presence: true
+
+ after_destroy :destroy_orphaned_deploy_key
+
+ private
+
+ def destroy_orphaned_deploy_key
+ self.deploy_key.destroy if self.deploy_key.deploy_keys_projects.length == 0
+ end
end