summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDouwe Maan <douwe@selenight.nl>2018-03-28 18:53:52 +0200
committerDouwe Maan <douwe@selenight.nl>2018-03-28 18:53:52 +0200
commit59d910f2a136a52748326977fcefe2ec16c35d09 (patch)
tree7183ec4afac687b6aae7cadf2b614da8a72ba700 /lib
parentf56ef2065710346f9998c87a136abc2fe3cbc454 (diff)
downloadgitlab-ce-59d910f2a136a52748326977fcefe2ec16c35d09.tar.gz
Set user when adding deploy key to project using API
Diffstat (limited to 'lib')
-rw-r--r--lib/api/deploy_keys.rb23
1 files changed, 11 insertions, 12 deletions
diff --git a/lib/api/deploy_keys.rb b/lib/api/deploy_keys.rb
index b0b7b50998f..70d43ac1d79 100644
--- a/lib/api/deploy_keys.rb
+++ b/lib/api/deploy_keys.rb
@@ -54,7 +54,7 @@ module API
present key, with: Entities::DeployKeysProject
end
- desc 'Add new deploy key to currently authenticated user' do
+ desc 'Add new deploy key to a project' do
success Entities::DeployKeysProject
end
params do
@@ -66,33 +66,32 @@ module API
params[:key].strip!
# Check for an existing key joined to this project
- key = user_project.deploy_keys_projects
+ deploy_key_project = user_project.deploy_keys_projects
.joins(:deploy_key)
.find_by(keys: { key: params[:key] })
- if key
- present key, with: Entities::DeployKeysProject
+ if deploy_key_project
+ present deploy_key_project, with: Entities::DeployKeysProject
break
end
# Check for available deploy keys in other projects
key = current_user.accessible_deploy_keys.find_by(key: params[:key])
if key
- added_key = add_deploy_keys_project(user_project, deploy_key: key, can_push: !!params[:can_push])
+ deploy_key_project = add_deploy_keys_project(user_project, deploy_key: key, can_push: !!params[:can_push])
- present added_key, with: Entities::DeployKeysProject
+ present deploy_key_project, with: Entities::DeployKeysProject
break
end
# Create a new deploy key
- key_attributes = { can_push: !!params[:can_push],
- deploy_key_attributes: declared_params.except(:can_push) }
- key = add_deploy_keys_project(user_project, key_attributes)
+ deploy_key_attributes = declared_params.except(:can_push).merge(user: current_user)
+ deploy_key_project = add_deploy_keys_project(user_project, deploy_key_attributes: deploy_key_attributes, can_push: !!params[:can_push])
- if key.valid?
- present key, with: Entities::DeployKeysProject
+ if deploy_key_project.valid?
+ present deploy_key_project, with: Entities::DeployKeysProject
else
- render_validation_error!(key)
+ render_validation_error!(deploy_key_project)
end
end