Commit 4921dc6e489722f12e61591dc6d0fb7805c5b225

Authored by Victor Costa
Committed by Rodrigo Souto
1 parent 5a875c90

api: set session cookie

lib/noosfero/api/api.rb
... ... @@ -10,6 +10,7 @@ module Noosfero
10 10 before { setup_multitenancy }
11 11 before { detect_stuff_by_domain }
12 12 after { end_log }
  13 + after { set_session_cookie }
13 14  
14 15 version 'v1'
15 16 prefix "api"
... ...
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] || headers['Private-Token']).to_s if params
  12 + private_token = (params[PRIVATE_TOKEN_PARAM] || headers['Private-Token'] || cookies['_noosfero_api_session']).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
... ... @@ -146,7 +146,11 @@ module Noosfero
146 146 render_api_error!(messages.join(','), 400)
147 147 end
148 148 protected
149   -
  149 +
  150 + def set_session_cookie
  151 + cookies['_noosfero_api_session'] = { value: @current_user.private_token, httponly: true } if @current_user.present?
  152 + end
  153 +
150 154 def start_log
151 155 logger.info "Started #{request.path} #{request.params.except('password')}"
152 156 end
... ...
lib/noosfero/api/session.rb
... ... @@ -16,6 +16,7 @@ module Noosfero
16 16  
17 17 return unauthorized! unless user
18 18 user.generate_private_token!
  19 + @current_user = user
19 20 present user, :with => Entities::UserLogin
20 21 end
21 22  
... ...