|
|
@@ -1,41 +1,43 @@
|
|
1
|
1
|
module AuthenticationHelper
|
|
2
|
2
|
# Create a new Session and set the relevant cookies.
|
|
3
|
|
- def log_in(user, remember, new = true)
|
|
|
3
|
+ def log_in(user, remember, new_session = true)
|
|
4
|
4
|
reset_session
|
|
5
|
5
|
|
|
6
|
6
|
expiry = 6.hours.since
|
|
7
|
7
|
session[:user_id] = user.id
|
|
8
|
8
|
session[:expires] = expiry
|
|
9
|
9
|
|
|
10
|
|
- if new
|
|
11
|
|
- if remember == 1
|
|
12
|
|
- token = Session.new_token
|
|
13
|
|
- expiry = 1.years.since
|
|
14
|
|
- cookies.signed.permanent[:remember_token] = {
|
|
15
|
|
- value: token,
|
|
16
|
|
- httponly: true
|
|
17
|
|
- }
|
|
18
|
|
- cookies.signed.permanent[:user_id] = {
|
|
19
|
|
- value: user.id,
|
|
20
|
|
- httponly: true
|
|
21
|
|
- }
|
|
22
|
|
- else
|
|
23
|
|
- token = nil
|
|
24
|
|
- end
|
|
25
|
|
- s = Session.create!(
|
|
26
|
|
- user: user,
|
|
27
|
|
- ip: request.remote_ip,
|
|
28
|
|
- expires: expiry,
|
|
29
|
|
- remember_digest: token ? Session.digest(token) : nil
|
|
30
|
|
- )
|
|
31
|
|
- if remember
|
|
32
|
|
- cookies.signed.permanent[:session_id] = {
|
|
33
|
|
- value: s.id,
|
|
34
|
|
- httponly: true
|
|
35
|
|
- }
|
|
36
|
|
- else
|
|
37
|
|
- session[:session_id] = s.id
|
|
38
|
|
- end
|
|
|
10
|
+ return unless new_session
|
|
|
11
|
+
|
|
|
12
|
+ if remember == 1
|
|
|
13
|
+ token = Session.new_token
|
|
|
14
|
+ expiry = 1.years.since
|
|
|
15
|
+ cookies.signed.permanent[:remember_token] = {
|
|
|
16
|
+ value: token,
|
|
|
17
|
+ httponly: true
|
|
|
18
|
+ }
|
|
|
19
|
+ cookies.signed.permanent[:user_id] = {
|
|
|
20
|
+ value: user.id,
|
|
|
21
|
+ httponly: true
|
|
|
22
|
+ }
|
|
|
23
|
+ else
|
|
|
24
|
+ token = nil
|
|
|
25
|
+ end
|
|
|
26
|
+
|
|
|
27
|
+ s = Session.create!(
|
|
|
28
|
+ user: user,
|
|
|
29
|
+ ip: request.remote_ip,
|
|
|
30
|
+ expires: expiry,
|
|
|
31
|
+ remember_digest: token ? Session.digest(token) : nil
|
|
|
32
|
+ )
|
|
|
33
|
+
|
|
|
34
|
+ if remember
|
|
|
35
|
+ cookies.signed.permanent[:session_id] = {
|
|
|
36
|
+ value: s.id,
|
|
|
37
|
+ httponly: true
|
|
|
38
|
+ }
|
|
|
39
|
+ else
|
|
|
40
|
+ session[:session_id] = s.id
|
|
39
|
41
|
end
|
|
40
|
42
|
end
|
|
41
|
43
|
|
|
|
@@ -127,9 +129,9 @@ module AuthenticationHelper
|
|
127
|
129
|
end
|
|
128
|
130
|
|
|
129
|
131
|
def require_admin!
|
|
130
|
|
- unless current_person.is_admin?
|
|
131
|
|
- flash_message(:danger, I18n.t('authentication.admin_required'))
|
|
132
|
|
- redirect_to '/dashboard'
|
|
133
|
|
- end
|
|
|
132
|
+ return if current_person.is_admin?
|
|
|
133
|
+
|
|
|
134
|
+ flash_message(:danger, I18n.t('authentication.admin_required'))
|
|
|
135
|
+ redirect_to '/dashboard'
|
|
134
|
136
|
end
|
|
135
|
137
|
end
|