snfoil-policy 1.0.0 → 1.1.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/CODE_GOALS.md +2 -0
- data/Gemfile +11 -0
- data/lib/snfoil/policy/version.rb +1 -1
- data/lib/snfoil/policy.rb +8 -9
- data/snfoil-policy.gemspec +1 -10
- metadata +8 -119
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b3899818db44a4cf74b5e3d1e46c5006cb1464fc1e9328df96611416f8018206
|
4
|
+
data.tar.gz: 41a79abc893070478fb79beef63d297c2220daf506a253f15e0a68fb7cf17af5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f5df37cb8eab29844d872b900633322997e5cc38ddf1b08f6bb7b03e63870c7016107525729308f5baf941df8800d18eb2b8b43ab786222621cb552596f88ebc
|
7
|
+
data.tar.gz: 5fa5dab455a1e975851d316c00b08fd95079abd3abac3bc2bd246fffa0f40a788afa508b132cf4407612a81b30304a5afa95170d7d8899c14dceaa68b3ea0490
|
data/CODE_GOALS.md
ADDED
data/Gemfile
CHANGED
@@ -4,3 +4,14 @@ source 'https://rubygems.org'
|
|
4
4
|
|
5
5
|
# Specify your gem's dependencies in snfoil-policy.gemspec
|
6
6
|
gemspec
|
7
|
+
|
8
|
+
group :development, :test do
|
9
|
+
gem 'bundle-audit', '~> 0.1.0'
|
10
|
+
gem 'fasterer', '~> 0.10.0'
|
11
|
+
gem 'pry-byebug', '~> 3.9', platform: :mri
|
12
|
+
gem 'rake', '~> 13.0'
|
13
|
+
gem 'rspec', '~> 3.10'
|
14
|
+
gem 'rubocop', '1.33'
|
15
|
+
gem 'rubocop-performance', '1.14.3'
|
16
|
+
gem 'rubocop-rspec', '2.12.1'
|
17
|
+
end
|
data/lib/snfoil/policy.rb
CHANGED
@@ -35,11 +35,6 @@ module SnFoil
|
|
35
35
|
def permission(authorization_type, entity_class = nil, with: nil, &block)
|
36
36
|
@snfoil_permissions ||= {}
|
37
37
|
@snfoil_permissions[authorization_type] ||= {}
|
38
|
-
if @snfoil_permissions[authorization_type][entity_class]
|
39
|
-
raise SnFoil::Policy::Error,
|
40
|
-
"permission #{entity_class} #{authorization_type} already defined for #{name}"
|
41
|
-
end
|
42
|
-
|
43
38
|
@snfoil_permissions[authorization_type][entity_class] = build_permission_exec(with, block)
|
44
39
|
define_permission_method(authorization_type)
|
45
40
|
end
|
@@ -47,16 +42,20 @@ module SnFoil
|
|
47
42
|
def inherited(subclass)
|
48
43
|
super
|
49
44
|
|
50
|
-
|
51
|
-
|
45
|
+
permissions = instance_variable_get(:@snfoil_permissions) || {}
|
46
|
+
inherited_permissions = {}
|
47
|
+
permissions.each_key do |action|
|
48
|
+
inherited_permissions[action] = permissions[action].dup
|
52
49
|
end
|
50
|
+
|
51
|
+
subclass.instance_variable_set(:@snfoil_permissions, inherited_permissions)
|
53
52
|
end
|
54
53
|
end
|
55
54
|
|
56
55
|
attr_reader :record, :entity
|
57
56
|
attr_accessor :options
|
58
57
|
|
59
|
-
def initialize(entity, record, options
|
58
|
+
def initialize(entity, record, **options)
|
60
59
|
@record = record
|
61
60
|
@entity = entity
|
62
61
|
@options = options
|
@@ -70,7 +69,7 @@ module SnFoil
|
|
70
69
|
class Scope
|
71
70
|
attr_reader :scope, :entity
|
72
71
|
|
73
|
-
def initialize(
|
72
|
+
def initialize(entity, scope)
|
74
73
|
@entity = entity
|
75
74
|
@scope = scope
|
76
75
|
end
|
data/snfoil-policy.gemspec
CHANGED
@@ -12,7 +12,7 @@ Gem::Specification.new do |spec|
|
|
12
12
|
spec.description = 'A set of helper functions to build permission files inspired by Pundit.'
|
13
13
|
spec.homepage = 'https://github.com/limited-effort/snfoil-policy'
|
14
14
|
spec.license = 'Apache-2.0'
|
15
|
-
spec.required_ruby_version = '>= 2.
|
15
|
+
spec.required_ruby_version = '>= 2.6'
|
16
16
|
|
17
17
|
spec.metadata['homepage_uri'] = spec.homepage
|
18
18
|
spec.metadata['source_code_uri'] = spec.homepage
|
@@ -29,13 +29,4 @@ Gem::Specification.new do |spec|
|
|
29
29
|
spec.require_paths = ['lib']
|
30
30
|
|
31
31
|
spec.add_dependency 'activesupport', '>= 5.2.6'
|
32
|
-
|
33
|
-
spec.add_development_dependency 'bundle-audit', '~> 0.1.0'
|
34
|
-
spec.add_development_dependency 'fasterer', '~> 0.10.0'
|
35
|
-
spec.add_development_dependency 'pry-byebug', '~> 3.9'
|
36
|
-
spec.add_development_dependency 'rake', '~> 13.0'
|
37
|
-
spec.add_development_dependency 'rspec', '~> 3.10'
|
38
|
-
spec.add_development_dependency 'rubocop', '~> 1.29'
|
39
|
-
spec.add_development_dependency 'rubocop-performance', '~> 1.11'
|
40
|
-
spec.add_development_dependency 'rubocop-rspec', '~> 2.5'
|
41
32
|
end
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: snfoil-policy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthew Howes
|
8
8
|
- Cliff Campbell
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2022-05
|
12
|
+
date: 2022-10-05 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -25,118 +25,6 @@ dependencies:
|
|
25
25
|
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: 5.2.6
|
28
|
-
- !ruby/object:Gem::Dependency
|
29
|
-
name: bundle-audit
|
30
|
-
requirement: !ruby/object:Gem::Requirement
|
31
|
-
requirements:
|
32
|
-
- - "~>"
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
-
version: 0.1.0
|
35
|
-
type: :development
|
36
|
-
prerelease: false
|
37
|
-
version_requirements: !ruby/object:Gem::Requirement
|
38
|
-
requirements:
|
39
|
-
- - "~>"
|
40
|
-
- !ruby/object:Gem::Version
|
41
|
-
version: 0.1.0
|
42
|
-
- !ruby/object:Gem::Dependency
|
43
|
-
name: fasterer
|
44
|
-
requirement: !ruby/object:Gem::Requirement
|
45
|
-
requirements:
|
46
|
-
- - "~>"
|
47
|
-
- !ruby/object:Gem::Version
|
48
|
-
version: 0.10.0
|
49
|
-
type: :development
|
50
|
-
prerelease: false
|
51
|
-
version_requirements: !ruby/object:Gem::Requirement
|
52
|
-
requirements:
|
53
|
-
- - "~>"
|
54
|
-
- !ruby/object:Gem::Version
|
55
|
-
version: 0.10.0
|
56
|
-
- !ruby/object:Gem::Dependency
|
57
|
-
name: pry-byebug
|
58
|
-
requirement: !ruby/object:Gem::Requirement
|
59
|
-
requirements:
|
60
|
-
- - "~>"
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
version: '3.9'
|
63
|
-
type: :development
|
64
|
-
prerelease: false
|
65
|
-
version_requirements: !ruby/object:Gem::Requirement
|
66
|
-
requirements:
|
67
|
-
- - "~>"
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: '3.9'
|
70
|
-
- !ruby/object:Gem::Dependency
|
71
|
-
name: rake
|
72
|
-
requirement: !ruby/object:Gem::Requirement
|
73
|
-
requirements:
|
74
|
-
- - "~>"
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
version: '13.0'
|
77
|
-
type: :development
|
78
|
-
prerelease: false
|
79
|
-
version_requirements: !ruby/object:Gem::Requirement
|
80
|
-
requirements:
|
81
|
-
- - "~>"
|
82
|
-
- !ruby/object:Gem::Version
|
83
|
-
version: '13.0'
|
84
|
-
- !ruby/object:Gem::Dependency
|
85
|
-
name: rspec
|
86
|
-
requirement: !ruby/object:Gem::Requirement
|
87
|
-
requirements:
|
88
|
-
- - "~>"
|
89
|
-
- !ruby/object:Gem::Version
|
90
|
-
version: '3.10'
|
91
|
-
type: :development
|
92
|
-
prerelease: false
|
93
|
-
version_requirements: !ruby/object:Gem::Requirement
|
94
|
-
requirements:
|
95
|
-
- - "~>"
|
96
|
-
- !ruby/object:Gem::Version
|
97
|
-
version: '3.10'
|
98
|
-
- !ruby/object:Gem::Dependency
|
99
|
-
name: rubocop
|
100
|
-
requirement: !ruby/object:Gem::Requirement
|
101
|
-
requirements:
|
102
|
-
- - "~>"
|
103
|
-
- !ruby/object:Gem::Version
|
104
|
-
version: '1.29'
|
105
|
-
type: :development
|
106
|
-
prerelease: false
|
107
|
-
version_requirements: !ruby/object:Gem::Requirement
|
108
|
-
requirements:
|
109
|
-
- - "~>"
|
110
|
-
- !ruby/object:Gem::Version
|
111
|
-
version: '1.29'
|
112
|
-
- !ruby/object:Gem::Dependency
|
113
|
-
name: rubocop-performance
|
114
|
-
requirement: !ruby/object:Gem::Requirement
|
115
|
-
requirements:
|
116
|
-
- - "~>"
|
117
|
-
- !ruby/object:Gem::Version
|
118
|
-
version: '1.11'
|
119
|
-
type: :development
|
120
|
-
prerelease: false
|
121
|
-
version_requirements: !ruby/object:Gem::Requirement
|
122
|
-
requirements:
|
123
|
-
- - "~>"
|
124
|
-
- !ruby/object:Gem::Version
|
125
|
-
version: '1.11'
|
126
|
-
- !ruby/object:Gem::Dependency
|
127
|
-
name: rubocop-rspec
|
128
|
-
requirement: !ruby/object:Gem::Requirement
|
129
|
-
requirements:
|
130
|
-
- - "~>"
|
131
|
-
- !ruby/object:Gem::Version
|
132
|
-
version: '2.5'
|
133
|
-
type: :development
|
134
|
-
prerelease: false
|
135
|
-
version_requirements: !ruby/object:Gem::Requirement
|
136
|
-
requirements:
|
137
|
-
- - "~>"
|
138
|
-
- !ruby/object:Gem::Version
|
139
|
-
version: '2.5'
|
140
28
|
description: A set of helper functions to build permission files inspired by Pundit.
|
141
29
|
email:
|
142
30
|
- howeszy@gmail.com
|
@@ -146,6 +34,7 @@ extensions: []
|
|
146
34
|
extra_rdoc_files: []
|
147
35
|
files:
|
148
36
|
- CHANGELOG.md
|
37
|
+
- CODE_GOALS.md
|
149
38
|
- CODE_OF_CONDUCT.md
|
150
39
|
- Gemfile
|
151
40
|
- LICENSE.txt
|
@@ -161,7 +50,7 @@ metadata:
|
|
161
50
|
source_code_uri: https://github.com/limited-effort/snfoil-policy
|
162
51
|
changelog_uri: https://github.com/limited-effort/snfoil-policy/blob/main/CHANGELOG.md
|
163
52
|
rubygems_mfa_required: 'true'
|
164
|
-
post_install_message:
|
53
|
+
post_install_message:
|
165
54
|
rdoc_options: []
|
166
55
|
require_paths:
|
167
56
|
- lib
|
@@ -169,15 +58,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
169
58
|
requirements:
|
170
59
|
- - ">="
|
171
60
|
- !ruby/object:Gem::Version
|
172
|
-
version: '2.
|
61
|
+
version: '2.6'
|
173
62
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
174
63
|
requirements:
|
175
64
|
- - ">="
|
176
65
|
- !ruby/object:Gem::Version
|
177
66
|
version: '0'
|
178
67
|
requirements: []
|
179
|
-
rubygems_version: 3.
|
180
|
-
signing_key:
|
68
|
+
rubygems_version: 3.3.7
|
69
|
+
signing_key:
|
181
70
|
specification_version: 4
|
182
71
|
summary: Pundit Style Permissions Builder
|
183
72
|
test_files: []
|