oauth-bwergemn 1.0.11 → 1.1.2

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: 2693a4a7425ecbcd52df5b7e5cda3bbe0797c40af3f089d5a78a88f2fb80932d
4
- data.tar.gz: 543449662afc954c055fad61a73ac3e748ca882e2eb4dc370ecf639df81dbddb
3
+ metadata.gz: 8a1935c48d73406911ddd28a2bfe63aee76a0a9044ffff4e0d81eb90de070f10
4
+ data.tar.gz: cf6966718545e00541f0a55ea02421fa9c1e6256d81a902ab9be921a137042d7
5
5
  SHA512:
6
- metadata.gz: b47c2291394b8306621f73a025325acd2a063cee6c4d66b12f5bedfd092c4e3bb6833eb6090cef6bc109fc73a9ac122a9170d2cb0783c10f9f1a4085550e9587
7
- data.tar.gz: 22a22898d1e0dd75ccb6ae86a5eba9ffcd7766075dfce6b0a9be08ee5bc8c4bf2f65f580f8047a080b637e06361a0568df6a8fe217b857c760ea8f1c841a9e05
6
+ metadata.gz: 2502862c7d72b1d178074a89cf47b895838ff1109eab2aec788149fd7748a59516be3038019ea15b28b9f5083bf6c9e563f935375f0fa8ccfc4733372df0a7cb
7
+ data.tar.gz: cd034f59540ab4cff192b4622506fad73a3f071e7616d69f56a4dc7b2a67066de6af34afe0d83f0c23e6b44290411448afeef2de2e80e61e8b7c1d43b7731971
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
@@ -16,6 +16,7 @@ require 'oauth_bwergemn/auth_methods/auth_methods'
16
16
 
17
17
  require 'oauth_bwergemn/errors/invalid_token'
18
18
  require 'oauth_bwergemn/errors/invalid_scope'
19
+ require 'oauth_bwergemn/errors/expired_token'
19
20
 
20
21
  module OauthBwergemn
21
22
  extend OauthBwergemn::Configuration
@@ -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) }
@@ -89,13 +93,21 @@ module OauthBwergemn
89
93
 
90
94
  def authorize!
91
95
  access = Doorkeeper::AccessToken.find_by(token: token)
92
- 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
93
104
  raise OauthBwergemn::Errors::InvalidToken
94
105
  end
95
106
  resource_as = (is_args_include_as? ? args[:as] : OauthBwergemn.default_resources)
96
107
  # rubocop:disable Security/Eval
97
108
  resource = eval(OauthBwergemn.resources[resource_as.to_sym]).where(id: access.resource_owner_id).last rescue nil
98
109
  # rubocop:enable Security/Eval
110
+ sync_scopes_from resource, to: access
99
111
  if OauthBwergemn.is_custom_scopes
100
112
  scope_authorize! resource
101
113
  else
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OauthBwergemn
4
- VERSION = '1.0.11'
4
+ VERSION = '1.1.2'
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.11
4
+ version: 1.1.2
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-10 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: []