devise_last_seen 0.2.2 → 0.3.0
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 +4 -4
- data/CHANGELOG.md +4 -0
- data/README.md +14 -1
- data/lib/devise_last_seen/controller.rb +27 -0
- data/lib/devise_last_seen/version.rb +1 -1
- data/lib/devise_last_seen.rb +1 -0
- metadata +6 -91
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2f2de27fe8d910c423d8b394a2b75c2839fe654ad6372631a6827c4a4aa28ce3
|
|
4
|
+
data.tar.gz: 9c75f9caf6338458dacedd23906d8abdd2b76fec50a44036bb318ad163d01b4d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5caeae6309231f5785159914f217a53e56c0985d16c823ae35496ab46cf5902780ecfa1141becfd6cd24f6c699d4ac6b9d079974c265fffd6f97f3f3225be352
|
|
7
|
+
data.tar.gz: 51015ba338719b6c8b0a7b2ead1eedd674ffc271678f600d46864b2aa330b79b351f5609f3a8c8b289eb1bac8adb5425f8c61840b889aed373262229ac02e8fa
|
data/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.3.0] - 2025-11-11
|
|
10
|
+
### Added
|
|
11
|
+
- Add a new way to trigger the callback, useful when Warden's callbacks are not available [#16](https://github.com/brunoocasali/devise_last_seen/pull/16)
|
|
12
|
+
|
|
9
13
|
## [0.2.2] - 2021-10-01
|
|
10
14
|
### Fixed
|
|
11
15
|
- Fix usage of non-default attribute names in devise last seen configuration [#10](https://github.com/brunoocasali/devise_last_seen/pull/10).
|
data/README.md
CHANGED
|
@@ -7,9 +7,11 @@ With this kind of feature you could show in your views something like **last see
|
|
|
7
7
|
[](https://codeclimate.com/github/brunoocasali/devise_last_seen/test_coverage)
|
|
8
8
|
[](https://codeclimate.com/github/brunoocasali/devise_last_seen/maintainability)
|
|
9
9
|
|
|
10
|
+
:warning: We support officially Rails >= 7.0 and Ruby > 3.4. But the minimum required Ruby version is 2.1 (from gemspec), so this gem probably works in older Rails v5.
|
|
11
|
+
|
|
10
12
|
## Installation
|
|
11
13
|
|
|
12
|
-
You know, add this line to your application's Gemfile:
|
|
14
|
+
You know the drill, add this line to your application's Gemfile:
|
|
13
15
|
|
|
14
16
|
```ruby
|
|
15
17
|
gem 'devise_last_seen'
|
|
@@ -64,6 +66,17 @@ Devise.setup do |config|
|
|
|
64
66
|
end
|
|
65
67
|
```
|
|
66
68
|
|
|
69
|
+
:warning: for JWT users or folks that does not rely on Devise/Warden's storage. You must manually include the concern
|
|
70
|
+
to your controller like this.
|
|
71
|
+
|
|
72
|
+
```rb
|
|
73
|
+
class MyApplicationController < ApplicationController
|
|
74
|
+
# This will add `after_action :track_last_seen` to ensure all of your authenticated models with the lastseenable will
|
|
75
|
+
# be touched.
|
|
76
|
+
include DeviseLastSeen::Controllers
|
|
77
|
+
end
|
|
78
|
+
```
|
|
79
|
+
|
|
67
80
|
## Development
|
|
68
81
|
|
|
69
82
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `bundle exec rspec` to run the tests.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module DeviseLastSeen
|
|
4
|
+
module Controllers
|
|
5
|
+
extend ActiveSupport::Concern
|
|
6
|
+
|
|
7
|
+
included do
|
|
8
|
+
after_action :track_last_seen
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# Track the last seen of the current user for each devise scope that is authenticated and that defines the
|
|
12
|
+
# devise module :lastseenable
|
|
13
|
+
#
|
|
14
|
+
# @return [void]
|
|
15
|
+
def track_last_seen
|
|
16
|
+
Devise.mappings.each do |scope, mapping|
|
|
17
|
+
next unless mapping.modules.include?(:lastseenable)
|
|
18
|
+
|
|
19
|
+
record = public_send("current_#{scope}")
|
|
20
|
+
|
|
21
|
+
record.track_last_seen! if record.respond_to?(:track_last_seen!)
|
|
22
|
+
rescue StandardError => e
|
|
23
|
+
Rails.logger.error("[devise_last_seen] Error tracking last seen for #{scope}: #{e.message}")
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
data/lib/devise_last_seen.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: devise_last_seen
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Bruno Casali
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: devise
|
|
@@ -24,90 +23,6 @@ dependencies:
|
|
|
24
23
|
- - ">="
|
|
25
24
|
- !ruby/object:Gem::Version
|
|
26
25
|
version: '0'
|
|
27
|
-
- !ruby/object:Gem::Dependency
|
|
28
|
-
name: bundler
|
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
|
30
|
-
requirements:
|
|
31
|
-
- - "~>"
|
|
32
|
-
- !ruby/object:Gem::Version
|
|
33
|
-
version: '2.1'
|
|
34
|
-
type: :development
|
|
35
|
-
prerelease: false
|
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
-
requirements:
|
|
38
|
-
- - "~>"
|
|
39
|
-
- !ruby/object:Gem::Version
|
|
40
|
-
version: '2.1'
|
|
41
|
-
- !ruby/object:Gem::Dependency
|
|
42
|
-
name: rake
|
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
|
44
|
-
requirements:
|
|
45
|
-
- - "~>"
|
|
46
|
-
- !ruby/object:Gem::Version
|
|
47
|
-
version: '13'
|
|
48
|
-
type: :development
|
|
49
|
-
prerelease: false
|
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
-
requirements:
|
|
52
|
-
- - "~>"
|
|
53
|
-
- !ruby/object:Gem::Version
|
|
54
|
-
version: '13'
|
|
55
|
-
- !ruby/object:Gem::Dependency
|
|
56
|
-
name: rspec
|
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
|
58
|
-
requirements:
|
|
59
|
-
- - "~>"
|
|
60
|
-
- !ruby/object:Gem::Version
|
|
61
|
-
version: '3.10'
|
|
62
|
-
type: :development
|
|
63
|
-
prerelease: false
|
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
-
requirements:
|
|
66
|
-
- - "~>"
|
|
67
|
-
- !ruby/object:Gem::Version
|
|
68
|
-
version: '3.10'
|
|
69
|
-
- !ruby/object:Gem::Dependency
|
|
70
|
-
name: rubocop
|
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
|
72
|
-
requirements:
|
|
73
|
-
- - ">="
|
|
74
|
-
- !ruby/object:Gem::Version
|
|
75
|
-
version: '0'
|
|
76
|
-
type: :development
|
|
77
|
-
prerelease: false
|
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
-
requirements:
|
|
80
|
-
- - ">="
|
|
81
|
-
- !ruby/object:Gem::Version
|
|
82
|
-
version: '0'
|
|
83
|
-
- !ruby/object:Gem::Dependency
|
|
84
|
-
name: rubocop-rake
|
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
|
86
|
-
requirements:
|
|
87
|
-
- - ">="
|
|
88
|
-
- !ruby/object:Gem::Version
|
|
89
|
-
version: '0'
|
|
90
|
-
type: :development
|
|
91
|
-
prerelease: false
|
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
-
requirements:
|
|
94
|
-
- - ">="
|
|
95
|
-
- !ruby/object:Gem::Version
|
|
96
|
-
version: '0'
|
|
97
|
-
- !ruby/object:Gem::Dependency
|
|
98
|
-
name: rubocop-rspec
|
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
|
100
|
-
requirements:
|
|
101
|
-
- - ">="
|
|
102
|
-
- !ruby/object:Gem::Version
|
|
103
|
-
version: '0'
|
|
104
|
-
type: :development
|
|
105
|
-
prerelease: false
|
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
107
|
-
requirements:
|
|
108
|
-
- - ">="
|
|
109
|
-
- !ruby/object:Gem::Version
|
|
110
|
-
version: '0'
|
|
111
26
|
description: Ensure that devise will update a flag/timestamp on the model whenever
|
|
112
27
|
a user is authenticated.
|
|
113
28
|
email:
|
|
@@ -120,14 +35,15 @@ files:
|
|
|
120
35
|
- LICENSE.txt
|
|
121
36
|
- README.md
|
|
122
37
|
- lib/devise_last_seen.rb
|
|
38
|
+
- lib/devise_last_seen/controller.rb
|
|
123
39
|
- lib/devise_last_seen/hook.rb
|
|
124
40
|
- lib/devise_last_seen/model.rb
|
|
125
41
|
- lib/devise_last_seen/version.rb
|
|
126
42
|
homepage: https://github.com/brunoocasali/devise_last_seen
|
|
127
43
|
licenses:
|
|
128
44
|
- MIT
|
|
129
|
-
metadata:
|
|
130
|
-
|
|
45
|
+
metadata:
|
|
46
|
+
rubygems_mfa_required: 'true'
|
|
131
47
|
rdoc_options: []
|
|
132
48
|
require_paths:
|
|
133
49
|
- lib
|
|
@@ -142,8 +58,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
142
58
|
- !ruby/object:Gem::Version
|
|
143
59
|
version: '0'
|
|
144
60
|
requirements: []
|
|
145
|
-
rubygems_version: 3.
|
|
146
|
-
signing_key:
|
|
61
|
+
rubygems_version: 3.6.9
|
|
147
62
|
specification_version: 4
|
|
148
63
|
summary: Ensure that devise will update a flag/timestamp on the model whenever a user
|
|
149
64
|
is authenticated.
|