better_record 0.19.4 → 0.19.6

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: 0633a14373cccb30674e55d090a3f7530c6be80f23e4884e38ac2a09f94d6d49
4
- data.tar.gz: f11953ac897dfc56cdb3d2f95b094a5f61ef17c724d86df12c0446f75b625894
3
+ metadata.gz: 26cad53cfde14b9a15655f5b2c641477041184411718a347eb8bb212a2d6a4c0
4
+ data.tar.gz: 4c3edf06a7d9b0203d270bebdb7ae174a225cf512f426055b1edf49d8a132792
5
5
  SHA512:
6
- metadata.gz: 81c92498fc3982a43e54ac93d0723c3ca05d3069c4c9525831b99fd6b10ddf75c7c97c13d2787e0491103c030c4394ad3fe8765190275131cd5dab0a2586720d
7
- data.tar.gz: a4ddec5b642bf43dd6d1ce26ad4e2ef7433a58ccb729de2836e92e26b309a1c786329129ff7fa99824f2599ffdc4f602f3af388ccd63df8415580f2046c46c96
6
+ metadata.gz: eb090203431b0bdfb99ca5ed000a04439688556b44352452e50fa125b8b1c18a4c262428cb88f79f72d9686bd80883c5d048fbb7aadf1e85741dc3db9adb10a6
7
+ data.tar.gz: faa6084402e2064fe7b8ae3e53657184e194653751a1aa21df5adc7b07840dfb66ed2147d7fed6cc01bc2f033e6df8d07d647ce463a2bbc263ed3454f79c79ef
data/lib/better_record.rb CHANGED
@@ -77,10 +77,10 @@ module BetterRecord
77
77
  self.certificate_session_user_method = (ENV.fetch('BR_CERTIFICATE_SESSION_USER_METHOD') { :user }).to_sym
78
78
  self.certificate_header = (ENV.fetch('BR_CERTIFICATE_HEADER') { :HTTP_X_SSL_CERT }).to_sym
79
79
  self.certificate_is_hashed = Boolean.strict_parse(ENV.fetch('BR_CERTIFICATE_IS_HASHED') { false })
80
- self.certificate_cleaning_method = (ENV.fetch('BR_CERTIFICATE_CLEANING_METHOD') { :clean_certificate }).to_sym
80
+ self.certificate_cleaning_method = (ENV.fetch('BR_CERTIFICATE_CLEANING_METHOD') { :clean_certificate })&.to_sym
81
81
  self.certificate_cleaning_send_as_arg = Boolean.strict_parse(ENV.fetch('BR_CERTIFICATE_CLEANING_AS_ARG') { false })
82
- self.token_decryption_method = (ENV.fetch('BR_TOKEN_DECRYPTION_METHOD') { :to_s }).to_sym
83
- self.token_encryption_method = (ENV.fetch('BR_TOKEN_ENCRYPTION_METHOD') { :to_s }).to_sym
82
+ self.token_decryption_method = (ENV.fetch('BR_TOKEN_DECRYPTION_METHOD') { false })&.to_sym
83
+ self.token_encryption_method = (ENV.fetch('BR_TOKEN_ENCRYPTION_METHOD') { false })&.to_sym
84
84
  self.token_send_as_arg = Boolean.strict_parse(ENV.fetch('BR_TOKEN_AS_ARG') { false })
85
85
  end
86
86
 
@@ -129,13 +129,15 @@ module BetterRecord
129
129
  end
130
130
 
131
131
  def br_get_clean_cert(certificate)
132
- certificate_cleaning_send_as_arg ?
133
- self.__send__(certificate_cleaning_method, certificate) :
134
- certificate.
135
- __send__(
136
- certificate_cleaning_method,
137
- *(certificate_cleaning_method_args)
138
- )
132
+ ensure_is_real_value(
133
+ certificate_cleaning_send_as_arg ?
134
+ self.__send__(certificate_cleaning_method, certificate) :
135
+ (
136
+ certificate_cleaning_method.present? ?
137
+ certificate.__send__(certificate_cleaning_method) :
138
+ certificate
139
+ ).presence
140
+ )
139
141
  end
140
142
 
141
143
  def current_user
@@ -144,6 +146,8 @@ module BetterRecord
144
146
 
145
147
  def current_user_session_data
146
148
  logged_in? ? JWT.decode(current_token).deep_symbolize_keys : {}
149
+ rescue
150
+ {}
147
151
  end
148
152
 
149
153
  def has_correct_origin?
@@ -174,7 +178,7 @@ module BetterRecord
174
178
  def current_token
175
179
  if use_bearer_token
176
180
  @current_token ||= authenticate_with_http_token do |token, **options|
177
- decrypt_token(token, options)
181
+ decrypt_token(token, options).presence
178
182
  end
179
183
  else
180
184
  @current_token ||= session[:current_user]
@@ -204,15 +208,27 @@ module BetterRecord
204
208
  end
205
209
 
206
210
  def decrypt_token(t, **options)
207
- token_send_as_arg ?
208
- __send__(token_decryption_method, t, options) :
209
- t.__send__(token_decryption_method)
211
+ ensure_is_real_value(
212
+ token_send_as_arg ?
213
+ __send__(token_decryption_method, t, options) :
214
+ (
215
+ token_decryption_method.present? ?
216
+ t.__send__(token_decryption_method) :
217
+ t
218
+ ).presence
219
+ )
210
220
  end
211
221
 
212
222
  def encrypt_token
213
- token_send_as_arg ?
214
- __send__(token_encryption_method, current_token) :
215
- current_token.__send__(token_encryption_method)
223
+ ensure_is_real_value(
224
+ token_send_as_arg ?
225
+ __send__(token_encryption_method, current_token) :
226
+ (
227
+ token_encryption_method.present? ?
228
+ current_token.__send__(token_encryption_method) :
229
+ current_token
230
+ ).presence
231
+ )
216
232
  end
217
233
 
218
234
 
@@ -225,6 +241,12 @@ module BetterRecord
225
241
  header_hash[:HTTP_CLIENT_IP] ||
226
242
  request.remote_ip
227
243
  end
244
+
245
+ def ensure_is_real_value(value)
246
+ (Boolean.parse(value) && (value != "nil")) ?
247
+ value :
248
+ nil
249
+ end
228
250
  end
229
251
  end
230
252
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module BetterRecord
4
- VERSION = '0.19.4'
4
+ VERSION = '0.19.6'
5
5
  end
@@ -99,7 +99,7 @@ module BetterRecord
99
99
 
100
100
  # self.certificate_is_hashed = true
101
101
 
102
- # self.certificate_cleaning_method = :to_s
102
+ # self.certificate_cleaning_method = :clean_certificate
103
103
 
104
104
  # self.certificate_cleaning_send_as_arg = []
105
105
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: better_record
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.19.4
4
+ version: 0.19.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sampson Crowley