From 524373dba6e746bce012b57f7a0752ae09ebe451 Mon Sep 17 00:00:00 2001 From: Evandro Junior Date: Thu, 6 Aug 2015 15:00:21 -0300 Subject: [PATCH] Needs to be compatible with older versions --- app/models/user.rb | 6 ++++++ lib/noosfero/api/entities.rb | 1 + lib/noosfero/api/session.rb | 11 +++++++---- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/app/models/user.rb b/app/models/user.rb index 0819e57..30f5ecc 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -94,6 +94,12 @@ class User < ActiveRecord::Base end end + def signup + User.transaction do + self.person.save if self.save + end + end + has_one :person, :dependent => :destroy belongs_to :environment diff --git a/lib/noosfero/api/entities.rb b/lib/noosfero/api/entities.rb index 5e75adf..5f8636f 100644 --- a/lib/noosfero/api/entities.rb +++ b/lib/noosfero/api/entities.rb @@ -112,6 +112,7 @@ module Noosfero root 'users', 'user' expose :id expose :login + expose :email expose :person, :using => Profile expose :activated?, as: :activated expose :permissions do |user, options| diff --git a/lib/noosfero/api/session.rb b/lib/noosfero/api/session.rb index 5721ee9..128afd0 100644 --- a/lib/noosfero/api/session.rb +++ b/lib/noosfero/api/session.rb @@ -43,11 +43,14 @@ module Noosfero # this return is just to improve the clarity of the execution path return unless test_captcha(remote_ip, params, environment) user = User.new(attrs) - if user.save - user.generate_private_token! if user.activated? - present user, :with => Entities::UserLogin + person = Person.new(name: params[:name], identifier: user.login) + user.person = person + if user.signup + user.generate_private_token! if user.activated? + present user, :with => Entities::UserLogin else - message = user.errors.to_json + user.destroy + message = user.errors.as_json.merge(person.errors.as_json).to_json render_api_error!(message, 400) end end -- libgit2 0.21.2