Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-01-31 15:00:50 +0400
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-01-31 15:00:50 +0400
commitfd1b9fdc12f0fac112810851903203bc256b6548 (patch)
treeead4e97e0b6a6cc22f080e33135756d9b0702d9e /lib
parentafdb09de80191d9424c34b7bab3e2f8d5fd1c782 (diff)
parente954438a1d3a45addebf52ab04155459d7d84db0 (diff)
Merge branch 'extend_user_api' of https://github.com/bladealslayer/gitlabhq into bladealslayer-extend_user_api
Conflicts: spec/requests/api/users_spec.rb
Diffstat (limited to 'lib')
-rw-r--r--lib/api/entities.rb2
-rw-r--r--lib/api/users.rb47
2 files changed, 47 insertions, 2 deletions
diff --git a/lib/api/entities.rb b/lib/api/entities.rb
index 3637464676b..da51bc6ecd6 100644
--- a/lib/api/entities.rb
+++ b/lib/api/entities.rb
@@ -2,7 +2,7 @@ module Gitlab
module Entities
class User < Grape::Entity
expose :id, :username, :email, :name, :bio, :skype, :linkedin, :twitter,
- :dark_scheme, :theme_id, :blocked, :created_at
+ :dark_scheme, :theme_id, :blocked, :created_at, :extern_uid, :provider
end
class UserBasic < Grape::Entity
diff --git a/lib/api/users.rb b/lib/api/users.rb
index 140c20f6bd2..7ea90c75e9e 100644
--- a/lib/api/users.rb
+++ b/lib/api/users.rb
@@ -34,11 +34,14 @@ module Gitlab
# linkedin - Linkedin
# twitter - Twitter account
# projects_limit - Number of projects user can create
+ # extern_uid - External authentication provider UID
+ # provider - External provider
+ # bio - Bio
# Example Request:
# POST /users
post do
authenticated_as_admin!
- attrs = attributes_for_keys [:email, :name, :password, :skype, :linkedin, :twitter, :projects_limit, :username]
+ attrs = attributes_for_keys [:email, :name, :password, :skype, :linkedin, :twitter, :projects_limit, :username, :extern_uid, :provider, :bio]
user = User.new attrs, as: :admin
if user.save
present user, with: Entities::User
@@ -46,6 +49,48 @@ module Gitlab
not_found!
end
end
+
+ # Update user. Available only for admin
+ #
+ # Parameters:
+ # email - Email
+ # name - Name
+ # password - Password
+ # skype - Skype ID
+ # linkedin - Linkedin
+ # twitter - Twitter account
+ # projects_limit - Limit projects wich user can create
+ # extern_uid - External authentication provider UID
+ # provider - External provider
+ # bio - Bio
+ # Example Request:
+ # PUT /users/:id
+ put ":id" do
+ authenticated_as_admin!
+ attrs = attributes_for_keys [:email, :name, :password, :skype, :linkedin, :twitter, :projects_limit, :username, :extern_uid, :provider, :bio]
+ user = User.find_by_id(params[:id])
+
+ if user && user.update_attributes(attrs)
+ present user, with: Entities::User
+ else
+ not_found!
+ end
+ end
+
+ # Delete user. Available only for admin
+ #
+ # Example Request:
+ # DELETE /users/:id
+ delete ":id" do
+ authenticated_as_admin!
+ user = User.find_by_id(params[:id])
+
+ if user
+ user.destroy
+ else
+ not_found!
+ end
+ end
end
resource :user do