snfoil-context 1.2.0 → 1.2.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/README.md +8 -0
- data/lib/snfoil/context/version.rb +1 -1
- data/lib/snfoil/context.rb +3 -9
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3c0a135f165751090edfb064b8af3fe1290c8d4a43826dd1e613e466d0c70632
|
4
|
+
data.tar.gz: c1c7e5e532f45c44b387a7ac783d5d4c861287184e0fab76778d9314d72c325e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '00820f4a6801a17d7979b0c8d4ebd8b55ae8f21112e5816ba1b7df8b77baf91a27b596234993474e9bac85208882b23c0d57b203caa93195aaf53a01f5de7b67'
|
7
|
+
data.tar.gz: 0f60091640051b9e57ab235abb479bb9d02d495ab27aa0186476cf0d856372560e33ec344476548b80790e1e1a8305cfa4749a109f022d50d739511b2e2aed08
|
data/README.md
CHANGED
@@ -309,6 +309,14 @@ end
|
|
309
309
|
#### Why before and after?
|
310
310
|
Simply to make sure the entity is allowed access to the primary target and is allowed to make the requested alterations/interactions.
|
311
311
|
|
312
|
+
#### Did Authorize Run?
|
313
|
+
If there is a valid policy to call SnFoil-Context will update the `:authorize` key in the options.
|
314
|
+
|
315
|
+
Values are:
|
316
|
+
- `false` - The authorize method never ran
|
317
|
+
- `:setup` - The authorize method ran after the setup interval (the first run)
|
318
|
+
- `:before` - The authorize method ran after the before interval (the second run)
|
319
|
+
|
312
320
|
### Intervals
|
313
321
|
There might be a situation where you don't need a before, after, success or failure, and just need a single name pipeline you can hook into. `interval` allows you to create a single action-like segment.
|
314
322
|
|
data/lib/snfoil/context.rb
CHANGED
@@ -74,20 +74,14 @@ module SnFoil
|
|
74
74
|
def define_action_primary(name, method, block) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
|
75
75
|
define_method(name) do |*_args, **options| # rubocop:disable Metrics/MethodLength
|
76
76
|
options[:action] ||= name.to_sym
|
77
|
-
options[:authorized] = false
|
78
77
|
|
79
78
|
options = run_interval(format('setup_%s', name), **options)
|
80
79
|
|
81
|
-
if respond_to?(:authorize)
|
82
|
-
authorize(name, **options)
|
83
|
-
options[:authorized] = :setup
|
84
|
-
end
|
80
|
+
authorize(name, **options) if respond_to?(:authorize) && !options[:skip_first_authorize]
|
85
81
|
|
86
82
|
options = run_interval(format('before_%s', name), **options)
|
87
|
-
|
88
|
-
|
89
|
-
options[:authorized] = :before
|
90
|
-
end
|
83
|
+
|
84
|
+
authorize(name, **options) if respond_to?(:authorize) && !options[:skip_last_authorize]
|
91
85
|
|
92
86
|
options = if run_action_primary(method, block, **options)
|
93
87
|
run_interval(format('after_%s_success', name), **options)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: snfoil-context
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthew Howes
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2023-03-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|