Commit 9c0883cb52cefe2a06c83595231e00d299d4dfb2

Authored by Victor Costa
1 parent 6cbb827e

api: fix user activation

lib/noosfero/api/entities.rb
... ... @@ -113,6 +113,7 @@ module Noosfero
113 113 expose :id
114 114 expose :login
115 115 expose :person, :using => Profile
  116 + expose :activated?, as: :activated
116 117 expose :permissions do |user, options|
117 118 output = {}
118 119 user.person.role_assignments.map do |role_assigment|
... ...
lib/noosfero/api/session.rb
... ... @@ -48,9 +48,8 @@ module Noosfero
48 48 end
49 49  
50 50 user = User.new(attrs)
51   - if user.save
52   - user.activate
53   - user.generate_private_token!
  51 + if user.save
  52 + user.generate_private_token! if user.activated?
54 53 present user, :with => Entities::UserLogin
55 54 else
56 55 message = user.errors.to_json
... ...
test/unit/api/session_test.rb
... ... @@ -21,9 +21,22 @@ class SessionTest < ActiveSupport::TestCase
21 21 end
22 22  
23 23 should 'register a user' do
  24 + Environment.default.enable('skip_new_user_email_confirmation')
24 25 params = {:login => "newuserapi", :password => "newuserapi", :password_confirmation => "newuserapi", :email => "newuserapi@email.com" }
25 26 post "/api/v1/register?#{params.to_query}"
26 27 assert_equal 201, last_response.status
  28 + json = JSON.parse(last_response.body)
  29 + assert json['activated']
  30 + assert json['private_token'].present?
  31 + end
  32 +
  33 + should 'register an inactive user' do
  34 + params = {:login => "newuserapi", :password => "newuserapi", :password_confirmation => "newuserapi", :email => "newuserapi@email.com" }
  35 + post "/api/v1/register?#{params.to_query}"
  36 + assert_equal 201, last_response.status
  37 + json = JSON.parse(last_response.body)
  38 + assert !json['activated']
  39 + assert json['private_token'].blank?
27 40 end
28 41  
29 42 should 'do not register a user without email' do
... ...