snfoil-policy 1.0.1 → 1.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/CODE_GOALS.md +2 -0
- data/Dockerfile +18 -0
- data/Gemfile +11 -0
- data/docker-compose.yaml +11 -0
- data/lib/snfoil/policy/version.rb +1 -1
- data/lib/snfoil/policy.rb +8 -9
- data/snfoil-policy.gemspec +2 -11
- metadata +8 -120
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 40dbc461e93132b42c9e0e2c4c1593bf06c7504a71525b4166b82fd5559c5205
|
4
|
+
data.tar.gz: dda3915c0e0785efa7f95512cc9f30b20091ea1933aad4d7e5a32e588e06d073
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cfdc5bc8308fd310c232bce14a39fcb05f439694da09fa3112c5baf493a56165233956d3f63b22a199e1062356baa57244b542a223da5e7ef2bd91b18c422777
|
7
|
+
data.tar.gz: e68583d741e3e214f30dcbf2a09b51e810fe36824dbc1525c34b725221f7febcafd258f0882234c8e569caa28ed6a0bda83649de1533ad6740e8dd9414cf10f6
|
data/CODE_GOALS.md
ADDED
data/Dockerfile
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
ARG RUBY_VERSION=3.4.3
|
2
|
+
|
3
|
+
FROM ruby:${RUBY_VERSION}-slim
|
4
|
+
|
5
|
+
RUN apt update && \
|
6
|
+
apt install -y --no-install-recommends \
|
7
|
+
build-essential \
|
8
|
+
libyaml-dev \
|
9
|
+
git \
|
10
|
+
curl
|
11
|
+
|
12
|
+
WORKDIR /workspace
|
13
|
+
|
14
|
+
COPY . .
|
15
|
+
|
16
|
+
RUN bundle install
|
17
|
+
|
18
|
+
CMD ["bundle", "exec", "rspec"]
|
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 'bundler-audit', '~> 0.9.0'
|
10
|
+
gem 'debug', '~> 1.10'
|
11
|
+
gem 'fasterer', '~> 0.11.0'
|
12
|
+
gem 'rake', '~> 13.0'
|
13
|
+
gem 'rspec', '~> 3.10'
|
14
|
+
gem 'rubocop', '~> 1.75'
|
15
|
+
gem 'rubocop-performance', '~> 1.25'
|
16
|
+
gem 'rubocop-rspec', '~> 3.6'
|
17
|
+
end
|
data/docker-compose.yaml
ADDED
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
@@ -6,13 +6,13 @@ Gem::Specification.new do |spec|
|
|
6
6
|
spec.name = 'snfoil-policy'
|
7
7
|
spec.version = SnFoil::Policy::VERSION
|
8
8
|
spec.authors = ['Matthew Howes', 'Cliff Campbell']
|
9
|
-
spec.email = ['
|
9
|
+
spec.email = ['matt.howes@limitedeffort.io', 'cliffcampbell@hey.com']
|
10
10
|
|
11
11
|
spec.summary = 'Pundit Style Permissions Builder'
|
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 = '>=
|
15
|
+
spec.required_ruby_version = '>= 3.0'
|
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.33'
|
39
|
-
spec.add_development_dependency 'rubocop-performance', '1.14.3'
|
40
|
-
spec.add_development_dependency 'rubocop-rspec', '2.12.1'
|
41
32
|
end
|
metadata
CHANGED
@@ -1,15 +1,14 @@
|
|
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.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthew Howes
|
8
8
|
- Cliff Campbell
|
9
|
-
autorequire:
|
10
9
|
bindir: exe
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: activesupport
|
@@ -25,131 +24,22 @@ dependencies:
|
|
25
24
|
- - ">="
|
26
25
|
- !ruby/object:Gem::Version
|
27
26
|
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.33'
|
105
|
-
type: :development
|
106
|
-
prerelease: false
|
107
|
-
version_requirements: !ruby/object:Gem::Requirement
|
108
|
-
requirements:
|
109
|
-
- - '='
|
110
|
-
- !ruby/object:Gem::Version
|
111
|
-
version: '1.33'
|
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.14.3
|
119
|
-
type: :development
|
120
|
-
prerelease: false
|
121
|
-
version_requirements: !ruby/object:Gem::Requirement
|
122
|
-
requirements:
|
123
|
-
- - '='
|
124
|
-
- !ruby/object:Gem::Version
|
125
|
-
version: 1.14.3
|
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.12.1
|
133
|
-
type: :development
|
134
|
-
prerelease: false
|
135
|
-
version_requirements: !ruby/object:Gem::Requirement
|
136
|
-
requirements:
|
137
|
-
- - '='
|
138
|
-
- !ruby/object:Gem::Version
|
139
|
-
version: 2.12.1
|
140
27
|
description: A set of helper functions to build permission files inspired by Pundit.
|
141
28
|
email:
|
142
|
-
-
|
29
|
+
- matt.howes@limitedeffort.io
|
143
30
|
- cliffcampbell@hey.com
|
144
31
|
executables: []
|
145
32
|
extensions: []
|
146
33
|
extra_rdoc_files: []
|
147
34
|
files:
|
148
35
|
- CHANGELOG.md
|
36
|
+
- CODE_GOALS.md
|
149
37
|
- CODE_OF_CONDUCT.md
|
38
|
+
- Dockerfile
|
150
39
|
- Gemfile
|
151
40
|
- LICENSE.txt
|
152
41
|
- README.md
|
42
|
+
- docker-compose.yaml
|
153
43
|
- lib/snfoil/policy.rb
|
154
44
|
- lib/snfoil/policy/version.rb
|
155
45
|
- snfoil-policy.gemspec
|
@@ -161,7 +51,6 @@ metadata:
|
|
161
51
|
source_code_uri: https://github.com/limited-effort/snfoil-policy
|
162
52
|
changelog_uri: https://github.com/limited-effort/snfoil-policy/blob/main/CHANGELOG.md
|
163
53
|
rubygems_mfa_required: 'true'
|
164
|
-
post_install_message:
|
165
54
|
rdoc_options: []
|
166
55
|
require_paths:
|
167
56
|
- lib
|
@@ -169,15 +58,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
169
58
|
requirements:
|
170
59
|
- - ">="
|
171
60
|
- !ruby/object:Gem::Version
|
172
|
-
version: '
|
61
|
+
version: '3.0'
|
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.6.7
|
181
69
|
specification_version: 4
|
182
70
|
summary: Pundit Style Permissions Builder
|
183
71
|
test_files: []
|