diff options
author | Timm Friebe <thekid@thekid.de> | 2014-04-15 16:39:46 +0200 |
---|---|---|
committer | Timm Friebe <thekid@thekid.de> | 2014-04-18 14:16:19 +0200 |
commit | 05e792b4c492e04aaa7e301432f71e01d63c02bc (patch) | |
tree | cafed848f51b017459a8bb4a2e5c0f003c3c8fa2 /lib/api | |
parent | cd6232187b707b0a278bd91986ec85dcfe66046f (diff) | |
download | gitlab-ce-05e792b4c492e04aaa7e301432f71e01d63c02bc.tar.gz |
Implement GET /users/:uid/keys for admin users
Complements POST operation added in gitlabhq/gitlabhq#3146
Implement DELETE /users/:uid/keys/:id for admin users
Fix "Line is too long. [83/80]"
Use single quotes as advised
Use single quotes as advised
Use single quotes as advised
Fix missing space around { and }
Fix typo in documentation
Only catch ActiveRecord::RecordNotFound, let other exceptions propagate
Raise a "404 Not found" if key to be deleted cannot be found
As requested by @jvanbaarsen in https://github.com/gitlabhq/gitlabhq/pull/6781#discussion_r11735114
Remove tab
Unconfigured vim on this box, grrrr./
Diffstat (limited to 'lib/api')
-rw-r--r-- | lib/api/users.rb | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/lib/api/users.rb b/lib/api/users.rb index ae808b6272b..6ed2740c333 100644 --- a/lib/api/users.rb +++ b/lib/api/users.rb @@ -113,6 +113,45 @@ module API end end + # Get ssh keys of a specified user. Only available to admin users. + # + # Parameters: + # uid (required) - The ID of a user + # Example Request: + # GET /users/:uid/keys + get ':uid/keys' do + authenticated_as_admin! + user = User.find_by(id: params[:uid]) + if user + present user.keys, with: Entities::SSHKey + else + not_found! + end + end + + # Delete existing ssh key of a specified user. Only available to admin + # users. + # + # Parameters: + # uid (required) - The ID of a user + # id (required) - SSH Key ID + # Example Request: + # DELETE /users/:uid/keys/:id + delete ':uid/keys/:id' do + authenticated_as_admin! + user = User.find_by(id: params[:uid]) + if user + begin + key = user.keys.find params[:id] + key.destroy + rescue ActiveRecord::RecordNotFound + not_found! + end + else + not_found! + end + end + # Delete user. Available only for admin # # Example Request: |