master
1class PasswordReset
2 def self.send_reset_instructions_to(email)
3 user = User.find_by(email: email)
4 return if user.nil?
5 user.update(reset_password_token: SecureRandom.hex(32), reset_password_sent_at: DateTime.now)
6 PasswordResetMailer.send_password_reset_instructions_to(user).deliver_later
7 end
8
9 def self.reset(reset_token, new_password)
10 user = User.find_by(reset_password_token: reset_token)
11 return if user.nil?
12 if user.change_password(new_password)
13 user.update(reset_password_token: nil, reset_password_sent_at: nil)
14 end
15 user
16 end
17end