lib/prx_auth/rails/ext/controller.rb in prx_auth-rails-1.2.0 vs lib/prx_auth/rails/ext/controller.rb in prx_auth-rails-1.3.0
- old
+ new
@@ -2,18 +2,43 @@
module PrxAuth
module Rails
module Controller
def prx_auth_token
+ rack_auth_token = env_prx_auth_token
+ return rack_auth_token if rack_auth_token.present?
+
+ session['prx.auth'] && Rack::PrxAuth::TokenData.new(session['prx.auth'])
+ end
+
+ def prx_authenticated?
+ !!prx_auth_token
+ end
+
+ def authenticate!
+ return true if current_user.present?
+
+ redirect_to PrxAuth::Rails::Engine.routes.url_helpers.new_sessions_path
+ end
+
+ def current_user
+ return if prx_auth_token.nil?
+
+ PrxAuth::Rails::Token.new(prx_auth_token)
+ end
+
+ def sign_in_user(token)
+ session['prx.auth'] = token
+ end
+
+ private
+
+ def env_prx_auth_token
if !defined? @_prx_auth_token
@_prx_auth_token = request.env['prx.auth'] && PrxAuth::Rails::Token.new(request.env['prx.auth'])
else
@_prx_auth_token
end
- end
-
- def prx_authenticated?
- !!prx_auth_token
end
end
end
end