oauth_im 0.8.0 → 0.8.1

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: be1d2aa7d9e5c1ac97a5e5aabd89671a48bfc2afc17c53276f961be0a29d357e
4
- data.tar.gz: 64f150ae67c0b67efd6a8db20c1390bb69ca21f29837446ad07264947e8e863d
3
+ metadata.gz: 8208d820c7e100554ecce30e7059fd4d082679a90875a6345a19cb072c010f2c
4
+ data.tar.gz: 4210b53980b4d73a75bd4a48ec5318d2369e22e7d3db15253b5d706dd4c46821
5
5
  SHA512:
6
- metadata.gz: 11624bb0650c05d8a5f63edee7b8918f6e043f6a4b6d15b25cd593da5940af18ab320a5d4587479ab96c836ef60b99b4e45f49fabfe3a08e23870dd1d1489499
7
- data.tar.gz: 4018866ef76985ec65ccb37ab95e7e973caf0e8f07086a25ad3f55b2eb17659d130e75421466f60f8d526aa8929239c935d87fb905d7358edfceae6c81540ff5
6
+ metadata.gz: 38d9767641f6b8b691cfc1ceaabac18db7bfdade8f04d4110d669c3c5b48f9e0a501931c859650d7976f458225233e97eb475f92b8dcb2ca9b2b66488c596cfc
7
+ data.tar.gz: 2ed159a29e9164d3aec610e20559a65fe6386e065945b942f7b1dded21a4aac0bc7f38ac2333b2a0a529134273286700dff636a65ba75518ee1586cd677ff0cb
data/README.md CHANGED
@@ -111,12 +111,16 @@ end
111
111
  ### Initializer
112
112
  * The gem provides a single initializer, `AppContext`.
113
113
  * This module is **not** name-spaced.
114
- * It provides a single method, `provide_authentication?`, which by
115
- default is `true`.
116
- * Client apps can override this initializer method.
114
+
115
+ #### Methods
116
+ * `AppContext#provide_authentication?` method defaults to `true` and
117
+ can be overridden as required.
117
118
  * For example, `iiab` overrides this initializer so that the
118
- `provide_authentication?` method returns `false` unless the app is
119
- `kh_iiab` (not `demo_im`).
119
+ `provide_authentication?` method returns `false` unless the app
120
+ is `kh_iiab` (not `demo_im`).
121
+ * `AppContext#privileged?` defaults to `nil` and can be overridden as required.
122
+ * `AppContext#authenticate_for_specs` offers a way to mock
123
+ authentication and privilege in specs. It accepts a block.
120
124
 
121
125
  ## Gem Maintenance
122
126
  After many false starts, this repo includes two (seemingly functional) github workflows.
@@ -149,9 +153,14 @@ After many false starts, this repo includes two (seemingly functional) github wo
149
153
  you.
150
154
 
151
155
  ## Version History
156
+
157
+ ### 0.8.1
158
+ * Tightened up test environment helpers.
159
+
152
160
  ### 0.8.0
153
161
  * Allow RSA signing keys in addition to HMAC.
154
162
  This is because Terraform creates RSA keys during runs.
163
+
155
164
  ### 0.7.4
156
165
  * Use https protocol for callback in production; http otherwise
157
166
 
@@ -35,13 +35,9 @@ module OauthIm
35
35
  def current_user
36
36
  @current_user ||=
37
37
  if user_jwt.present?
38
- if email_verified?
39
- email
40
- else
41
- head :forbidden
42
- end
43
- else
44
- AppContext.current_user
38
+ email if email_verified?
39
+ elsif Rails.env.test?
40
+ AppContext.spec_user
45
41
  end
46
42
  end
47
43
 
@@ -5,25 +5,28 @@ module AppContext
5
5
  true
6
6
  end
7
7
 
8
- def self.authenticated_for_specs?
9
- @authenticated_for_specs
8
+ def self.privileged?
9
+ @privileged if provide_authentication?
10
10
  end
11
11
 
12
- def self.privileged?
13
- @privileged
12
+ def self.spec_user
13
+ @spec_user if Rails.env.test? && provide_authentication?
14
14
  end
15
15
 
16
- def self.current_user
17
- @current_user
16
+ def self.authenticated_for_specs?
17
+ @authenticated_for_specs if Rails.env.test? && provide_authentication?
18
18
  end
19
19
 
20
- def self.authenticate_for_specs(current_user: nil, privileged: false)
20
+ def self.authenticate_for_specs(spec_user: nil, privileged: false)
21
+ return unless provide_authentication?
22
+ raise 'Use only in test environment!!' unless Rails.env.test?
23
+
21
24
  @authenticated_for_specs = true
22
- @current_user = current_user
25
+ @spec_user = spec_user
23
26
  @privileged = privileged
24
27
  yield
25
28
  @privileged = false
26
- @current_user = nil
29
+ @spec_user = nil
27
30
  @authenticated_for_specs = false
28
31
  end
29
32
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OauthIm
4
- VERSION = '0.8.0'
4
+ VERSION = '0.8.1'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oauth_im
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Connally
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-05-25 00:00:00.000000000 Z
11
+ date: 2022-05-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jwt