summaryrefslogtreecommitdiff
path: root/app/services/projects/enable_deploy_key_service.rb
diff options
context:
space:
mode:
authorMark Fletcher <mark@gitlab.com>2017-05-01 13:22:11 +0800
committerMark Fletcher <mark@gitlab.com>2017-05-03 17:37:08 +0800
commitd02e7226c47db88549f54d0fed0e2b33a726908d (patch)
tree1145e47e2eadab18b9c082ab00b4dfad4db25853 /app/services/projects/enable_deploy_key_service.rb
parent03f13af588cf2b578a27717db492c216fcafbf9a (diff)
downloadgitlab-ce-d02e7226c47db88549f54d0fed0e2b33a726908d.tar.gz
Detect already enabled DeployKeys in EnableDeployKeyService
Ensures deploy keys can't be re-added, which causes a validation error
Diffstat (limited to 'app/services/projects/enable_deploy_key_service.rb')
-rw-r--r--app/services/projects/enable_deploy_key_service.rb5
1 files changed, 4 insertions, 1 deletions
diff --git a/app/services/projects/enable_deploy_key_service.rb b/app/services/projects/enable_deploy_key_service.rb
index 3cf4264ce9b..121385afca3 100644
--- a/app/services/projects/enable_deploy_key_service.rb
+++ b/app/services/projects/enable_deploy_key_service.rb
@@ -4,7 +4,10 @@ module Projects
key = accessible_keys.find_by(id: params[:key_id] || params[:id])
return unless key
- project.deploy_keys << key
+ unless project.deploy_keys.include?(key)
+ project.deploy_keys << key
+ end
+
key
end