diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2012-10-02 12:05:28 +0000 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2012-10-02 12:05:28 +0000 |
commit | 339555846e2ddc6606bddeb2590a92f5d882e33c (patch) | |
tree | 81bef1f1a9f8dbbb792f8cf19b62042bc3f94eed /lib/api | |
parent | 0187ae4e8689f0fc2fd399b65973792395534853 (diff) | |
parent | bda0a75581d29cd0afb74a8a34ca69e75ab1c352 (diff) | |
download | gitlab-ce-339555846e2ddc6606bddeb2590a92f5d882e33c.tar.gz |
Merge branch 'api_for_user_creation' of dev.gitlabhq.com:gitlabhq
Diffstat (limited to 'lib/api')
-rw-r--r-- | lib/api/helpers.rb | 4 | ||||
-rw-r--r-- | lib/api/users.rb | 26 |
2 files changed, 30 insertions, 0 deletions
diff --git a/lib/api/helpers.rb b/lib/api/helpers.rb index 14390545bd5..da1d2bd02f9 100644 --- a/lib/api/helpers.rb +++ b/lib/api/helpers.rb @@ -22,6 +22,10 @@ module Gitlab unauthorized! unless current_user end + def authenticated_as_admin! + forbidden! unless current_user.is_admin? + end + def authorize! action, subject unless abilities.allowed?(current_user, action, subject) forbidden! diff --git a/lib/api/users.rb b/lib/api/users.rb index 0ca8fb2a1ae..8ce7c300a73 100644 --- a/lib/api/users.rb +++ b/lib/api/users.rb @@ -23,6 +23,30 @@ module Gitlab @user = User.find(params[:id]) present @user, with: Entities::User end + + # Create user. Available only for admin + # + # Parameters: + # email (required) - Email + # name (required) - Name + # password (required) - Password + # password_confirmation (required) - Password confirmation + # skype - Skype ID + # linkedin (required) - Linkedin + # twitter - Twitter account + # projects_limit - Limit projects wich user can create + # Example Request: + # POST /users + post do + authenticated_as_admin! + attrs = attributes_for_keys [:email, :name, :password, :password_confirmation, :skype, :linkedin, :twitter, :projects_limit] + user = User.new attrs + if user.save + present user, with: Entities::User + else + not_found! + end + end end resource :user do @@ -78,6 +102,8 @@ module Gitlab key = current_user.keys.find params[:id] key.delete end + + end end end |