diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2013-03-06 22:57:24 -0800 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2013-03-06 22:57:24 -0800 |
commit | 7c408960ce9cf8a20941c99fd64aa5b1f472f9a0 (patch) | |
tree | 7e81d11387865cd41279c6ba2672c019e1550052 /lib | |
parent | 52bf5b0e78edeb1acc8254b00ba164d48a88f39e (diff) | |
parent | 47abdc10ca7daceac8206a65166b42409a76b459 (diff) | |
download | gitlab-ce-7c408960ce9cf8a20941c99fd64aa5b1f472f9a0.tar.gz |
Merge pull request #3146 from amacarthur/AdminAPIs
Additional Admin APIs
Diffstat (limited to 'lib')
-rw-r--r-- | lib/api/groups.rb | 18 | ||||
-rw-r--r-- | lib/api/projects.rb | 32 | ||||
-rw-r--r-- | lib/api/users.rb | 20 |
3 files changed, 70 insertions, 0 deletions
diff --git a/lib/api/groups.rb b/lib/api/groups.rb index a67caef0bc5..464a2d15662 100644 --- a/lib/api/groups.rb +++ b/lib/api/groups.rb @@ -51,6 +51,24 @@ module Gitlab not_found! end end + + # Transfer a project to the Group namespace + # + # Parameters: + # id - group id + # project_id - project id + # Example Request: + # POST /groups/:id/projects/:project_id + post ":id/projects/:project_id" do + authenticated_as_admin! + @group = Group.find(params[:id]) + project = Project.find(params[:project_id]) + if project.transfer(@group) + present @group + else + not_found! + end + end end end end diff --git a/lib/api/projects.rb b/lib/api/projects.rb index 763f90015dd..00b70728c0e 100644 --- a/lib/api/projects.rb +++ b/lib/api/projects.rb @@ -52,6 +52,38 @@ module Gitlab end end + # Create new project for a specified user. Only available to admin users. + # + # Parameters: + # user_id (required) - The ID of a user + # name (required) - name for new project + # description (optional) - short project description + # default_branch (optional) - 'master' by default + # issues_enabled (optional) - enabled by default + # wall_enabled (optional) - enabled by default + # merge_requests_enabled (optional) - enabled by default + # wiki_enabled (optional) - enabled by default + # Example Request + # POST /projects/user/:user_id + post "user/:user_id" do + authenticated_as_admin! + user = User.find(params[:user_id]) + attrs = attributes_for_keys [:name, + :description, + :default_branch, + :issues_enabled, + :wall_enabled, + :merge_requests_enabled, + :wiki_enabled] + @project = ::Projects::CreateContext.new(user, attrs).execute + if @project.saved? + present @project, with: Entities::Project + else + not_found! + end + end + + # Get a project team members # # Parameters: diff --git a/lib/api/users.rb b/lib/api/users.rb index 7ea90c75e9e..7399d1a5034 100644 --- a/lib/api/users.rb +++ b/lib/api/users.rb @@ -77,6 +77,26 @@ module Gitlab end end + # Add ssh key to a specified user. Only available to admin users. + # + # Parameters: + # id (required) - The ID of a user + # key (required) - New SSH Key + # title (required) - New SSH Key's title + # Example Request: + # POST /users/:id/keys + post ":id/keys" do + authenticated_as_admin! + user = User.find(params[:id]) + attrs = attributes_for_keys [:title, :key] + key = user.keys.new attrs + if key.save + present key, with: Entities::SSHKey + else + not_found! + end + end + # Delete user. Available only for admin # # Example Request: |