summaryrefslogtreecommitdiff
path: root/lib/api
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2012-10-02 12:05:28 +0000
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2012-10-02 12:05:28 +0000
commit339555846e2ddc6606bddeb2590a92f5d882e33c (patch)
tree81bef1f1a9f8dbbb792f8cf19b62042bc3f94eed /lib/api
parent0187ae4e8689f0fc2fd399b65973792395534853 (diff)
parentbda0a75581d29cd0afb74a8a34ca69e75ab1c352 (diff)
downloadgitlab-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.rb4
-rw-r--r--lib/api/users.rb26
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