effective_resources 2.11.1 → 2.11.2

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: 70b3835f1e45128ade83d38d69adbcd8096fd5aecce4882028d0512dab970dae
4
- data.tar.gz: 7c38e5cb62a55b4fa4924970aad1b0f45cf06b0dccedb41770f8df394e98a9c0
3
+ metadata.gz: d7420e7773e862ace77933d82892a2536a3502a8e9780670e7951368a043b63e
4
+ data.tar.gz: f27995719216c1a0d9eeb4d0cacdf5591726322301a87b3f19ee8f8d0e9df450
5
5
  SHA512:
6
- metadata.gz: 50be7d9a989a25f8aa6777e85603c18b8ccc3be72e78aa35e4aa83814ca0fa74371de434c1138dc9a2331b57d79c1e032dbf987628c2b3b800b8b3819b26eb3d
7
- data.tar.gz: 46e3229e7ecc0a7e989ac022afed029183b96e9a225f7a3d93edc3d9ff0a14a37682bf4d1685e1c3ebf3f8c8a5760e0cd09eafc7346eb940bf13d5aecd1752ad
6
+ metadata.gz: fae042cbd0de9cacc8cac925db8339254ab7cd144076acac9f3464b2fe09e5572c8c0cd691766810a013ba92834ceda19522f70fcf6928065c7f268943e0b592
7
+ data.tar.gz: 5d50084e5ecf6c49c6861027e0240f8be521c43ea16327cd5e69f8fa22f46326b5c0b1af7e30fb4c5bba30c011053bf89cd2b2104348ec682921f988b13513f8
@@ -197,31 +197,33 @@ module EffectiveDeviseUser
197
197
  # https://github.com/heartcombo/devise/blob/f6e73e5b5c8f519f4be29ac9069c6ed8a2343ce4/lib/devise/models/database_authenticatable.rb#L216
198
198
  def find_for_database_authentication(warden_conditions)
199
199
  conditions = warden_conditions.dup.presence || {}
200
- primary_or_alternate_email = conditions[:email]
201
- conditions.delete(:email)
202
200
 
203
- raise "Expected an email #{has_alternate_email? ? 'or alternate email' : ''} but got [#{primary_or_alternate_email}] instead" if primary_or_alternate_email.blank?
201
+ email = conditions.delete(:email).to_s.strip.downcase
202
+ raise "Expected an email condition but got #{conditions} instead" unless email.present?
204
203
 
205
- query = if has_alternate_email?
206
- "lower(email) = :value OR lower(alternate_email) = :value"
207
- else
208
- "lower(email) = :value"
209
- end
210
-
211
- all
212
- .where(conditions)
213
- .where(query, value: primary_or_alternate_email.strip.downcase)
214
- .first
204
+ if has_alternate_email?
205
+ where(conditions).where('email = :email OR alternate_email = :email', email: email).first
206
+ else
207
+ where(conditions).where(email: email).first
208
+ end
215
209
  end
216
210
 
217
211
  def has_alternate_email?
218
- 'alternate_email'.in? column_names
212
+ column_names.include?('alternate_email')
219
213
  end
220
214
 
215
+ def find_by_any_email(value)
216
+ email = value.to_s.strip.downcase
217
+
218
+ if has_alternate_email?
219
+ where(email: email).or(where(alternate_email: email)).first
220
+ else
221
+ where(email: email).first
222
+ end
223
+ end
221
224
  end
222
225
 
223
226
  # EffectiveDeviseUser Instance Methods
224
-
225
227
  def alternate_email=(value)
226
228
  super(value.to_s.strip.downcase.presence)
227
229
  end
@@ -1,3 +1,3 @@
1
1
  module EffectiveResources
2
- VERSION = '2.11.1'.freeze
2
+ VERSION = '2.11.2'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_resources
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.11.1
4
+ version: 2.11.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-09-19 00:00:00.000000000 Z
11
+ date: 2023-09-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails