diff options
Diffstat (limited to 'lib/api/users.rb')
-rw-r--r-- | lib/api/users.rb | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/lib/api/users.rb b/lib/api/users.rb index 00dc2311ffd..54d3aeecb70 100644 --- a/lib/api/users.rb +++ b/lib/api/users.rb @@ -40,13 +40,17 @@ module API # extern_uid - External authentication provider UID # provider - External provider # bio - Bio + # admin - User is admin - true or false (default) + # can_create_group - User can create groups - true or false # Example Request: # POST /users post do authenticated_as_admin! required_attributes! [:email, :password, :name, :username] - attrs = attributes_for_keys [:email, :name, :password, :skype, :linkedin, :twitter, :projects_limit, :username, :extern_uid, :provider, :bio] + attrs = attributes_for_keys [:email, :name, :password, :skype, :linkedin, :twitter, :projects_limit, :username, :extern_uid, :provider, :bio, :can_create_group, :admin] user = User.build_user(attrs, as: :admin) + admin = attrs.delete(:admin) + user.admin = admin unless admin.nil? if user.save present user, with: Entities::User else @@ -67,16 +71,20 @@ module API # extern_uid - External authentication provider UID # provider - External provider # bio - Bio + # admin - User is admin - true or false (default) + # can_create_group - User can create groups - true or false # 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] + attrs = attributes_for_keys [:email, :name, :password, :skype, :linkedin, :twitter, :projects_limit, :username, :extern_uid, :provider, :bio, :can_create_group, :admin] user = User.find(params[:id]) not_found!("User not found") unless user - if user.update_attributes(attrs) + admin = attrs.delete(:admin) + user.admin = admin unless admin.nil? + if user.update_attributes(attrs, as: :admin) present user, with: Entities::User else not_found! |