oauth-bwergemn 1.0.4 → 1.0.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 28680e1cabddf3a646ce5e9b58ad26b9d6e6e5d5dfbc3b7ed18a625a2b0b13a4
4
- data.tar.gz: f198b7a8da14f14a5f66d3361c3ff31e3bddf6974b1d73bdcec3170022fbe524
3
+ metadata.gz: 9793805f550aa496f8c35c722ac4bf677abf5d2836ba0ba703f266dbcafbe0e6
4
+ data.tar.gz: 06445a109f6e7a99a698103e1b841e17bcbb9671f7eb4a423605d24028ce309f
5
5
  SHA512:
6
- metadata.gz: 9321d12b5598bb230196e8fd73162e1e0a51208108c3610e08b5cedac8ed4719fc0210311e3502226dd29830c06bef9a945a3bb924f49bab58a8c8b161d7c5ea
7
- data.tar.gz: c74d19c90247e8cea7871199ec6f8d7518970e66df2497344f672a1bd267ce4a68d260b89db18b927e440b2df795c95d9560b866dcd447cd9a95e369d4adc313
6
+ metadata.gz: 2dc184cb56e5d2ade4d468b18facf61d3ffb19057e0e1e438e548bef94e78c4b31e926989c00078c575c4a5f06997dba7d1e5c7e075ff79bdd4c2df91efe417d
7
+ data.tar.gz: 3be3b01077ed948ac3d01b6fa53103a7712ba05d9a0c837e4a41119d613896b34eff5c441ca1feb2914950eeff09f466421addf9939da9c3acc9f8a4219c2b45
@@ -21,6 +21,7 @@ module OauthBwergemn
21
21
  extend OauthBwergemn::Configuration
22
22
  define_setting :auth_strategy, 'hub'
23
23
  define_setting :resources, user: 'User'
24
+ define_setting :default_resources, :user
24
25
 
25
26
  def self.config_resources
26
27
  resources
@@ -52,13 +52,34 @@ module OauthBwergemn
52
52
  results
53
53
  end
54
54
 
55
+ def is_args_include_validate?
56
+ if args.keys.include?(:validate) && ![true, false].include?(args[:validate])
57
+ raise OauthBwergemn::Errors::InvalidScope.new("Not valid scope '#{args[:validate]}' in `oauth2 scope`")
58
+ end
59
+ args.keys.include?(:validate)
60
+ end
61
+
62
+ def is_args_include_as?
63
+ args.keys.include?(:as)
64
+ end
65
+
66
+ def token_optional?
67
+ is_args_include_validate? && [true, false].include?(args[:validate]) && args[:validate].eql?(false)
68
+ end
69
+
70
+ def token_required?
71
+ is_args_include_validate? && [true, false].include?(args[:validate]) && args[:validate].eql?(true) || is_args_include_valudate?.blank?
72
+ end
73
+
55
74
  def authorize!
56
75
  access = Doorkeeper::AccessToken.find_by(token: token)
57
76
  unless access.present?
58
77
  raise OauthBwergemn::Errors::InvalidToken
59
78
  end
79
+ resource_as = (is_args_include_as? ? args[:as] : OauthBwergemn.default_resources)
80
+
60
81
  # rubocop:disable Security/Eval
61
- resource = eval(OauthBwergemn.resources[args[:as].to_sym]).find_by(id: access.resource_owner_id) rescue nil
82
+ resource = eval(OauthBwergemn.resources[resource_as.to_sym]).find_by(id: access.resource_owner_id) rescue nil
62
83
  # rubocop:enable Security/Eval
63
84
  {
64
85
  resource_owner: resource,
@@ -87,13 +108,18 @@ module OauthBwergemn
87
108
  return unless context.protected_endpoint?
88
109
 
89
110
  self.the_request = env
90
-
91
- if token.present? && context.protected_endpoint?
111
+ if token_optional? && context.protected_endpoint?
112
+ context.resource_token = token
113
+ context.resource_owner = nil
114
+ context.resource_credentials = nil
115
+ elsif token.present? && token_required? && context.protected_endpoint?
92
116
  response = authorize!
93
117
  context.resource_token = token
94
118
  context.resource_owner = response[:resource_owner] rescue nil
95
119
  context.resource_credentials = response[:resource_credentials] rescue nil
96
- elsif token.nil? && context.protected_endpoint?
120
+ elsif context.resource_owner.nil? && context.protected_endpoint?
121
+ raise OauthBwergemn::Errors::InvalidToken
122
+ else
97
123
  raise OauthBwergemn::Errors::InvalidToken
98
124
  end
99
125
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OauthBwergemn
4
- VERSION = '1.0.4'
4
+ VERSION = '1.0.5'
5
5
  public_constant :VERSION
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oauth-bwergemn
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alam Ybs
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-01-12 00:00:00.000000000 Z
11
+ date: 2020-03-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler