zaikio-oauth_client 0.15.1.beta1 → 0.17.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: 5695820de8df28288feb3794016c0288e2dce2d7890a8c3bd9b11685fc39c32f
4
- data.tar.gz: 2616666c8df490d153339d6953f6066a46f00669dfd037dcc2faf62873b44e9a
3
+ metadata.gz: 237bdb03b2ab2870ef2c0b9a92c9dac64fb2c67df2bba8e9234831eb14954f42
4
+ data.tar.gz: ae977109316a023585e008e669958775534eef2ecea309ede9b373d44f368fd4
5
5
  SHA512:
6
- metadata.gz: dd7d9785f60d8c025ec461d6ab006f714f7f9abfd83ebffcfcf261c17a386903a6d9a42eb57708fd23b23662060190be1b5fd3089f03c10e0459a5106bcf4268
7
- data.tar.gz: 1a554847284740a40cd231681572c30a0ae32c441a3da4de9feafdc36ea9057ff66ec93281be4108e4e1e7683c8f550a4bdf4b63153292f295295b29d0007a3f
6
+ metadata.gz: 44945aba1999049638cca10555d4dc192e191fa1fdf81965fa43fe31d1ab01c5e6054769a94efe0e862feee171a24b6d9a50853395628e497e30fb4629295ddf
7
+ data.tar.gz: b97fe832a40614ef14da36d12492e368c86460b0dde1867f411d0360d581fb3fe60256b3efea8d1653d744a1598908d9636d1a97c7043a59de56f6b87deb23ee
@@ -5,6 +5,10 @@ module Zaikio
5
5
 
6
6
  private
7
7
 
8
+ def new_path(options = {})
9
+ zaikio_oauth_client.new_connection_path(options)
10
+ end
11
+
8
12
  def approve_url(client_name = nil)
9
13
  zaikio_oauth_client.approve_connection_url(client_name)
10
14
  end
@@ -20,7 +20,7 @@ module Zaikio
20
20
  redirect_uri: approve_url(opts.delete(:client_name)),
21
21
  scope: subscription_scope,
22
22
  **opts
23
- )
23
+ ), allow_other_host: true
24
24
  end
25
25
  end
26
26
  end
@@ -63,7 +63,7 @@ module Zaikio
63
63
  end
64
64
 
65
65
  def bearer_klass
66
- return unless Zaikio.const_defined?("Hub::Models", false)
66
+ return unless Zaikio.const_defined?(:"Hub::Models", false)
67
67
 
68
68
  if Zaikio::Hub::Models.configuration.respond_to?(:"#{bearer_type.underscore}_class_name")
69
69
  Zaikio::Hub::Models.configuration.public_send(:"#{bearer_type.underscore}_class_name").constantize
@@ -4,7 +4,8 @@ module Zaikio
4
4
  extend ActiveSupport::Concern
5
5
 
6
6
  def new
7
- opts = params.permit(:client_name, :show_signup, :prompt, :force_login, :state, :lang)
7
+ opts = params.permit(:client_name, :show_signup, :prompt, :prompt_email_confirmation,
8
+ :force_login, :state, :lang)
8
9
  opts[:lang] ||= I18n.locale if defined?(I18n)
9
10
  client_name = opts.delete(:client_name)
10
11
  opts[:state] ||= session[:state] = SecureRandom.urlsafe_base64(32)
@@ -13,10 +14,10 @@ module Zaikio
13
14
  redirect_uri: approve_url(client_name),
14
15
  scope: oauth_scope,
15
16
  **opts
16
- )
17
+ ), allow_other_host: true
17
18
  end
18
19
 
19
- def approve # rubocop:disable Metrics/MethodLength,Metrics/AbcSize
20
+ def approve # rubocop:disable Metrics/MethodLength,Metrics/AbcSize,Metrics/CyclomaticComplexity,Metrics/PerceivedComplexity
20
21
  if params[:error].present?
21
22
  redirect_to send(
22
23
  respond_to?(:error_path_for) ? :error_path_for : :default_error_path_for,
@@ -36,6 +37,7 @@ module Zaikio
36
37
 
37
38
  origin = session[:origin]
38
39
  session.delete(:origin)
40
+ session.delete(:oauth_attempts)
39
41
 
40
42
  session[:zaikio_access_token_id] = access_token.id unless access_token.organization?
41
43
 
@@ -43,6 +45,13 @@ module Zaikio
43
45
  respond_to?(:after_approve_path_for) ? :after_approve_path_for : :default_after_approve_path_for,
44
46
  access_token, origin
45
47
  )
48
+ rescue OAuth2::Error => e
49
+ raise e unless e.code == "invalid_grant" || e.code == "invalid_request"
50
+ raise e if session[:oauth_attempts].to_i >= 3
51
+
52
+ session[:oauth_attempts] = session[:oauth_attempts].to_i + 1
53
+
54
+ redirect_to new_path(client_name: params[:client_name])
46
55
  end
47
56
 
48
57
  def destroy
@@ -58,6 +67,10 @@ module Zaikio
58
67
 
59
68
  private
60
69
 
70
+ def new_path(options = {})
71
+ zaikio_oauth_client.new_session_path(options)
72
+ end
73
+
61
74
  def approve_url(client_name = nil)
62
75
  zaikio_oauth_client.approve_session_url(client_name)
63
76
  end
@@ -1,5 +1,5 @@
1
1
  module Zaikio
2
2
  module OAuthClient
3
- VERSION = "0.15.1.beta1".freeze
3
+ VERSION = "0.17.1".freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zaikio-oauth_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.1.beta1
4
+ version: 0.17.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Zaikio GmbH
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-08-19 00:00:00.000000000 Z
11
+ date: 2022-01-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionpack
@@ -183,11 +183,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
183
183
  version: '0'
184
184
  required_rubygems_version: !ruby/object:Gem::Requirement
185
185
  requirements:
186
- - - ">"
186
+ - - ">="
187
187
  - !ruby/object:Gem::Version
188
- version: 1.3.1
188
+ version: '0'
189
189
  requirements: []
190
- rubygems_version: 3.2.3
190
+ rubygems_version: 3.2.22
191
191
  signing_key:
192
192
  specification_version: 4
193
193
  summary: Zaikio Platform Connectivity