Commit 825081174aa70b5cbfe5947ebf268f14702b6211

Authored by Valeriy Sizov
1 parent 0187ae4e

#1585 Api for user creation: base implementation

Showing 2 changed files with 30 additions and 0 deletions   Show diff stats
lib/api/helpers.rb
@@ -22,6 +22,10 @@ module Gitlab @@ -22,6 +22,10 @@ module Gitlab
22 unauthorized! unless current_user 22 unauthorized! unless current_user
23 end 23 end
24 24
  25 + def authenticated_as_admin!
  26 + forbidden! unless current_user.is_admin?
  27 + end
  28 +
25 def authorize! action, subject 29 def authorize! action, subject
26 unless abilities.allowed?(current_user, action, subject) 30 unless abilities.allowed?(current_user, action, subject)
27 forbidden! 31 forbidden!
lib/api/users.rb
@@ -23,6 +23,30 @@ module Gitlab @@ -23,6 +23,30 @@ module Gitlab
23 @user = User.find(params[:id]) 23 @user = User.find(params[:id])
24 present @user, with: Entities::User 24 present @user, with: Entities::User
25 end 25 end
  26 +
  27 + # Create user. Available only for admin
  28 + #
  29 + # Parameters:
  30 + # email (required) - Email
  31 + # name (required) - Name
  32 + # password (required) - Password
  33 + # password_confirmation (required) - Password confirmation
  34 + # skype - Skype ID
  35 + # linkedin (required) - Linkedin
  36 + # twitter - Twitter account
  37 + # projects_limit - Limit projects wich user can create
  38 + # Example Request:
  39 + # POST /users
  40 + post do
  41 + authenticated_as_admin!
  42 + attrs = attributes_for_keys [:email, :name, :password, :password_confirmation, :skype, :linkedin, :twitter, :projects_limit]
  43 + user = User.new attrs
  44 + if user.save
  45 + present user, with: Entities::User
  46 + else
  47 + not_found!
  48 + end
  49 + end
26 end 50 end
27 51
28 resource :user do 52 resource :user do
@@ -78,6 +102,8 @@ module Gitlab @@ -78,6 +102,8 @@ module Gitlab
78 key = current_user.keys.find params[:id] 102 key = current_user.keys.find params[:id]
79 key.delete 103 key.delete
80 end 104 end
  105 +
  106 +
81 end 107 end
82 end 108 end
83 end 109 end