File tree Expand file tree Collapse file tree 3 files changed +37
-38
lines changed Expand file tree Collapse file tree 3 files changed +37
-38
lines changed Original file line number Diff line number Diff line change @@ -8,7 +8,7 @@ def create
8
8
@user = user_class . find_or_create_from_auth_hash ( auth_hash )
9
9
session [ :user_id ] = @user . id
10
10
session [ :user_uid ] = @user . uid
11
- session [ :user_cache_key ] = ::SessionManager . get ( @user . uid )
11
+ session [ :user_cache_key ] = Kracken ::SessionManager . get ( @user . uid )
12
12
session [ :token_expires_at ] = Time . zone . at ( auth_hash [ :credentials ] [ :expires_at ] )
13
13
14
14
redirect_to return_to_path
@@ -46,9 +46,5 @@ def signout_redirect_query
46
46
current_root . path = ''
47
47
"?redirect_to=#{ CGI . escape ( current_root . to_s ) } "
48
48
end
49
-
50
- def user_session_key ( id )
51
- "rnsession:#{ id } "
52
- end
53
49
end
54
50
end
Original file line number Diff line number Diff line change @@ -71,7 +71,7 @@ def check_token_expiry!
71
71
# delete the cookie
72
72
#
73
73
def handle_user_cache_cookie!
74
- return redirect_to_sign_in unless session_present?
74
+ return unless session_present?
75
75
return if session_and_redis_match?
76
76
77
77
delete_session_data
@@ -113,29 +113,22 @@ def user_signed_in?
113
113
private
114
114
115
115
def session_present?
116
- session [ :user_id ] && session [ :user_cache_key ]
116
+ session [ :user_uid ] && session [ :user_cache_key ]
117
117
end
118
118
119
119
def session_and_redis_match?
120
- ::SessionManager . get ( session [ :user_uid ] ) == session [ :user_cache_key ]
120
+ Kracken ::SessionManager . get ( session [ :user_uid ] ) == session [ :user_cache_key ]
121
121
end
122
122
123
123
def delete_session_data
124
124
# Sign out current user
125
125
session . delete :user_id
126
126
127
- # Clear that user's cache key
127
+ # Clear that user's cache data
128
+ session . delete :user_uid
128
129
session . delete :user_cache_key
129
130
end
130
131
131
- def clear_cache_cookie_and_sign_out
132
- # Delete the cookie to prevent redirect loops
133
- cookies . delete :_radius_user_cache_key
134
-
135
- # Redirect to the account app
136
- redirect_to_sign_in
137
- end
138
-
139
132
def user_class
140
133
Kracken . config . user_class
141
134
end
Original file line number Diff line number Diff line change 1
- class SessionManager
2
- def self . conn
3
- Redis . new ( url : ENV [ "REDIS_SESSION_URL" ] )
4
- end
1
+ # frozen_string_literal: true
5
2
6
- def self . active?
7
- ENV [ "REDIS_SESSION_URL" ] . present?
8
- end
3
+ module Kracken
4
+ module SessionManager
5
+ def self . conn
6
+ @conn ||= if ENV [ "REDIS_SESSION_URL" ] . present?
7
+ Redis . new ( url : ENV [ "REDIS_SESSION_URL" ] )
8
+ else
9
+ NullRedis . new
10
+ end
11
+ end
9
12
10
- def self . get ( user_id )
11
- return unless active?
13
+ def self . get ( user_id )
14
+ conn . get ( user_session_key ( user_id ) )
15
+ end
12
16
13
- conn . get ( user_session_key ( user_id ) )
14
- end
17
+ def self . del ( user_id )
18
+ conn . del ( user_session_key ( user_id ) )
19
+ end
15
20
16
- def self . del ( user_id )
17
- return unless active?
21
+ def self . update ( user_id , value )
22
+ conn . set ( user_session_key ( user_id ) , value )
23
+ end
18
24
19
- conn . del ( user_session_key ( user_id ) )
20
- end
25
+ def self . user_session_key ( user_id )
26
+ "rnsession:#{ user_id } "
27
+ end
21
28
22
- def self . update ( user_id , value )
23
- return unless active?
29
+ class NullRedis
30
+ # rubocop:disable Style/EmptyMethod
31
+ def initialize ( *) ; end
24
32
25
- conn . set ( user_session_key ( user_id ) , value )
26
- end
33
+ def del ( *) ; end
34
+
35
+ def get ( *) ; end
27
36
28
- def self . user_session_key ( user_id )
29
- "rnsession:#{ user_id } "
37
+ def set ( *) ; end
38
+ # rubocop:enable Style/EmptyMethod
39
+ end
30
40
end
31
41
end
You can’t perform that action at this time.
0 commit comments