simple_auth 3.1.0 → 3.1.1
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 +6 -0
- data/README.md +8 -0
- data/lib/simple_auth/railtie.rb +7 -0
- data/lib/simple_auth/session.rb +6 -0
- data/lib/simple_auth/version.rb +1 -1
- data/test/unit/session_test.rb +42 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4c6838ee76a4171f9949a217cb1071c3e419ff11b1c0bbf577ea05239ae2abb9
|
4
|
+
data.tar.gz: 84b753d0a73b218d694ec8cbce6159997a44d73c6c44f9b8338fdfbb67c8a734
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8f605bdc0caad8f2c605116a1e9c293dce9ff24fd45ef63abae8084b4cc7959d94a61691df43796fa14fb2e49efcddb519cf9f20ed3172511bc0062d3ed692f2
|
7
|
+
data.tar.gz: b40738c8f921ffd2bbd0a865948f816e6cf5ae125e7810a443d37a5925101bf4d03e3b55f35ca9ade4ce7003cddd1cd3fb576299ff0b8314a337e609d6b740e6
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
# v3.1.1
|
2
|
+
|
3
|
+
- Catch exceptions related to record not found when session tries to load a
|
4
|
+
record from session. You can customize the recognized exceptions by adding the
|
5
|
+
error class to `SimpleAuth::Session.record_not_found_exceptions`.
|
6
|
+
|
1
7
|
# v3.1.0
|
2
8
|
|
3
9
|
- SimpleAuth now uses [GlobalID](https://github.com/rails/globalid) as the
|
data/README.md
CHANGED
@@ -95,6 +95,14 @@ session[:user_id]
|
|
95
95
|
If you need to locate a record using such value, you can do it by calling
|
96
96
|
`GlobalID::Locator.locate(session[:user_id])`
|
97
97
|
|
98
|
+
Finally, only `ActiveRecord::RecordNotFound` errors are trapped by SimpleAuth
|
99
|
+
(when ActiveRecord is available). If you locator raises a different exception,
|
100
|
+
add the error class to the list of known exceptions.
|
101
|
+
|
102
|
+
```ruby
|
103
|
+
SimpleAuth::Session.record_not_found_exceptions << CustomNotFoundRecordError
|
104
|
+
```
|
105
|
+
|
98
106
|
### Logging out users
|
99
107
|
|
100
108
|
Logging out a user is just as simple; all you have to do is calling the regular
|
data/lib/simple_auth/railtie.rb
CHANGED
@@ -5,5 +5,12 @@ module SimpleAuth
|
|
5
5
|
generators do
|
6
6
|
require "simple_auth/generator"
|
7
7
|
end
|
8
|
+
|
9
|
+
config.after_initialize do
|
10
|
+
ActiveSupport.on_load(:active_record) do
|
11
|
+
SimpleAuth::Session.record_not_found_exceptions <<
|
12
|
+
ActiveRecord::RecordNotFound
|
13
|
+
end
|
14
|
+
end
|
8
15
|
end
|
9
16
|
end
|
data/lib/simple_auth/session.rb
CHANGED
@@ -2,6 +2,10 @@
|
|
2
2
|
|
3
3
|
module SimpleAuth
|
4
4
|
class Session
|
5
|
+
def self.record_not_found_exceptions
|
6
|
+
@record_not_found_exceptions ||= []
|
7
|
+
end
|
8
|
+
|
5
9
|
def self.create(**kwargs)
|
6
10
|
new(**kwargs)
|
7
11
|
end
|
@@ -21,6 +25,8 @@ module SimpleAuth
|
|
21
25
|
return unless record_id_from_session
|
22
26
|
|
23
27
|
@record ||= GlobalID::Locator.locate(record_id_from_session)
|
28
|
+
rescue *Session.record_not_found_exceptions
|
29
|
+
nil
|
24
30
|
end
|
25
31
|
|
26
32
|
def record_key
|
data/lib/simple_auth/version.rb
CHANGED
@@ -0,0 +1,42 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "test_helper"
|
4
|
+
|
5
|
+
class SessionTest < Minitest::Test
|
6
|
+
test "returns nil for missing gid" do
|
7
|
+
User.delete_all
|
8
|
+
user = User.create!(password: "test", email: "john@example.com")
|
9
|
+
session_store = {}
|
10
|
+
|
11
|
+
SimpleAuth::Session.create(
|
12
|
+
scope: "user",
|
13
|
+
record: user,
|
14
|
+
session: session_store
|
15
|
+
)
|
16
|
+
|
17
|
+
user.destroy!
|
18
|
+
|
19
|
+
session = SimpleAuth::Session.create(
|
20
|
+
scope: "user",
|
21
|
+
session: session_store
|
22
|
+
)
|
23
|
+
|
24
|
+
assert_nil session.record
|
25
|
+
end
|
26
|
+
|
27
|
+
test "returns nil for missing gid (custom error)" do
|
28
|
+
not_found_error = Class.new(StandardError)
|
29
|
+
SimpleAuth::Session.record_not_found_exceptions << not_found_error
|
30
|
+
|
31
|
+
GlobalID::Locator.use :foo do |gid|
|
32
|
+
raise not_found_error, "record not found: #{gid}"
|
33
|
+
end
|
34
|
+
|
35
|
+
session = SimpleAuth::Session.create(
|
36
|
+
scope: "user",
|
37
|
+
session: {user_id: "gid://foo/User/1234"}
|
38
|
+
)
|
39
|
+
|
40
|
+
assert_nil session.record
|
41
|
+
end
|
42
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple_auth
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.1.
|
4
|
+
version: 3.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nando Vieira
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-02-
|
11
|
+
date: 2020-02-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: globalid
|
@@ -207,6 +207,7 @@ files:
|
|
207
207
|
- test/support/dummy/config/routes.rb
|
208
208
|
- test/support/schema.rb
|
209
209
|
- test/test_helper.rb
|
210
|
+
- test/unit/session_test.rb
|
210
211
|
homepage: http://rubygems.org/gems/simple_auth
|
211
212
|
licenses: []
|
212
213
|
metadata: {}
|
@@ -244,3 +245,4 @@ test_files:
|
|
244
245
|
- test/support/dummy/config/routes.rb
|
245
246
|
- test/support/schema.rb
|
246
247
|
- test/test_helper.rb
|
248
|
+
- test/unit/session_test.rb
|