apiphobic-authorization 1.4.0 → 1.7.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e58d17605d7ccccd2b7c4f269a0a2e9ce436b823eb932239c0c9fc2e3ae52638
4
- data.tar.gz: 6af62fc6a6a279ff1a5d35a93cd47f03ddeb35bd7dc5881a78878d7770d772b3
3
+ metadata.gz: 6545946cd0dd43da1ee7ba9ad6c630c0f621219b50515a11e3e9458ec1c51fd4
4
+ data.tar.gz: 15192e3bde8064f9f5211512438700accbf8dbbb9b332321706c0e5ac3538c54
5
5
  SHA512:
6
- metadata.gz: a685c43659747f19cec61d5638b0eb31f585a9f22994180728853269975d302a13dece220a24b863e832ee353e2014b3cd54c05472ab51438c905554c1f873c3
7
- data.tar.gz: a12292dfd3e72c1f31bbf12510a9635baabc480ebd4e592b4fd94df310115055cad435ede3d371d8e22e40ea396ce6eabab28aa2588178a81690324bf22a83db
6
+ metadata.gz: 90ad4d024ba604d3e8aa408f29526c976ea69a1382986225683bbd13033149125f20755566668230b760a52beb2cce0f0d6e13703d189509cf1ec7e7d9a419a4
7
+ data.tar.gz: d13c43e139feb1958ac9fd62b1cd8941a9a2b52e6c9108b522c04b4a1b6448519b019315396b79028270939645925bf44756b0e7bf528eb454b82918377cdd53
checksums.yaml.gz.sig CHANGED
Binary file
data/LICENSE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2010-2016 The Kompanee, Ltd
1
+ Copyright (c) 2010-2019 The Kompanee, Ltd
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  of this software and associated documentation files (the "Software"), to deal
@@ -7,21 +7,21 @@ class Authorizer
7
7
  :parameters,
8
8
  :resource,
9
9
  :token,
10
- :user
10
+ :audience
11
11
 
12
- # rubocop:disable Metrics/ParameterLists
13
- def initialize(action:, token:, user:, issuer:, parameters:, resource:, **other)
12
+ def initialize(action:, token:, audience:, issuer:, parameters:, resource:, **other) # rubocop:disable Metrics/ParameterLists
14
13
  self.action = action
15
- self.token = token
16
- self.user = user
14
+ self.audience = audience
17
15
  self.parameters = parameters
18
16
  self.resource = resource
17
+ self.token = token
19
18
 
20
19
  other.each do |name, value|
21
20
  public_send("#{name}=", value)
22
21
  end
23
22
  end
24
- # rubocop:enable Metrics/ParameterLists
23
+
24
+ alias user audience
25
25
 
26
26
  def able_to_index?
27
27
  false
@@ -4,7 +4,6 @@ require 'apple_core/refinements/deep_dup'
4
4
  require 'apiphobic/errors/unpermitted_inclusions'
5
5
  require 'apiphobic/errors/unpermitted_sorts'
6
6
 
7
- # rubocop:disable Metrics/ClassLength
8
7
  module Apiphobic
9
8
  module Authorization
10
9
  module Authorizers
@@ -12,9 +11,9 @@ class Parameters
12
11
  using ::AppleCore::Refinements::DeepDup
13
12
 
14
13
  attr_accessor :action,
14
+ :audience,
15
15
  :parameters,
16
- :token,
17
- :user
16
+ :token
18
17
 
19
18
  attr_writer :authorized_attributes,
20
19
  :authorized_filters,
@@ -23,18 +22,18 @@ class Parameters
23
22
  :authorized_sorts,
24
23
  :ignored_attributes
25
24
 
26
- # rubocop:disable Metrics/ParameterLists
27
- def initialize(action:, token:, user:, issuer:, parameters:, **other)
25
+ def initialize(action:, token:, audience:, issuer:, parameters:, **other) # rubocop:disable Metrics/ParameterLists
28
26
  self.action = action
27
+ self.audience = audience
29
28
  self.parameters = parameters.deep_dup
30
29
  self.token = token
31
- self.user = user
32
30
 
33
31
  other.each do |name, value|
34
32
  public_send("#{name}=", value)
35
33
  end
36
34
  end
37
- # rubocop:enable Metrics/ParameterLists
35
+
36
+ alias user audience
38
37
 
39
38
  def authorized_parameters
40
39
  @authorized_parameters || [
@@ -92,8 +91,7 @@ class Parameters
92
91
  @ignored_attributes || []
93
92
  end
94
93
 
95
- # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity
96
- def call
94
+ def call # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
97
95
  sliced_parameters = authorized_parameters.map { |v| v.is_a?(::Hash) ? v[:name] : v }
98
96
 
99
97
  parameters.slice!(*sliced_parameters)
@@ -136,7 +134,6 @@ class Parameters
136
134
 
137
135
  parameters.permit(*authorization)
138
136
  end
139
- # rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity
140
137
 
141
138
  private
142
139
 
@@ -195,10 +192,10 @@ class Parameters
195
192
  def authorize_parameter(name:,
196
193
  value:,
197
194
  authorization_parameters:,
198
- authorization_value: nil,
199
195
  raw_parameters:,
200
- allowed_values: nil,
201
- override: {})
196
+ authorization_value: nil,
197
+ allowed_values: nil,
198
+ override: {})
202
199
 
203
200
  value = override_parameter(name: name,
204
201
  value: value,
@@ -209,7 +206,7 @@ class Parameters
209
206
 
210
207
  if authorization_value
211
208
  authorization_parameters[0][name] = authorization_value
212
- elsif value.class == ::Array
209
+ elsif value.instance_of?(::Array)
213
210
  authorization_parameters[0][name] = []
214
211
  else
215
212
  authorization_parameters << name
@@ -252,21 +249,19 @@ class Parameters
252
249
  parameters[:data][:relationships] = raw_parameter_relationships.delete_if(&key_match)
253
250
  end
254
251
 
255
- # rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
256
- def override_parameter(name:, value:, hash:, override:)
252
+ def override_parameter(name:, value:, hash:, override:) # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
257
253
  override = { with: nil, if_admin: false, if_absent: true, if_blank: true }
258
254
  .merge(override)
259
255
 
260
- return value unless override[:with] &&
261
- (!token.admin? || override[:if_admin]) &&
262
- (hash.has_key?(name) || override[:if_absent]) &&
263
- (!hash.has_key?(name) || !value.nil? || override[:if_blank])
256
+ return value if !override[:with] ||
257
+ (token.admin? && !override[:if_admin]) ||
258
+ (!hash.has_key?(name) && !override[:if_absent]) ||
259
+ (hash.has_key?(name) && value.nil? && !override[:if_blank])
264
260
 
265
261
  hash[name] = override[:with]
266
262
 
267
263
  override[:with]
268
264
  end
269
- # rubocop:enable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
270
265
 
271
266
  def authorized_data_parameter
272
267
  authorization[0][:data][2]
@@ -284,16 +279,14 @@ class Parameters
284
279
  authorization[0][:filter] ||= [{}]
285
280
  end
286
281
 
287
- # rubocop:disable Layout/ExtraSpacing
288
282
  def raw_parameter_attributes
289
283
  @raw_parameter_attributes ||= begin
290
- parameters[:data] ||= {}
291
- parameters[:data][:attributes] ||= {}
284
+ parameters[:data] ||= {}
285
+ parameters[:data][:attributes] ||= {}
292
286
 
293
- parameters[:data][:attributes]
294
- end
287
+ parameters[:data][:attributes]
288
+ end
295
289
  end
296
- # rubocop:enable Layout/ExtraSpacing
297
290
 
298
291
  def raw_parameter_filters
299
292
  @raw_parameter_filters ||= parameters[:filter] ||= {}
@@ -305,11 +298,11 @@ class Parameters
305
298
 
306
299
  def raw_parameter_relationships
307
300
  @raw_parameter_relationships ||= begin
308
- parameters[:data] ||= {}
309
- parameters[:data][:relationships] ||= {}
301
+ parameters[:data] ||= {}
302
+ parameters[:data][:relationships] ||= {}
310
303
 
311
- parameters[:data][:relationships]
312
- end
304
+ parameters[:data][:relationships]
305
+ end
313
306
  end
314
307
 
315
308
  def raw_parameter_sorts
@@ -335,4 +328,3 @@ end
335
328
  end
336
329
  end
337
330
  end
338
- # rubocop:enable Metrics/ClassLength
@@ -9,24 +9,24 @@ class Scope
9
9
  using ::AppleCore::Refinements::String
10
10
 
11
11
  attr_accessor :action,
12
- :token,
13
- :user,
12
+ :audience,
14
13
  :raw_parameters,
15
- :scope_root
14
+ :scope_root,
15
+ :token
16
16
 
17
- # rubocop:disable Metrics/ParameterLists
18
- def initialize(action:, token:, user:, issuer:, parameters:, scope_root:, **other)
17
+ def initialize(action:, token:, audience:, issuer:, parameters:, scope_root:, **other) # rubocop:disable Metrics/ParameterLists
19
18
  self.action = action
20
- self.token = token
21
- self.user = user
19
+ self.audience = audience
22
20
  self.raw_parameters = parameters
23
21
  self.scope_root = scope_root
22
+ self.token = token
24
23
 
25
24
  other.each do |name, value|
26
25
  public_send("#{name}=", value)
27
26
  end
28
27
  end
29
- # rubocop:enable Metrics/ParameterLists
28
+
29
+ alias user audience
30
30
 
31
31
  def user_scope
32
32
  scope_root.public_send("for_#{user_underscored_class_name}", scope_user_id)
@@ -52,10 +52,12 @@ class Scope
52
52
 
53
53
  def user_underscored_class_name
54
54
  @user_underscored_class_name ||= begin
55
- base_user_class_name = user.class.name[/([^:]+)\z/, 1]
55
+ base_user_class_name = user
56
+ .class
57
+ .name[/([^:]+)\z/, 1]
56
58
 
57
- base_user_class_name.underscore.downcase
58
- end
59
+ base_user_class_name.underscore.downcase
60
+ end
59
61
  end
60
62
 
61
63
  def authorized_scope_id(name:, default:)
@@ -32,7 +32,8 @@ module Resource
32
32
  [
33
33
  name_components['root_module'],
34
34
  'Authorizers',
35
- resource_name,
35
+ name_components['submodules'],
36
+ base_resource_name,
36
37
  type,
37
38
  ]
38
39
  .compact
@@ -68,10 +69,10 @@ module Resource
68
69
  .class
69
70
  .authorizer_parameters_class
70
71
  .new(action: action_name,
71
- token: token,
72
- user: authorized_user,
72
+ audience: authorized_audience,
73
73
  issuer: authorized_issuer,
74
- parameters: params)
74
+ parameters: params,
75
+ token: token)
75
76
  .call
76
77
  end
77
78
 
@@ -84,11 +85,11 @@ module Resource
84
85
  .class
85
86
  .authorizer_scope_class
86
87
  .new(action: action_name,
87
- token: token,
88
- user: authorized_user,
88
+ audience: authorized_audience,
89
89
  issuer: authorized_issuer,
90
90
  parameters: authorized_parameters,
91
- scope_root: self.class.authorized_scope_root_class)
91
+ scope_root: self.class.authorized_scope_root_class,
92
+ token: token)
92
93
  .call
93
94
  end
94
95
 
@@ -103,11 +104,16 @@ module Resource
103
104
  .class
104
105
  .authorizer_class
105
106
  .new(action: action_name,
106
- token: token,
107
- user: authorized_user,
107
+ audience: authorized_audience,
108
108
  issuer: authorized_issuer,
109
109
  parameters: authorized_parameters,
110
- resource: authorized_resource&.processed)
110
+ resource: authorized_resource&.processed,
111
+ token: token)
112
+ end
113
+
114
+ def authorized_resource_class
115
+ @authorized_resource_class ||= Object
116
+ .const_get(self.class.singular_resource_class_name)
111
117
  end
112
118
 
113
119
  def authorized_resource
@@ -115,7 +121,7 @@ module Resource
115
121
 
116
122
  @authorized_resource ||= \
117
123
  ::Apiphobic::Resource::Model
118
- .new(resource: Object.const_get(self.class.singular_resource_class_name),
124
+ .new(resource: authorized_resource_class,
119
125
  id: params[:id],
120
126
  parameters: authorized_parameters)
121
127
  end
@@ -129,8 +135,8 @@ module Resource
129
135
  parameters: authorized_parameters)
130
136
  end
131
137
 
132
- def authorized_user
133
- current_user
138
+ def authorized_audience
139
+ current_audience
134
140
  end
135
141
 
136
142
  def authorized_issuer
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Apiphobic
4
4
  module Authorization
5
- VERSION = '1.4.0'
5
+ VERSION = '1.7.0'
6
6
  end
7
7
  end
@@ -19,7 +19,7 @@ class UnpermittedInclusions < RuntimeError
19
19
 
20
20
  def detail
21
21
  'One or more of the inclusions you attempted to pass via the "include" parameter ' \
22
- 'are either not available or not authorized.'
22
+ 'are either not available or not authorized.'
23
23
  end
24
24
 
25
25
  def source
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: apiphobic-authorization
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 1.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - thegranddesign
@@ -10,28 +10,34 @@ bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIDqjCCApKgAwIBAgIBATANBgkqhkiG9w0BAQUFADBNMREwDwYDVQQDDAhydWJ5
14
- Z2VtczEjMCEGCgmSJomT8ixkARkWE2xpdmluZ2hpZ2hvbnRoZWJsb2cxEzARBgoJ
15
- kiaJk/IsZAEZFgNjb20wHhcNMTcwODAyMjI1OTM1WhcNMTgwODAyMjI1OTM1WjBN
16
- MREwDwYDVQQDDAhydWJ5Z2VtczEjMCEGCgmSJomT8ixkARkWE2xpdmluZ2hpZ2hv
17
- bnRoZWJsb2cxEzARBgoJkiaJk/IsZAEZFgNjb20wggEiMA0GCSqGSIb3DQEBAQUA
18
- A4IBDwAwggEKAoIBAQDtLa7+7p49gW15OgOyRZad/F92iZcMdDjZ2kAxZlviXgVe
19
- PCtjfdURobH+YMdt++6eRkE25utIFqHyN51Shxfdc21T3fPQe/ZEoMyiJK4tYzbh
20
- 7VjNJG4ldvKKpS1p7iVz9imnyTxNwb0JaIOsOFCA04T0u6aCQi2acNvAPLviXk0q
21
- xJ/CKjI4QUTZKVrBt8Q1Egrp2yzmEnSNftDuTbBb8m4vDR+w325CwbKCgycHJ1/g
22
- YZ3FO76TzJuRVbsYS/bU5XKHVEpkeFmWBqEXsk4DuUIWLa6WZEJcoZf+YP+1pycG
23
- 7YqSbydpINtEdopD+EEI+g+zNJ4nSI8/eQcQyEjBAgMBAAGjgZQwgZEwCQYDVR0T
24
- BAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFDWuVrg4ve0vLu71kqiGdyBnzJGV
25
- MCsGA1UdEQQkMCKBIHJ1YnlnZW1zQGxpdmluZ2hpZ2hvbnRoZWJsb2cuY29tMCsG
26
- A1UdEgQkMCKBIHJ1YnlnZW1zQGxpdmluZ2hpZ2hvbnRoZWJsb2cuY29tMA0GCSqG
27
- SIb3DQEBBQUAA4IBAQDJIpHjbBPGiaY4wOHcXlltQ+BMmhWQNh+1fZtyajQd+7Ay
28
- fv23mO7Mf25Q38gopQlpaODkfxq54Jt8FvQbr5RYRS4j+JEKb75NgrAtehd8USUd
29
- CiJJGH+yvGNWug9IGZCGX91HIbTsLQ5IUUWQasC5jGP8nxXufUr9xgAJZZenewny
30
- B2qKu8q1A/kj6cw62RCY7yBmUXxlcJBj8g+JKYAFbYYKUdQSzf50k9IiWLWunJM+
31
- Y2GAoHKstmfIVhc4XHOPpmTd2o/C29O9oaRgjrkfQEhF/KvJ/PhoV5hvokzsCyI5
32
- iUeXPfvrGD/itYIBCgk+fnzyQQ4QtE5hTQaWQ3o2
13
+ MIIEyjCCAzKgAwIBAgIBATANBgkqhkiG9w0BAQsFADBVMSIwIAYDVQQDDBlsb2Nh
14
+ bGV1bmtub3duODEwX3J1YnlnZW1zMRowGAYKCZImiZPyLGQBGRYKcHJvdG9ubWFp
15
+ bDETMBEGCgmSJomT8ixkARkWA2NvbTAeFw0yMjA3MDkwNTMxMjJaFw0yMzA3MDkw
16
+ NTMxMjJaMFUxIjAgBgNVBAMMGWxvY2FsZXVua25vd244MTBfcnVieWdlbXMxGjAY
17
+ BgoJkiaJk/IsZAEZFgpwcm90b25tYWlsMRMwEQYKCZImiZPyLGQBGRYDY29tMIIB
18
+ ojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA0otlhSPyU7jLLW1p786Mo/pV
19
+ 5cJ1Ed8D/bJK78PqGFO2h0ZUefupxT5PRMokLYNNGRPopnAAxZ0zVxJ68aOyYCBW
20
+ Wk3/XFcXCrtk/OcFwLTltgeMjyqCBd/zRRx6CCjY4uOfH0E3n1gQ6Fbmewjg83XJ
21
+ nOs7Gu/hzj5+feEQ1Exmg6z1oCM/8BTIBtK+p++HvcDK3AhJ7x3fc6P9WS+22w6j
22
+ 7jpi3p9YtoAjrXIzw3lsobiX+bEt+N+T47e8gOATVgapuZ/QmJzNU6LWepehs4V1
23
+ 8J+FUaIMV7nAMKmpkbYL51uHEiGV+HDx1HUdOsCFx8zD4h49KRT2t6AcumJ5P1Cj
24
+ c7NX2xl85ShHDNNFkozuC2c5cwj6F20EVaVjGwv2OFq0S2tUw9EJXHTN9RpfRUmn
25
+ IHwS9M4gcJO7IzV39a1YL6+9hrabF4+JTSYDehq8oxTdcOPLYyvH54aJWVqCrnLO
26
+ KNa/p6hMmwxTWNS5Vz0uxuEGyE9E0tHbtjIs2XX5AgMBAAGjgaQwgaEwCQYDVR0T
27
+ BAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFAK3RicwO0f6+puFN6lRVMOKMJuu
28
+ MDMGA1UdEQQsMCqBKGxvY2FsZXVua25vd244MTArcnVieWdlbXNAcHJvdG9ubWFp
29
+ bC5jb20wMwYDVR0SBCwwKoEobG9jYWxldW5rbm93bjgxMCtydWJ5Z2Vtc0Bwcm90
30
+ b25tYWlsLmNvbTANBgkqhkiG9w0BAQsFAAOCAYEAQwV6pOp5gm8141pyXeQFI/5E
31
+ rZYO3MvdyZM8O3HMD51LDS8mtMURceaKZM6WTambe2RVX4A++0qUiEnn9K4Fexm/
32
+ SEGaC/Gp+Fg9D1SKfkdq9bgdIhOEUwiGqjczgzNC806AtWZ+awI940oydFYZlpo0
33
+ jMQihPPJEqF1U6JBDMZYV5tX/dJYSGRl9L3s1k2tjoN98q+beNaZQDn21Amml4eK
34
+ KEkMeTTJ2E4GVzR9eKEETLq2LygdUWWZ5NdWOYTxJMdg1GZp3b6X8hJrwfOiizqt
35
+ /ANlIEh11/pOnWa6WPUVpGIMpYdquvmJXnF2LX6zxkKK1hbrebt+vAEAGczgw1Ri
36
+ rkLM6y+BHQdkOTj3VG4MjIU8D4h1Z73Exzxds/VbVKMEz+8JrFjGJ/tYa0PZ8U5p
37
+ 3yXL4G6eW3rdBW/OiLF7GgG2o26d02OMzf4+ubUVS5LQDOcd4vgNPLWzJSBt1YIh
38
+ TgBsED7Me5YdMVXxtTWYsF1VMzaL9hReD3UXGcxe
33
39
  -----END CERTIFICATE-----
34
- date: 2018-07-09 00:00:00.000000000 Z
40
+ date: 2022-07-17 00:00:00.000000000 Z
35
41
  dependencies:
36
42
  - !ruby/object:Gem::Dependency
37
43
  name: apiphobic-resource
@@ -39,14 +45,14 @@ dependencies:
39
45
  requirements:
40
46
  - - "~>"
41
47
  - !ruby/object:Gem::Version
42
- version: '1.0'
48
+ version: '1.2'
43
49
  type: :runtime
44
50
  prerelease: false
45
51
  version_requirements: !ruby/object:Gem::Requirement
46
52
  requirements:
47
53
  - - "~>"
48
54
  - !ruby/object:Gem::Version
49
- version: '1.0'
55
+ version: '1.2'
50
56
  - !ruby/object:Gem::Dependency
51
57
  name: apple_core
52
58
  requirement: !ruby/object:Gem::Requirement
@@ -65,50 +71,44 @@ dependencies:
65
71
  name: erratum
66
72
  requirement: !ruby/object:Gem::Requirement
67
73
  requirements:
68
- - - ">="
69
- - !ruby/object:Gem::Version
70
- version: 3.1.1
71
74
  - - "~>"
72
75
  - !ruby/object:Gem::Version
73
- version: '3.1'
76
+ version: '4.0'
74
77
  type: :runtime
75
78
  prerelease: false
76
79
  version_requirements: !ruby/object:Gem::Requirement
77
80
  requirements:
78
- - - ">="
79
- - !ruby/object:Gem::Version
80
- version: 3.1.1
81
81
  - - "~>"
82
82
  - !ruby/object:Gem::Version
83
- version: '3.1'
83
+ version: '4.0'
84
84
  - !ruby/object:Gem::Dependency
85
85
  name: actionpack
86
86
  requirement: !ruby/object:Gem::Requirement
87
87
  requirements:
88
88
  - - "~>"
89
89
  - !ruby/object:Gem::Version
90
- version: '5.0'
90
+ version: '7.0'
91
91
  type: :development
92
92
  prerelease: false
93
93
  version_requirements: !ruby/object:Gem::Requirement
94
94
  requirements:
95
95
  - - "~>"
96
96
  - !ruby/object:Gem::Version
97
- version: '5.0'
97
+ version: '7.0'
98
98
  - !ruby/object:Gem::Dependency
99
99
  name: rspec
100
100
  requirement: !ruby/object:Gem::Requirement
101
101
  requirements:
102
102
  - - "~>"
103
103
  - !ruby/object:Gem::Version
104
- version: '3.7'
104
+ version: '3.11'
105
105
  type: :development
106
106
  prerelease: false
107
107
  version_requirements: !ruby/object:Gem::Requirement
108
108
  requirements:
109
109
  - - "~>"
110
110
  - !ruby/object:Gem::Version
111
- version: '3.7'
111
+ version: '3.11'
112
112
  - !ruby/object:Gem::Dependency
113
113
  name: rspeckled
114
114
  requirement: !ruby/object:Gem::Requirement
@@ -158,11 +158,18 @@ files:
158
158
  - lib/apiphobic/json_api/relationship.rb
159
159
  - lib/apiphobic/rails/api_controller_compatibility.rb
160
160
  - lib/apiphobic/rails/controller.rb
161
- homepage: ''
161
+ homepage: https://github.com/thekompanee/apiphobic-authorization
162
162
  licenses:
163
163
  - MIT
164
164
  metadata:
165
165
  allowed_push_host: https://rubygems.org
166
+ bug_tracker_uri: https://github.com/thekompanee/apiphobic-authorization/issues
167
+ changelog_uri: https://github.com/thekompanee/apiphobic-authorization/blob/master/CHANGELOG.md
168
+ documentation_uri: https://github.com/thekompanee/apiphobic-authorization/tree/releases/v1.7.0
169
+ homepage_uri: https://github.com/thekompanee/apiphobic-authorization
170
+ source_code_uri: https://github.com/thekompanee/apiphobic-authorization
171
+ wiki_uri: https://github.com/thekompanee/apiphobic-authorization/wiki
172
+ rubygems_mfa_required: 'true'
166
173
  post_install_message:
167
174
  rdoc_options: []
168
175
  require_paths:
@@ -178,8 +185,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
178
185
  - !ruby/object:Gem::Version
179
186
  version: '0'
180
187
  requirements: []
181
- rubyforge_project:
182
- rubygems_version: 2.7.7
188
+ rubygems_version: 3.3.7
183
189
  signing_key:
184
190
  specification_version: 4
185
191
  summary: Authorization for API Requests
metadata.gz.sig CHANGED
@@ -1,2 +1,2 @@
1
- d�s��w� Vd]�7h��3a��<�����硁,Q�,p/@�\���!�|�������Ă�I�"3=���Tc?Ӕ(
2
- �?R6�#?b|H���a�βԤ7�������, :.l<t�:�䚑��iOEpK�t_$�z"���8�Wsj G�'��h���o�`�ػ���gJU���:���F�S�^�^���["���i� 4k��}��l�g?�;BTD�~���dGfSq8����ې�%��Z�ّG�l����@�
1
+ :��#�
2
+ ��;��Kgv#r+Z:�8,Ś%�wTK~x*�m�!@�as��Nz#�"1R��