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 +4 -4
- data/lib/oauth-bwergemn.rb +1 -0
- data/lib/oauth_bwergemn/oauth2.rb +30 -4
- data/lib/oauth_bwergemn/version.rb +1 -1
- 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: 9793805f550aa496f8c35c722ac4bf677abf5d2836ba0ba703f266dbcafbe0e6
|
4
|
+
data.tar.gz: 06445a109f6e7a99a698103e1b841e17bcbb9671f7eb4a423605d24028ce309f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2dc184cb56e5d2ade4d468b18facf61d3ffb19057e0e1e438e548bef94e78c4b31e926989c00078c575c4a5f06997dba7d1e5c7e075ff79bdd4c2df91efe417d
|
7
|
+
data.tar.gz: 3be3b01077ed948ac3d01b6fa53103a7712ba05d9a0c837e4a41119d613896b34eff5c441ca1feb2914950eeff09f466421addf9939da9c3acc9f8a4219c2b45
|
data/lib/oauth-bwergemn.rb
CHANGED
@@ -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[
|
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
|
-
|
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
|
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
|
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
|
+
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-
|
11
|
+
date: 2020-03-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|