diff options
Diffstat (limited to 'lib/api')
-rw-r--r-- | lib/api/internal.rb | 4 | ||||
-rw-r--r-- | lib/api/projects.rb | 7 | ||||
-rw-r--r-- | lib/api/users.rb | 2 |
3 files changed, 6 insertions, 7 deletions
diff --git a/lib/api/internal.rb b/lib/api/internal.rb index affe1be54dd..3e1173bd0a3 100644 --- a/lib/api/internal.rb +++ b/lib/api/internal.rb @@ -25,8 +25,8 @@ module Gitlab return false unless project - if key.is_deploy_key - project == key.project && git_cmd == 'git-upload-pack' + if key.is_a? DeployKey + key.projects.include?(project) && git_cmd == 'git-upload-pack' else user = key.user diff --git a/lib/api/projects.rb b/lib/api/projects.rb index 75157e55730..53fd91dcca8 100644 --- a/lib/api/projects.rb +++ b/lib/api/projects.rb @@ -531,8 +531,8 @@ module Gitlab # POST /projects/:id/keys post ":id/keys" do attrs = attributes_for_keys [:title, :key] - key = user_project.deploy_keys.new attrs - if key.save + key = DeployKey.new attrs + if key.valid? && user_project.deploy_keys << key present key, with: Entities::SSHKey else not_found! @@ -545,9 +545,8 @@ module Gitlab # DELETE /projects/:id/keys/:id delete ":id/keys/:key_id" do key = user_project.deploy_keys.find params[:key_id] - key.delete + key.destroy end - end end end diff --git a/lib/api/users.rb b/lib/api/users.rb index 4198387d403..cda543495a0 100644 --- a/lib/api/users.rb +++ b/lib/api/users.rb @@ -174,7 +174,7 @@ module Gitlab delete "keys/:id" do begin key = current_user.keys.find params[:id] - key.delete + key.destroy rescue end end |