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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/authorization.rb +13 -4
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1a8a0a045b9fdd6b4f30c7c6b376635b2665b2609450226a329a2f4ad93e8747
4
- data.tar.gz: 3f52e3df4e835319ca288750b7cedc85cd83189d4ec91054f1559a9f30ceb1cd
3
+ metadata.gz: 06c108c527980c647df86862a7f4f0499d536cbb2c44c36cf440d835871ee0de
4
+ data.tar.gz: dcf79b3d63c780012dd6dbb8caf22bb56499ad3244823135fac23cfadbb06034
5
5
  SHA512:
6
- metadata.gz: a8a2e6243af66478cf723b9df7662eeeaa8c31bc53b487a90e7ba8b501c4546b55b1fcfec416bb917f7bf05a6fb1291216475fec952590c88ec11515a6cc7125
7
- data.tar.gz: 104a3e02d545745efdfd0ed189725a04caaf2dd1c0c9a2abff44ef0cd8f1c11ad76e02f3886b6fa3f24c970616f24da187da3185794b495c5287d096c45baf03
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.0.0'
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
- @policies[key] ||= Policy.type(policy_klass)
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 &method(:add_policy)
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 = @policies.fetch(policy_key, Policy)
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.0.0
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-10-18 00:00:00.000000000 Z
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