zaikio-oauth_client 0.9.0 → 0.10.0

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: 6e956bf122053d559c2dd918f4b90a23c10559bc5578442bc26dbe1530a3396b
4
- data.tar.gz: 0d594a45ddf589b03d9e43817885377d963934345fa6cb936b367fe64761e08a
3
+ metadata.gz: 84383fd7b0b03f23cc671489124b6b8f90613cad840bd668080ea04c59a4ff54
4
+ data.tar.gz: e7b8f6759983ffad763780b392be0500888affd117c1ccfb9f87449ed1b1a9de
5
5
  SHA512:
6
- metadata.gz: 38355e0660ea6b2fd2c1b13a23a75626b5d4ae4efd3e64eb21396893e4a2ffc39c34824f373e994f596e4064455a8ad596b63b5e595c16afa844ffcddc90e56a
7
- data.tar.gz: 1cb76ea316682fc4a4394d27ad252cc67496e95fa9034ba7054ad6e9b472a211f78cb1c839c9f4c745b143804c04aef5c85616c4f6f344f378e19bf12420db53
6
+ metadata.gz: caae8092591d3d47a03ddf598d8da76d474cc45ff01e5799f140d8dbad3ca171294217ceddc1e0ffbc364f8efd3153c5222e51711afbd8f17d39daf1f01f409b
7
+ data.tar.gz: 2759d26c2826f6cf06aba7c7673eaf2ee7cf30914ca4c965eefe99409efb575916c4fe0cfdde315ed64f95e20720b83712ae2d5bb3a9820dfedb908a9e38e094
@@ -2,15 +2,21 @@ module Zaikio
2
2
  module OAuthClient
3
3
  class SubscriptionsController < ConnectionsController
4
4
  def new
5
- opts = params.permit(:client_name, :state, :plan)
6
- client_name = opts.delete(:client_name)
7
- plan = opts.delete(:plan)
5
+ opts = params.permit(:client_name, :state, :plan, :organization_id)
6
+
7
+ plan = opts.delete(:plan)
8
+ organization_id = opts.delete(:organization_id)
9
+
10
+ subscription_scope = if organization_id.present?
11
+ "Org/#{organization_id}.subscription_create"
12
+ else
13
+ "Org.subscription_create"
14
+ end
8
15
 
9
- subscription_scope = "Org.subscription_create"
10
16
  subscription_scope << ".#{plan}" if plan.present?
11
17
 
12
18
  redirect_to oauth_client.auth_code.authorize_url(
13
- redirect_uri: approve_url(client_name),
19
+ redirect_uri: approve_url(opts.delete(:client_name)),
14
20
  scope: subscription_scope,
15
21
  **opts
16
22
  )
@@ -82,14 +82,25 @@ module Zaikio
82
82
  # Finds the best usable access token. Note that this token may have expired and
83
83
  # would require refreshing.
84
84
  def find_usable_access_token(client_name:, bearer_type:, bearer_id:, requested_scopes:)
85
- Zaikio::AccessToken
86
- .where(audience: client_name)
87
- .usable(
88
- bearer_type: bearer_type,
89
- bearer_id: bearer_id,
90
- requested_scopes: requested_scopes
91
- )
92
- .first
85
+ configuration.logger.debug "Try to fetch token for client_name: #{client_name}, "\
86
+ "bearer #{bearer_type}/#{bearer_id}, requested_scopes: #{requested_scopes}"
87
+
88
+ fetch_access_token = lambda {
89
+ Zaikio::AccessToken
90
+ .where(audience: client_name)
91
+ .usable(
92
+ bearer_type: bearer_type,
93
+ bearer_id: bearer_id,
94
+ requested_scopes: requested_scopes
95
+ )
96
+ .first
97
+ }
98
+
99
+ if configuration.logger.respond_to?(:silence)
100
+ configuration.logger.silence { fetch_access_token.call }
101
+ else
102
+ fetch_access_token.call
103
+ end
93
104
  end
94
105
 
95
106
  def fetch_new_token(client_config:, bearer_type:, bearer_id:, scopes:)
@@ -13,7 +13,6 @@ module Zaikio
13
13
  }.freeze
14
14
 
15
15
  attr_accessor :host
16
- attr_writer :logger
17
16
  attr_reader :client_configurations, :environment, :around_auth_block,
18
17
  :sessions_controller_name, :connections_controller_name, :subscriptions_controller_name
19
18
 
@@ -23,10 +22,16 @@ module Zaikio
23
22
  @sessions_controller_name = "sessions"
24
23
  @connections_controller_name = "connections"
25
24
  @subscriptions_controller_name = "subscriptions"
25
+ Zaikio::AccessToken.logger = logger
26
26
  end
27
27
 
28
28
  def logger
29
- @logger ||= Logger.new($stdout)
29
+ @logger ||= ActiveSupport::Logger.new($stdout)
30
+ end
31
+
32
+ def logger=(logger)
33
+ @logger = logger
34
+ Zaikio::AccessToken.logger = @logger
30
35
  end
31
36
 
32
37
  def register_client(name)
@@ -1,5 +1,5 @@
1
1
  module Zaikio
2
2
  module OAuthClient
3
- VERSION = "0.9.0".freeze
3
+ VERSION = "0.10.0".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.9.0
4
+ version: 0.10.0
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-04-13 00:00:00.000000000 Z
11
+ date: 2021-04-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionpack