Commit c0b230e9f4e9dcca364abac3305a6d5e73d62bae
Committed by
Rodrigo Souto
1 parent
f19bda31
Exists in
master
and in
29 other branches
api: accept private_token in header
Showing
2 changed files
with
15 additions
and
1 deletions
Show diff stats
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 | ... | ... |