File tree 3 files changed +15
-9
lines changed
3 files changed +15
-9
lines changed Original file line number Diff line number Diff line change @@ -2,16 +2,16 @@ class ActiveSessionsController < ApplicationController
2
2
before_action :authenticate_user!
3
3
4
4
def destroy
5
- @ active_session = current_user . active_sessions . find ( params [ :id ] )
5
+ active_session = current_user . active_sessions . find ( params [ :id ] )
6
6
7
- @active_session . destroy
8
-
9
- if current_user
10
- redirect_to account_path , notice : "Session deleted."
11
- else
7
+ if active_session == current_active_session
12
8
forget_active_session
9
+ active_session . destroy
13
10
reset_session
14
11
redirect_to root_path , notice : "Signed out."
12
+ else
13
+ active_session . destroy
14
+ redirect_to account_path , notice : "Session deleted."
15
15
end
16
16
end
17
17
Original file line number Diff line number Diff line change @@ -3,6 +3,7 @@ module Authentication
3
3
4
4
included do
5
5
before_action :current_user
6
+ helper_method :current_active_session
6
7
helper_method :current_user
7
8
helper_method :user_signed_in?
8
9
end
@@ -41,10 +42,14 @@ def remember(active_session)
41
42
private
42
43
43
44
def current_user
44
- Current . user = if session [ :current_active_session_id ] . present?
45
- ActiveSession . find_by ( id : session [ :current_active_session_id ] ) &.user
45
+ Current . user ||= current_active_session &.user
46
+ end
47
+
48
+ def current_active_session
49
+ Current . active_session ||= if session [ :current_active_session_id ] . present?
50
+ ActiveSession . find_by ( id : session [ :current_active_session_id ] )
46
51
elsif cookies [ :remember_token ]
47
- ActiveSession . find_by ( remember_token : cookies . encrypted [ :remember_token ] ) &. user
52
+ ActiveSession . find_by ( remember_token : cookies . encrypted [ :remember_token ] )
48
53
end
49
54
end
50
55
Original file line number Diff line number Diff line change 1
1
class Current < ActiveSupport ::CurrentAttributes
2
2
attribute :user
3
+ attribute :active_session
3
4
end
You can’t perform that action at this time.
0 commit comments