#1585 Api for user creation: base implementation
This commit is contained in:
parent
0187ae4e86
commit
825081174a
|
@ -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!
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue