devise_revocable_session 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: af22c8d4569a16beabb073ea98542ee614189df789da4191ff8fb44a88c8042f
4
- data.tar.gz: 6dd10289f9f3c02ff88835c2811eecd3dd4a5888d17c0a3f0eb8779b2f46e78f
3
+ metadata.gz: ee5913492929d5badf168f97854072a22fdac8459442252b2c9b8071015ceccf
4
+ data.tar.gz: 4be8d1670c04f608c0df09ea858b6fec79fee5968316de66fb66f4192313c68e
5
5
  SHA512:
6
- metadata.gz: a5da7dd6a5c21919d03d3aaae3ad361be523406dc5ac39ae7c71a6419f6f82fc1aa74b643f7d2bd167758ccaf639cdabe0f3e24a2f9c049d7c8fef3d91665a32
7
- data.tar.gz: 5414d33c2edb9dd0650bef17fc46db101a04d93d9b1b8605d857ae6f8dd398d7f7da4d19b3dd1b76d85da77f7988643abd53615360ff958e94bba7a2b723a64d
6
+ metadata.gz: e2e308e26f6b2e1ce82cb2b0aa13d6e4a6094906307b42cee36cafd610b0bc94b1f0cb948c367a572f44d5e0c54c42c87f8e6448db50309950953e720ea44ef0
7
+ data.tar.gz: 5c4f4ce2fc9fe500ffe9d822255c16e3b5767129d27eb03a4cfcda74a4df689804df75782f6d584d32695cde45ba9219925e1fe3087519b4f2d535194fedec18
@@ -34,21 +34,32 @@ module Devise
34
34
  end
35
35
 
36
36
  def deactivate_session!(session_id)
37
- revocable_sessions.where(session_id: session_id).delete_all
37
+ devise_writer_wrapper do
38
+ revocable_sessions.where(session_id: session_id).delete_all
39
+ end
38
40
  end
39
41
 
40
42
  def purge_old_sessions
41
- revocable_sessions.order(last_seen_at: :desc).offset(10).destroy_all
43
+ devise_writer_wrapper do
44
+ revocable_sessions.order(last_seen_at: :desc).offset(10).destroy_all
45
+ end
42
46
  end
43
47
 
44
48
  def mark_last_seen!(device_id)
49
+ devise_writer_wrapper do
50
+ login_record = revocable_sessions.find_by(device_id: device_id)
51
+ #skip second to reduce database hit
52
+ if (Time.now - (login_record.last_seen_at)) >= 60
53
+ login_record.update_column :last_seen_at, Time.now
54
+ end
55
+ end
56
+ end
57
+
58
+ def devise_writer_wrapper
45
59
  role = Rails.application.config.active_record.writing_role || :writing
46
60
  ActiveRecord::Base.connected_to(role: role) do
47
61
  ActiveRecord::Base.connection_handler.while_preventing_writes(false) do
48
- login_record = revocable_sessions.find_by(device_id: device_id)
49
- #skip second to reduce database hit
50
- if (Time.now - (login_record.last_seen_at)) >= 60
51
- login_record.update_column :last_seen_at, Time.now
62
+ yield
52
63
  end
53
64
  end
54
65
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DeviseRevocableSession
4
- VERSION = "0.1.2"
4
+ VERSION = "0.1.3"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: devise_revocable_session
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carl Allen
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-03-10 00:00:00.000000000 Z
11
+ date: 2020-03-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler