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
diff options
context:
space:
mode:
authorDouwe Maan <douwe@gitlab.com>2015-03-17 16:55:43 +0300
committerDouwe Maan <douwe@gitlab.com>2015-03-17 16:55:43 +0300
commit9c7fffb6559facdcf8bbda680795f70d836293bf (patch)
treeec121310208197f6f50b953c999b0880083b45cd /app/models/deploy_keys_project.rb
parent409097bd7e0f5857cf0bc5462bd47484980ec787 (diff)
Delete deploy key when last connection to a project is destroyed.
Diffstat (limited to 'app/models/deploy_keys_project.rb')
-rw-r--r--app/models/deploy_keys_project.rb8
1 files changed, 8 insertions, 0 deletions
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