u-authorization 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/authorization.rb +13 -4
- 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: 06c108c527980c647df86862a7f4f0499d536cbb2c44c36cf440d835871ee0de
|
4
|
+
data.tar.gz: dcf79b3d63c780012dd6dbb8caf22bb56499ad3244823135fac23cfadbb06034
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 327d5890be7a1b2efbc51d22ef14f106510989096eb6d7d46f9c17eadc51ba7fd9dac5671b0cd90ebee162009899c988e47cc304bac5e8f905eace61cfef1e51
|
7
|
+
data.tar.gz: 2bd82ecd1054b103b1b0d544941b97c40e21799d90dcb09849f00d0a3f72b5f9cea131b929ba1f8c34b8eb1c6644b59ad3bf677a96a9c0f0049799358af7ef23
|
data/authorization.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Authorization
|
4
|
-
VERSION = '1.
|
4
|
+
VERSION = '1.1.0'
|
5
5
|
|
6
6
|
MapValuesAsDowncasedStrings = -> (values) do
|
7
7
|
Array(values).map { |value| String(value).downcase }
|
@@ -130,7 +130,9 @@ module Authorization
|
|
130
130
|
def add_policy(key, policy_klass)
|
131
131
|
raise ArgumentError, 'key must be a Symbol' unless key.is_a?(Symbol)
|
132
132
|
|
133
|
-
|
133
|
+
default_ref = key == :default && policy_klass.is_a?(Symbol)
|
134
|
+
|
135
|
+
@policies[key] ||= default_ref ? policy_klass : Policy.type(policy_klass)
|
134
136
|
|
135
137
|
self
|
136
138
|
end
|
@@ -140,13 +142,13 @@ module Authorization
|
|
140
142
|
raise ArgumentError, "policies must be a Hash (key => #{Policy.name})"
|
141
143
|
end
|
142
144
|
|
143
|
-
new_policies.each
|
145
|
+
new_policies.each(&method(:add_policy))
|
144
146
|
|
145
147
|
self
|
146
148
|
end
|
147
149
|
|
148
150
|
def to(policy_key, subject: nil)
|
149
|
-
policy_klass =
|
151
|
+
policy_klass = fetch_policy(policy_key)
|
150
152
|
|
151
153
|
return policy_klass.new(user, subject, permissions: permissions) if subject
|
152
154
|
|
@@ -160,5 +162,12 @@ module Authorization
|
|
160
162
|
def policy(key = :default, subject: nil)
|
161
163
|
to(key, subject: subject)
|
162
164
|
end
|
165
|
+
|
166
|
+
private
|
167
|
+
|
168
|
+
def fetch_policy(policy_key)
|
169
|
+
value = @policies.fetch(policy_key, Policy)
|
170
|
+
value.is_a?(Symbol) ? fetch_policy(value) : value
|
171
|
+
end
|
163
172
|
end
|
164
173
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: u-authorization
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rodrigo Serradura
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-11-09 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Simple authorization library and role managment for Ruby.
|
14
14
|
email: rodrigo.serradura@gmail.com
|