searls-auth 1.0.0 → 1.0.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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4314fcd2c4eee5b0f32ace811ceeefaa44728895592fdebd5aa6a696303133e7
|
4
|
+
data.tar.gz: 8d4963fb8be2ecbf4ad13762e8697c2d9d992f9d382dcc0c73b2a38d6daf6041
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 79c05ebe302bc1846f72ac29ae21a16ee629050a52b31cb4bd9ff4d5ec70bd1737e4cfe7451546cf74dd0aa82781d0952855218f4f47286419049f59265e6982
|
7
|
+
data.tar.gz: a309ca56baf772d1c3eb46adf1897d33af4bb0077d14768e9646b03b402311cb9793082f9f16fdc9ac27286a001561843e338858eda1a99a960e7b331268d85c
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
## [Unreleased]
|
2
2
|
|
3
|
+
## [1.0.2] - 2025-10-13
|
4
|
+
|
5
|
+
* Ensure password resets will be delivered if user does not have a password
|
6
|
+
|
7
|
+
## [1.0.1] - 2025-10-11
|
8
|
+
|
9
|
+
* Skip database-aware configuration validations when Active Record migrations are pending
|
10
|
+
|
3
11
|
## [1.0.0] - 2025-10-04
|
4
12
|
|
5
13
|
* **BREAKING:** Rename `default_redirect_path_after_register` to `redirect_path_after_register`
|
@@ -12,7 +12,7 @@ module Searls
|
|
12
12
|
email = params[:email].to_s.strip
|
13
13
|
user = Searls::Auth.config.user_finder_by_email.call(email)
|
14
14
|
|
15
|
-
if proceed_with_password_reset_request?(user)
|
15
|
+
if proceed_with_password_reset_request?(user)
|
16
16
|
Searls::Auth::DeliversPasswordReset.new.deliver(
|
17
17
|
user:,
|
18
18
|
redirect_path: params[:redirect_path],
|
@@ -41,12 +41,9 @@ module Searls
|
|
41
41
|
nil
|
42
42
|
end
|
43
43
|
|
44
|
-
def
|
44
|
+
def proceed_with_password_reset_request?(user)
|
45
45
|
return false if user.blank?
|
46
|
-
Searls::Auth.config.password_present?(user)
|
47
|
-
end
|
48
46
|
|
49
|
-
def proceed_with_password_reset_request?(user)
|
50
47
|
result = Searls::Auth.config.before_password_reset.call(user, params, self)
|
51
48
|
!(result == false || result == :halt)
|
52
49
|
end
|
data/lib/searls/auth/config.rb
CHANGED
@@ -165,9 +165,12 @@ module Searls
|
|
165
165
|
if using_default_hooks && defined?(::User)
|
166
166
|
missing = []
|
167
167
|
missing << "User#authenticate" unless ::User.method_defined?(:authenticate)
|
168
|
-
|
169
|
-
|
170
|
-
|
168
|
+
unless schema_checks_blocked?
|
169
|
+
has_password_digest_method = ::User.method_defined?(:password_digest)
|
170
|
+
has_password_digest_column = ::User.respond_to?(:column_names) && ::User.column_names.include?("password_digest")
|
171
|
+
missing << "users.password_digest" unless has_password_digest_method || has_password_digest_column
|
172
|
+
end
|
173
|
+
|
171
174
|
if missing.any?
|
172
175
|
raise Searls::Auth::Error, "Password login requires #{missing.join(" and ")}. Add bcrypt/has_secure_password or override password hooks."
|
173
176
|
end
|
@@ -255,7 +258,7 @@ module Searls
|
|
255
258
|
end
|
256
259
|
has_email_method = ::User.method_defined?(:email)
|
257
260
|
has_email_column = ::User.respond_to?(:column_names) && ::User.column_names.include?("email")
|
258
|
-
unless has_email_method || has_email_column
|
261
|
+
unless schema_checks_blocked? || has_email_method || has_email_column
|
259
262
|
raise Searls::Auth::Error, "Default :user_finder_by_email expects a `users.email` attribute."
|
260
263
|
end
|
261
264
|
end
|
@@ -274,7 +277,7 @@ module Searls
|
|
274
277
|
probe = ::User.new
|
275
278
|
has_email_setter = probe.respond_to?(:email=)
|
276
279
|
has_email_column = ::User.respond_to?(:column_names) && ::User.column_names.include?("email")
|
277
|
-
unless has_email_setter || has_email_column
|
280
|
+
unless schema_checks_blocked? || has_email_setter || has_email_column
|
278
281
|
raise Searls::Auth::Error, "Default :user_initializer expects a writable email attribute on User."
|
279
282
|
end
|
280
283
|
rescue ArgumentError
|
@@ -289,6 +292,19 @@ module Searls
|
|
289
292
|
end
|
290
293
|
end
|
291
294
|
end
|
295
|
+
|
296
|
+
def schema_checks_blocked?
|
297
|
+
return true unless defined?(::ActiveRecord)
|
298
|
+
begin
|
299
|
+
if !::ActiveRecord::Base.connected? ||
|
300
|
+
!::ActiveRecord::Base.connection&.migration_context.present? ||
|
301
|
+
::ActiveRecord::Base.connection.migration_context.needs_migration?
|
302
|
+
true
|
303
|
+
end
|
304
|
+
rescue
|
305
|
+
true
|
306
|
+
end
|
307
|
+
end
|
292
308
|
end
|
293
309
|
end
|
294
310
|
end
|
data/lib/searls/auth/version.rb
CHANGED