koinz 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
@@ -6,8 +6,15 @@ module Koinz
6
6
  # handles auth_token and two-legged token too
7
7
  def login_required
8
8
  if !current_user
9
- session[:user_id] = nil
10
- redirect_to login_required_path
9
+ respond_to do |format|
10
+ format.html {
11
+ session[:user_id] = nil
12
+ redirect_to login_required_path
13
+ }
14
+ format.json {
15
+ render :json => { 'error' => 'Access Denied' }.to_json
16
+ }
17
+ end
11
18
  end
12
19
  end
13
20
 
@@ -54,16 +61,38 @@ module Koinz
54
61
 
55
62
  def authenticate_token
56
63
  if params[:access_token]
57
- result = Koinz::OAuth2Client::UserManager.call(params[:access_token], '/auth/koinz/user')
64
+ result = Koinz::OAuth2Client::UserManager.call(params[:access_token], '/isalive.json')
58
65
  return if result.is_a?(Hash) and result[:error]
59
- session[:user_id] = result
66
+
67
+ # All is well
68
+ session[:last_access] = Time.now.utc
60
69
  end
61
70
  end
62
71
 
72
+ def timedout?
73
+ return true if not session[:last_access]
74
+ (session[:last_access] - DEVISE_TIMEOUT.ago) < 1.minute #grace period
75
+ end
76
+
63
77
  def current_user
64
- authenticate_token unless @current_user
78
+ authenticate_token if !@current_user or timedout?
79
+
65
80
  # if not session, bail out
66
81
  return nil unless session[:user_id]
82
+
83
+ if timedout?
84
+ # get/set session from User Manager
85
+ result = Koinz::OAuth2Client::UserManager.call(get_session_access_token, '/isalive.json')
86
+ # session has indeed timed out even from user manager - cleanup!
87
+ if result.is_a?(Hash) and result[:error]
88
+ session[:user_id] = nil
89
+ return nil
90
+ end
91
+
92
+ # All is well
93
+ session[:last_access] = Time.now.utc
94
+ end
95
+
67
96
  @current_user ||= get_koinz_user(session[:user_id]['uid'])
68
97
  end
69
98
  end
@@ -1,3 +1,3 @@
1
1
  module Koinz
2
- VERSION = "0.0.7"
2
+ VERSION = "0.0.8"
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: koinz
3
3
  version: !ruby/object:Gem::Version
4
- hash: 17
4
+ hash: 15
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 7
10
- version: 0.0.7
9
+ - 8
10
+ version: 0.0.8
11
11
  platform: ruby
12
12
  authors:
13
13
  - Gautam Rege
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-01-18 00:00:00 +05:30
18
+ date: 2011-01-25 00:00:00 +05:30
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency