mirror of
https://github.com/discourse/discourse.git
synced 2024-11-30 04:43:43 +08:00
82383ea776
This commit updates the `UserPasswordExpirer.expire_user_password` method to update `UserPassword#password_expired_at` when an existing `UserPassword` record exists with the same `password_salt`, `password_hash` and `password_algorithm`. This is to prevent the unique validation error on `UserPassword#user_id` and `UserPassword#password_hash` from being raised when the method is called twice for a user that has not changed its password.
16 lines
367 B
Ruby
16 lines
367 B
Ruby
# frozen_string_literal: true
|
|
|
|
class UserPasswordExpirer
|
|
def self.expire_user_password(user)
|
|
UserPassword
|
|
.where(
|
|
user:,
|
|
password_hash: user.password_hash,
|
|
password_salt: user.salt,
|
|
password_algorithm: user.password_algorithm,
|
|
)
|
|
.first_or_initialize
|
|
.update!(password_expired_at: Time.zone.now)
|
|
end
|
|
end
|