diff --git a/lib/noosfero/api/session.rb b/lib/noosfero/api/session.rb index acad3f3..c877263 100644 --- a/lib/noosfero/api/session.rb +++ b/lib/noosfero/api/session.rb @@ -45,16 +45,14 @@ module Noosfero # test_captcha will render_api_error! and exit in case of any problem # this return is just to improve the clarity of the execution path return unless test_captcha(remote_ip, params, environment) - user = User.new(attrs) - params[:name].present? ? name = params[:name] : name = attrs[:email] - person = Person.new(name: name, identifier: user.login) - user.person = person - if user.signup + name = params[:name].present? ? params[:name] : attrs[:email] + user = User.new(attrs.merge(:name => name)) + if user.signup! user.generate_private_token! if user.activated? present user, :with => Entities::UserLogin else user.destroy - message = user.errors.as_json.merge(person.errors.as_json).to_json + message = user.errors.as_json.merge(user.person.errors.as_json).to_json render_api_error!(message, 400) end end diff --git a/test/unit/api/session_test.rb b/test/unit/api/session_test.rb index e38a5a6..73496f3 100644 --- a/test/unit/api/session_test.rb +++ b/test/unit/api/session_test.rb @@ -26,8 +26,9 @@ class SessionTest < ActiveSupport::TestCase 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? + assert User['newuserapi'].activated? + assert json['user']['activated'] + assert json['user']['private_token'].present? end should 'register a user with name' do -- libgit2 0.21.2