Commit c0b230e9f4e9dcca364abac3305a6d5e73d62bae

Authored by Victor Costa
Committed by Rodrigo Souto
1 parent f19bda31

api: accept private_token in header

lib/noosfero/api/helpers.rb
... ... @@ -9,7 +9,7 @@ module Noosfero
9 9 end
10 10  
11 11 def current_user
12   - private_token = params[PRIVATE_TOKEN_PARAM].to_s if params
  12 + private_token = (params[PRIVATE_TOKEN_PARAM] || headers['Private-Token']).to_s if params
13 13 @current_user ||= User.find_by_private_token(private_token)
14 14 @current_user = nil if !@current_user.nil? && @current_user.private_token_expired?
15 15 @current_user
... ...
test/unit/api/helpers_test.rb
... ... @@ -5,6 +5,12 @@ class APITest < ActiveSupport::TestCase
5 5  
6 6 include Noosfero::API::APIHelpers
7 7  
  8 + def setup
  9 + @headers = {}
  10 + end
  11 +
  12 + attr_accessor :headers
  13 +
8 14 should 'get the current user with valid token' do
9 15 user = create_user('someuser')
10 16 user.generate_private_token!
... ... @@ -12,6 +18,13 @@ class APITest < ActiveSupport::TestCase
12 18 assert_equal user, current_user
13 19 end
14 20  
  21 + should 'get the current user with valid token in header' do
  22 + user = create_user('someuser')
  23 + user.generate_private_token!
  24 + headers['Private-Token'] = user.private_token
  25 + assert_equal user, current_user
  26 + end
  27 +
15 28 should 'not get the current user with expired token' do
16 29 user = create_user('someuser')
17 30 user.generate_private_token!
... ... @@ -154,4 +167,5 @@ class APITest < ActiveSupport::TestCase
154 167 def params= value
155 168 @params = value
156 169 end
  170 +
157 171 end
... ...