oauth-bwergemn 1.0.10 → 1.1.1

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: e46c6acfa64976a4efd66ac4e880f2b82c83354d275b81edadbd66632563c0db
4
- data.tar.gz: 813e8774a700ed3225a3a5065928d39500b1110b2ee54e68dd6d229ed374ffc9
3
+ metadata.gz: f0dc04cb4bc04a086e05e9895713ec7e0c29926ebbf7af0b30c124b253f62a9d
4
+ data.tar.gz: 50a0a431bab667664a8b0feddd9230ecdb307df9c285ad235976f2158173e614
5
5
  SHA512:
6
- metadata.gz: 28f9010d626ed0d8e1c4d51cb6fe370eb95eed73485077cbd1146caf1504cf8579c66d6725514c8b161d3f334464fdb7f98c9488898531ac4ee3890e7dbe010c
7
- data.tar.gz: 05ecce137a71d52d379dbbb72674abd5b54c731ffa2c42d394720002f7344f544612fb2a644338e1d8f8d0b57bd6a01ac552e8c7fb0634b6746086cf3a99de80
6
+ metadata.gz: d6ad24f9e5d7b02ba4b8b5537de6ff281be16999862a4bec85e1e0c7b34c5ec2ada5261593bf6642a3e2a35749c4cb2a3bcd847c1f87ecff6dc3263e02e7420a
7
+ data.tar.gz: 04b379d31270ecc5bb15f55f4d1e5acf06d29477b62a32b4b8d3e70b5f0527d32b3ddc26db228bbdc00b3619cb9299ff32af910987a36992434fcf16558e7921
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 3.0.0
data/Gemfile.lock CHANGED
@@ -1,105 +1,58 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- oauth-bwergemn (1.0.8)
5
- grape (~> 1.3.0)
4
+ oauth-bwergemn (1.1.1)
6
5
 
7
6
  GEM
8
7
  remote: https://rubygems.org/
9
8
  specs:
10
- activesupport (6.0.3.2)
11
- concurrent-ruby (~> 1.0, >= 1.0.2)
12
- i18n (>= 0.7, < 2)
13
- minitest (~> 5.1)
14
- tzinfo (~> 1.1)
15
- zeitwerk (~> 2.2, >= 2.2.2)
16
- ast (2.4.1)
17
- builder (3.2.4)
18
- concurrent-ruby (1.1.6)
9
+ ast (2.4.2)
19
10
  diff-lcs (1.4.4)
20
- dry-configurable (0.11.6)
21
- concurrent-ruby (~> 1.0)
22
- dry-core (~> 0.4, >= 0.4.7)
23
- dry-equalizer (~> 0.2)
24
- dry-container (0.7.2)
25
- concurrent-ruby (~> 1.0)
26
- dry-configurable (~> 0.1, >= 0.1.3)
27
- dry-core (0.4.9)
28
- concurrent-ruby (~> 1.0)
29
- dry-equalizer (0.3.0)
30
- dry-inflector (0.2.0)
31
- dry-logic (1.0.6)
32
- concurrent-ruby (~> 1.0)
33
- dry-core (~> 0.2)
34
- dry-equalizer (~> 0.2)
35
- dry-types (1.4.0)
36
- concurrent-ruby (~> 1.0)
37
- dry-container (~> 0.3)
38
- dry-core (~> 0.4, >= 0.4.4)
39
- dry-equalizer (~> 0.3)
40
- dry-inflector (~> 0.1, >= 0.1.2)
41
- dry-logic (~> 1.0, >= 1.0.2)
42
- grape (1.3.3)
43
- activesupport
44
- builder
45
- dry-types (>= 1.1)
46
- mustermann-grape (~> 1.0.0)
47
- rack (>= 1.3.0)
48
- rack-accept
49
- i18n (1.8.3)
50
- concurrent-ruby (~> 1.0)
51
- jaro_winkler (1.5.4)
52
- minitest (5.14.1)
53
- mustermann (1.1.1)
54
- ruby2_keywords (~> 0.0.1)
55
- mustermann-grape (1.0.1)
56
- mustermann (>= 1.0.0)
57
- parallel (1.19.2)
58
- parser (2.7.1.4)
11
+ parallel (1.20.1)
12
+ parser (3.0.0.0)
59
13
  ast (~> 2.4.1)
60
- rack (2.2.3)
61
- rack-accept (0.4.5)
62
- rack (>= 0.4)
63
14
  rainbow (3.0.0)
64
- rspec (3.7.0)
65
- rspec-core (~> 3.7.0)
66
- rspec-expectations (~> 3.7.0)
67
- rspec-mocks (~> 3.7.0)
68
- rspec-core (3.7.1)
69
- rspec-support (~> 3.7.0)
70
- rspec-expectations (3.7.0)
15
+ regexp_parser (2.1.1)
16
+ rexml (3.2.4)
17
+ rspec (3.10.0)
18
+ rspec-core (~> 3.10.0)
19
+ rspec-expectations (~> 3.10.0)
20
+ rspec-mocks (~> 3.10.0)
21
+ rspec-core (3.10.1)
22
+ rspec-support (~> 3.10.0)
23
+ rspec-expectations (3.10.1)
71
24
  diff-lcs (>= 1.2.0, < 2.0)
72
- rspec-support (~> 3.7.0)
73
- rspec-mocks (3.7.0)
25
+ rspec-support (~> 3.10.0)
26
+ rspec-mocks (3.10.2)
74
27
  diff-lcs (>= 1.2.0, < 2.0)
75
- rspec-support (~> 3.7.0)
76
- rspec-support (3.7.1)
77
- rubocop (0.79.0)
78
- jaro_winkler (~> 1.5.1)
28
+ rspec-support (~> 3.10.0)
29
+ rspec-support (3.10.2)
30
+ rubocop (1.8.1)
79
31
  parallel (~> 1.10)
80
- parser (>= 2.7.0.1)
32
+ parser (>= 3.0.0.0)
81
33
  rainbow (>= 2.2.2, < 4.0)
34
+ regexp_parser (>= 1.8, < 3.0)
35
+ rexml
36
+ rubocop-ast (>= 1.2.0, < 2.0)
82
37
  ruby-progressbar (~> 1.7)
83
- unicode-display_width (>= 1.4.0, < 1.7)
84
- rubocop-performance (1.5.2)
85
- rubocop (>= 0.71.0)
86
- ruby-progressbar (1.10.1)
87
- ruby2_keywords (0.0.2)
88
- thread_safe (0.3.6)
89
- tzinfo (1.2.7)
90
- thread_safe (~> 0.1)
91
- unicode-display_width (1.6.1)
92
- zeitwerk (2.3.1)
38
+ unicode-display_width (>= 1.4.0, < 3.0)
39
+ rubocop-ast (1.4.1)
40
+ parser (>= 2.7.1.5)
41
+ rubocop-performance (1.9.2)
42
+ rubocop (>= 0.90.0, < 2.0)
43
+ rubocop-ast (>= 0.4.0)
44
+ ruby-progressbar (1.11.0)
45
+ unicode-display_width (2.0.0)
93
46
 
94
47
  PLATFORMS
95
48
  ruby
96
49
 
97
50
  DEPENDENCIES
98
- bundler (~> 2.1.0)
51
+ bundler (~> 2.2.4)
99
52
  oauth-bwergemn!
100
- rspec (~> 3.7.0)
101
- rubocop (~> 0.79.0)
102
- rubocop-performance (~> 1.5.2)
53
+ rspec (~> 3.10.0)
54
+ rubocop (~> 1.8.0)
55
+ rubocop-performance (~> 1.9.2)
103
56
 
104
57
  BUNDLED WITH
105
- 2.1.0
58
+ 2.2.14
@@ -1,5 +1,7 @@
1
1
  OauthBwergemn.setup do |config|
2
2
  # your authentication server
3
- config.auth_strategy = "hub"
4
- config.resources = { user: "Models::User" } # { admin: "Models::Admin", user: "Models::User" , moderator: "Models::Moderator" }
5
- end
3
+ config.auth_strategy = "hub"
4
+ config.is_custom_scopes = false
5
+ config.resources = { user: "Models::Auth" } # { admin: "Models::Admin", user: "Models::User" , moderator: "Models::Moderator" }
6
+ config.default_resources = :user
7
+ end
@@ -22,6 +22,7 @@ module OauthBwergemn
22
22
  define_setting :auth_strategy, 'hub'
23
23
  define_setting :resources, user: 'User'
24
24
  define_setting :default_resources, :user
25
+ define_setting :is_custom_scopes, false
25
26
 
26
27
  def self.config_resources
27
28
  resources
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OauthBwergemn
4
+ module Errors
5
+ class ExpiredToken < StandardError
6
+ def initialize msg = 'Expired token'
7
+ super
8
+ end
9
+ end
10
+ end
11
+ end
@@ -46,6 +46,10 @@ module OauthBwergemn
46
46
  results
47
47
  end
48
48
 
49
+ def sync_scopes_from resource , to:
50
+ to.update(scopes: resource.scopes.join(',')) rescue nil
51
+ end
52
+
49
53
  def scopes
50
54
  results = []
51
55
  auth_strategy.auth_scopes.map { |s| (results << s) unless s.is_a?(Hash) }
@@ -53,7 +57,11 @@ module OauthBwergemn
53
57
  end
54
58
 
55
59
  def access_scopes access
56
- access.scopes.all.map!(&:to_sym) rescue []
60
+ if OauthBwergemn.is_custom_scopes
61
+ access.scopes.map!(&:to_sym) rescue []
62
+ else
63
+ access.scopes.all.map!(&:to_sym) rescue []
64
+ end
57
65
  end
58
66
 
59
67
  def is_args_include_validate?
@@ -85,14 +93,26 @@ module OauthBwergemn
85
93
 
86
94
  def authorize!
87
95
  access = Doorkeeper::AccessToken.find_by(token: token)
88
- unless access.present?
96
+ if access.present?
97
+ if access.expired?
98
+ raise OauthBwergemn::Errors::ExpiredToken
99
+ end
100
+ if access.revoked?
101
+ raise OauthBwergemn::Errors::InvalidToken
102
+ end
103
+ else
89
104
  raise OauthBwergemn::Errors::InvalidToken
90
105
  end
91
- scope_authorize! access
92
106
  resource_as = (is_args_include_as? ? args[:as] : OauthBwergemn.default_resources)
93
107
  # rubocop:disable Security/Eval
94
108
  resource = eval(OauthBwergemn.resources[resource_as.to_sym]).where(id: access.resource_owner_id).last rescue nil
95
109
  # rubocop:enable Security/Eval
110
+ sync_scopes_from resource, to: access
111
+ if OauthBwergemn.is_custom_scopes
112
+ scope_authorize! resource
113
+ else
114
+ scope_authorize! access
115
+ end
96
116
  {
97
117
  resource_owner: resource,
98
118
  resource_credential: {
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OauthBwergemn
4
- VERSION = '1.0.10'
4
+ VERSION = '1.1.1'
5
5
  public_constant :VERSION
6
6
  end
@@ -33,9 +33,8 @@ Gem::Specification.new do |spec|
33
33
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
34
34
  spec.require_paths = ['lib']
35
35
 
36
- spec.add_development_dependency 'bundler', '~> 2.1.0'
37
- spec.add_development_dependency 'rspec', '~> 3.7.0'
38
- spec.add_development_dependency 'rubocop', '~> 0.79.0'
39
- spec.add_development_dependency 'rubocop-performance', '~> 1.5.2'
40
- spec.add_dependency 'grape', '~> 1.3.0'
36
+ spec.add_development_dependency 'bundler', '~> 2.2.4'
37
+ spec.add_development_dependency 'rspec', '~> 3.10.0'
38
+ spec.add_development_dependency 'rubocop', '~> 1.8.0'
39
+ spec.add_development_dependency 'rubocop-performance', '~> 1.9.2'
41
40
  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.10
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alam Ybs
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-07-08 00:00:00.000000000 Z
11
+ date: 2021-08-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,70 +16,56 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 2.1.0
19
+ version: 2.2.4
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 2.1.0
26
+ version: 2.2.4
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rspec
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 3.7.0
33
+ version: 3.10.0
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 3.7.0
40
+ version: 3.10.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rubocop
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.79.0
47
+ version: 1.8.0
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.79.0
54
+ version: 1.8.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rubocop-performance
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 1.5.2
61
+ version: 1.9.2
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 1.5.2
69
- - !ruby/object:Gem::Dependency
70
- name: grape
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: 1.3.0
76
- type: :runtime
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: 1.3.0
68
+ version: 1.9.2
83
69
  description: Oauth Bwergemn is a Grape middleware to connect your API resources with
84
70
  your API authenticator.
85
71
  email:
@@ -91,6 +77,7 @@ files:
91
77
  - ".gitignore"
92
78
  - ".rspec"
93
79
  - ".rubocop.yml"
80
+ - ".ruby-version"
94
81
  - ".travis.yml"
95
82
  - CODE_OF_CONDUCT.md
96
83
  - Gemfile
@@ -107,6 +94,7 @@ files:
107
94
  - lib/oauth_bwergemn/auth_strategies/hub.rb
108
95
  - lib/oauth_bwergemn/base_strategy.rb
109
96
  - lib/oauth_bwergemn/configuration.rb
97
+ - lib/oauth_bwergemn/errors/expired_token.rb
110
98
  - lib/oauth_bwergemn/errors/invalid_scope.rb
111
99
  - lib/oauth_bwergemn/errors/invalid_token.rb
112
100
  - lib/oauth_bwergemn/extension.rb
@@ -119,7 +107,7 @@ licenses:
119
107
  - MIT
120
108
  metadata:
121
109
  allowed_push_host: https://rubygems.org/
122
- post_install_message:
110
+ post_install_message:
123
111
  rdoc_options: []
124
112
  require_paths:
125
113
  - lib
@@ -134,8 +122,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
134
122
  - !ruby/object:Gem::Version
135
123
  version: '0'
136
124
  requirements: []
137
- rubygems_version: 3.1.1
138
- signing_key:
125
+ rubygems_version: 3.2.3
126
+ signing_key:
139
127
  specification_version: 4
140
128
  summary: Oauth Bwergemn is a Grape middleware for your API authenticator
141
129
  test_files: []