effective_logging 1.5.7 → 1.5.8

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
  SHA1:
3
- metadata.gz: dba3d7067bb00cdfd22bf82b4e2d22b5eb93c510
4
- data.tar.gz: d0c1fcd66775d2429ff202a9456c17d704ecb56b
3
+ metadata.gz: ad6d1fb9c0e708830f7ec12173354a1e6692fa0a
4
+ data.tar.gz: 89c073378f6b6f441a2daa78ce034671a6e92db3
5
5
  SHA512:
6
- metadata.gz: 3e3dae72ea8a9be3248c387de264f5dc764e34de170e2b6972b5498eb1cf3ceaff850101bfd30b0c46a7137476f1e475ec15ac93e71bf1f1ee98495bbe599bb7
7
- data.tar.gz: 2f71d15d724c34eb6c34025def23b8e7912d55174bc6e6ecc519c16ea9af3a388f4948b2fbb964b72a56d96be4b210f8af757ffdaf2b9b0b63ea159af88ab841
6
+ metadata.gz: 50d647c3c66443229c8a0aa26a2c58086e5a24d8f662753b2d5567d4ab9315a79bdc4c72d4b0882849611c26057a79f5c02a100083376f2aa2aa735096cc952e
7
+ data.tar.gz: 33a0d6419f26c57ccae3abe1491273c5dfa6680ec26b3be93bd1615630560a94747a2b161110738c3fb4a64ff5933af14b5fbd96ec056fce4adb7b987b3e9f43
@@ -48,7 +48,7 @@ module EffectiveLogging
48
48
 
49
49
  # This has to be run after initialization or User hasn't been loaded yet
50
50
  config.after_initialize do
51
- if EffectiveLogging.user_logins_enabled == true
51
+ if EffectiveLogging.user_logins_enabled || EffectiveLogging.user_logouts_enabled
52
52
  ActiveSupport.on_load :active_record do
53
53
  if defined?(Devise)
54
54
  EffectiveLogging::UserLogger.create_warden_hooks()
@@ -2,51 +2,51 @@ module EffectiveLogging
2
2
  class UserLogger
3
3
  def self.create_warden_hooks
4
4
  Warden::Manager.after_authentication do |user, warden, opts|
5
- return if EffectiveLogging.supressed?
6
-
7
- ::EffectiveLogger.success('user login',
8
- :user => user,
9
- :ip => warden.request.ip.presence,
10
- :referrer => warden.request.referrer,
11
- :user_agent => warden.request.user_agent
12
- )
13
- end
14
-
15
- Warden::Manager.after_set_user do |user, warden, opts|
16
- return if EffectiveLogging.supressed?
17
-
18
- if (opts[:event] == :set_user rescue false) # User has just reset their password and signed in
5
+ if EffectiveLogging.user_logins_enabled && !EffectiveLogging.supressed?
19
6
  ::EffectiveLogger.success('user login',
20
7
  :user => user,
21
8
  :ip => warden.request.ip.presence,
22
9
  :referrer => warden.request.referrer,
23
- :user_agent => warden.request.user_agent,
24
- :notes => 'after password reset'
10
+ :user_agent => warden.request.user_agent
25
11
  )
26
12
  end
27
13
  end
28
14
 
29
- Warden::Manager.before_logout do |user, warden, opts|
30
- return if EffectiveLogging.supressed?
31
-
32
- if user.respond_to?(:timedout?) && user.respond_to?(:timeout_in)
33
- scope = opts[:scope]
34
- last_request_at = (warden.request.session["warden.#{scope}.#{scope}.session"]['last_request_at'] rescue Time.zone.now)
35
-
36
- # As per Devise
37
- if last_request_at.is_a? Integer
38
- last_request_at = Time.at(last_request_at).utc
39
- elsif last_request_at.is_a? String
40
- last_request_at = Time.parse(last_request_at)
15
+ Warden::Manager.after_set_user do |user, warden, opts|
16
+ if EffectiveLogging.user_logins_enabled && !EffectiveLogging.supressed?
17
+ if (opts[:event] == :set_user rescue false) # User has just reset their password and signed in
18
+ ::EffectiveLogger.success('user login',
19
+ :user => user,
20
+ :ip => warden.request.ip.presence,
21
+ :referrer => warden.request.referrer,
22
+ :user_agent => warden.request.user_agent,
23
+ :notes => 'after password reset'
24
+ )
41
25
  end
26
+ end
27
+ end
42
28
 
43
- if user.timedout?(last_request_at) && !warden.request.env['devise.skip_timeout']
44
- ::EffectiveLogger.success('user logout', :user => user, :timedout => true)
45
- else
29
+ Warden::Manager.before_logout do |user, warden, opts|
30
+ if EffectiveLogging.user_logouts_enabled && !EffectiveLogging.supressed?
31
+ if user.respond_to?(:timedout?) && user.respond_to?(:timeout_in)
32
+ scope = opts[:scope]
33
+ last_request_at = (warden.request.session["warden.#{scope}.#{scope}.session"]['last_request_at'] rescue Time.zone.now)
34
+
35
+ # As per Devise
36
+ if last_request_at.is_a? Integer
37
+ last_request_at = Time.at(last_request_at).utc
38
+ elsif last_request_at.is_a? String
39
+ last_request_at = Time.parse(last_request_at)
40
+ end
41
+
42
+ if user.timedout?(last_request_at) && !warden.request.env['devise.skip_timeout']
43
+ ::EffectiveLogger.success('user logout', :user => user, :timedout => true)
44
+ else
45
+ ::EffectiveLogger.success('user logout', :user => user)
46
+ end
47
+ else # User does not respond to timedout
46
48
  ::EffectiveLogger.success('user logout', :user => user)
47
49
  end
48
- else # User does not respond to timedout
49
- ::EffectiveLogger.success('user logout', :user => user)
50
50
  end
51
51
  end
52
52
 
@@ -1,3 +1,3 @@
1
1
  module EffectiveLogging
2
- VERSION = '1.5.7'.freeze
2
+ VERSION = '1.5.8'.freeze
3
3
  end
@@ -14,6 +14,7 @@ module EffectiveLogging
14
14
 
15
15
  mattr_accessor :emails_enabled
16
16
  mattr_accessor :user_logins_enabled
17
+ mattr_accessor :user_logouts_enabled
17
18
 
18
19
  def self.setup
19
20
  yield self
@@ -42,5 +42,6 @@ EffectiveLogging.setup do |config|
42
42
 
43
43
  # Log all successful user login attempts
44
44
  config.user_logins_enabled = true
45
+ config.user_logouts_enabled = false
45
46
 
46
47
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_logging
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.7
4
+ version: 1.5.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect