diff --git a/lib/noosfero/api/entities.rb b/lib/noosfero/api/entities.rb index b6ea9e9..5e75adf 100644 --- a/lib/noosfero/api/entities.rb +++ b/lib/noosfero/api/entities.rb @@ -113,6 +113,7 @@ module Noosfero expose :id expose :login expose :person, :using => Profile + expose :activated?, as: :activated expose :permissions do |user, options| output = {} user.person.role_assignments.map do |role_assigment| diff --git a/lib/noosfero/api/session.rb b/lib/noosfero/api/session.rb index 9c901f1..06a68ee 100644 --- a/lib/noosfero/api/session.rb +++ b/lib/noosfero/api/session.rb @@ -48,9 +48,8 @@ module Noosfero end user = User.new(attrs) - if user.save - user.activate - user.generate_private_token! + if user.save + user.generate_private_token! if user.activated? present user, :with => Entities::UserLogin else message = user.errors.to_json diff --git a/test/unit/api/session_test.rb b/test/unit/api/session_test.rb index 9a2c2a6..61736ab 100644 --- a/test/unit/api/session_test.rb +++ b/test/unit/api/session_test.rb @@ -21,9 +21,22 @@ class SessionTest < ActiveSupport::TestCase end should 'register a user' do + Environment.default.enable('skip_new_user_email_confirmation') params = {:login => "newuserapi", :password => "newuserapi", :password_confirmation => "newuserapi", :email => "newuserapi@email.com" } post "/api/v1/register?#{params.to_query}" assert_equal 201, last_response.status + json = JSON.parse(last_response.body) + assert json['activated'] + assert json['private_token'].present? + end + + should 'register an inactive user' do + params = {:login => "newuserapi", :password => "newuserapi", :password_confirmation => "newuserapi", :email => "newuserapi@email.com" } + post "/api/v1/register?#{params.to_query}" + assert_equal 201, last_response.status + json = JSON.parse(last_response.body) + assert !json['activated'] + assert json['private_token'].blank? end should 'do not register a user without email' do -- libgit2 0.21.2