Commit daf385d8a5dff2f9ed81d8a8842bc03b050c9b08

Authored by Victor Costa
2 parents f76f09c3 a3678363

Merge branch 'api' into staging

Showing 1 changed file with 14 additions and 21 deletions   Show diff stats
lib/noosfero/api/session.rb
... ... @@ -13,7 +13,11 @@ module Noosfero
13 13 # Example Request:
14 14 # POST http://localhost:3000/api/v1/login?login=adminuser&password=admin
15 15 post "/login" do
16   - user ||= User.authenticate(params[:login], params[:password], environment)
  16 + begin
  17 + user ||= User.authenticate(params[:login], params[:password], environment)
  18 + rescue NoosferoExceptions::UserNotActivated => e
  19 + render_api_error!(e.message, 401)
  20 + end
17 21  
18 22 return unauthorized! unless user
19 23 user.generate_private_token!
... ... @@ -42,27 +46,16 @@ module Noosfero
42 46 # this return is just to improve the clarity of the execution path
43 47 return unless test_captcha(remote_ip, params, environment)
44 48 user = User.new(attrs)
45   - if params[:name].present?
46   - #adds user and person
47   - person = Person.new(name: params[:name], identifier: user.login)
48   - user.person = person
49   - if user.signup
50   - user.generate_private_token! if user.activated?
51   - present user, :with => Entities::UserLogin
52   - else
53   - user.destroy
54   - message = user.errors.as_json.merge(person.errors.as_json).to_json
55   - render_api_error!(message, 400)
56   - end
  49 + params[:name].present? ? name = params[:name] : name = attrs[:email]
  50 + person = Person.new(name: name, identifier: user.login)
  51 + user.person = person
  52 + if user.signup
  53 + user.generate_private_token! if user.activated?
  54 + present user, :with => Entities::UserLogin
57 55 else
58   - #adds user only
59   - if user.save
60   - user.generate_private_token! if user.activated?
61   - present user, :with => Entities::UserLogin
62   - else
63   - message = user.errors.to_json
64   - render_api_error!(message, 400)
65   - end
  56 + user.destroy
  57 + message = user.errors.as_json.merge(person.errors.as_json).to_json
  58 + render_api_error!(message, 400)
66 59 end
67 60 end
68 61  
... ...