passpartu 0.2.2 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +8 -2
- data/lib/passpartu/verify.rb +30 -2
- data/lib/passpartu/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fe52a8ddad07ca66f848d9900545eb6fcab85ef4271079f9e8d46dcf941aa2a9
|
4
|
+
data.tar.gz: 593cbcfa174a0fe53589cb4fe483de281d9a3559dd10da778c40953761c97741
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fb0ee1f3bc94d4d01c82d9cb8672d825adf38ae81e6e28c6df424ed6df1a240a81b0b2d62d241fc06680d1f462e84dbd5dd1ec87e1225cb2a6e0f6327c32fbdf
|
7
|
+
data.tar.gz: ed43ff273b41553969511af597d83f18705ea64122564d5fcc59eb4ad098735feec4a6db0c92d88f5d343769f133419bae196b6fb40723e618616c8b08a7f000
|
data/README.md
CHANGED
@@ -47,7 +47,10 @@ admin:
|
|
47
47
|
product:
|
48
48
|
create: false
|
49
49
|
edit: true
|
50
|
-
delete: true
|
50
|
+
delete: true
|
51
|
+
items:
|
52
|
+
crud: true
|
53
|
+
delete: false
|
51
54
|
manager:
|
52
55
|
order:
|
53
56
|
create: true
|
@@ -59,7 +62,10 @@ manager:
|
|
59
62
|
delete: false
|
60
63
|
|
61
64
|
```
|
62
|
-
|
65
|
+
#### Crud
|
66
|
+
It's possible to use `crud` key to set values for `create`, `read`, `update`, `delete` at once.
|
67
|
+
`create`, `read`, `update`, `delete` has higher priority than `crud`
|
68
|
+
In case `crud: true` and `delete: false` - result `false`
|
63
69
|
|
64
70
|
## Configuration
|
65
71
|
|
data/lib/passpartu/verify.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
module Passpartu
|
2
2
|
class Verify
|
3
|
-
|
3
|
+
CRUD_KEY = 'crud'.freeze
|
4
|
+
|
5
|
+
attr_reader :role, :keys, :result
|
4
6
|
def initialize(role, keys)
|
5
7
|
@role = role
|
6
8
|
@keys = keys.map(&:to_s)
|
@@ -11,7 +13,33 @@ module Passpartu
|
|
11
13
|
end
|
12
14
|
|
13
15
|
def call
|
14
|
-
|
16
|
+
check
|
17
|
+
check_crud if policy_missed?
|
18
|
+
|
19
|
+
validate_result
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def check
|
25
|
+
@result = Passpartu.policy.dig(role.to_s, *keys)
|
26
|
+
end
|
27
|
+
|
28
|
+
def check_crud
|
29
|
+
change_crud_key
|
30
|
+
check
|
31
|
+
end
|
32
|
+
|
33
|
+
def change_crud_key
|
34
|
+
@keys[-1] = CRUD_KEY
|
35
|
+
end
|
36
|
+
|
37
|
+
def policy_missed?
|
38
|
+
@result.nil?
|
39
|
+
end
|
40
|
+
|
41
|
+
def validate_result
|
42
|
+
Passpartu::ValidateResult.call(result)
|
15
43
|
end
|
16
44
|
end
|
17
45
|
end
|
data/lib/passpartu/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: passpartu
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- OrestF
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-03-
|
11
|
+
date: 2019-03-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -89,7 +89,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
89
89
|
version: '0'
|
90
90
|
requirements: []
|
91
91
|
rubyforge_project:
|
92
|
-
rubygems_version: 2.7.
|
92
|
+
rubygems_version: 2.7.3
|
93
93
|
signing_key:
|
94
94
|
specification_version: 4
|
95
95
|
summary: Passpartu makes policies great again
|