Commit 9c0883cb52cefe2a06c83595231e00d299d4dfb2
1 parent
6cbb827e
Exists in
theme-brasil-digital-from-staging
and in
9 other branches
api: fix user activation
Showing
3 changed files
with
16 additions
and
3 deletions
Show diff stats
lib/noosfero/api/entities.rb
| @@ -113,6 +113,7 @@ module Noosfero | @@ -113,6 +113,7 @@ module Noosfero | ||
| 113 | expose :id | 113 | expose :id |
| 114 | expose :login | 114 | expose :login |
| 115 | expose :person, :using => Profile | 115 | expose :person, :using => Profile |
| 116 | + expose :activated?, as: :activated | ||
| 116 | expose :permissions do |user, options| | 117 | expose :permissions do |user, options| |
| 117 | output = {} | 118 | output = {} |
| 118 | user.person.role_assignments.map do |role_assigment| | 119 | user.person.role_assignments.map do |role_assigment| |
lib/noosfero/api/session.rb
| @@ -48,9 +48,8 @@ module Noosfero | @@ -48,9 +48,8 @@ module Noosfero | ||
| 48 | end | 48 | end |
| 49 | 49 | ||
| 50 | user = User.new(attrs) | 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 | present user, :with => Entities::UserLogin | 53 | present user, :with => Entities::UserLogin |
| 55 | else | 54 | else |
| 56 | message = user.errors.to_json | 55 | message = user.errors.to_json |
test/unit/api/session_test.rb
| @@ -21,9 +21,22 @@ class SessionTest < ActiveSupport::TestCase | @@ -21,9 +21,22 @@ class SessionTest < ActiveSupport::TestCase | ||
| 21 | end | 21 | end |
| 22 | 22 | ||
| 23 | should 'register a user' do | 23 | should 'register a user' do |
| 24 | + Environment.default.enable('skip_new_user_email_confirmation') | ||
| 24 | params = {:login => "newuserapi", :password => "newuserapi", :password_confirmation => "newuserapi", :email => "newuserapi@email.com" } | 25 | params = {:login => "newuserapi", :password => "newuserapi", :password_confirmation => "newuserapi", :email => "newuserapi@email.com" } |
| 25 | post "/api/v1/register?#{params.to_query}" | 26 | post "/api/v1/register?#{params.to_query}" |
| 26 | assert_equal 201, last_response.status | 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 | end | 40 | end |
| 28 | 41 | ||
| 29 | should 'do not register a user without email' do | 42 | should 'do not register a user without email' do |