Class: Searls::Auth::ResetsPassword

Inherits:
Object
  • Object
show all
Defined in:
lib/searls/auth/resets_password.rb

Defined Under Namespace

Classes: Result

Instance Method Summary collapse

Instance Method Details

#reset(user:, password:, password_confirmation:) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/searls/auth/resets_password.rb', line 6

def reset(user:, password:, password_confirmation:)
  configuration = Searls::Auth.config

  if password.blank?
    message = configuration.resolve(:flash_error_after_password_reset_password_blank, {})
    return Result.new(success?: false, errors: Array(message), user: user)
  end

  if password != password_confirmation
    message = configuration.resolve(:flash_error_after_password_reset_password_mismatch, {})
    return Result.new(success?: false, errors: Array(message), user: user)
  end

  configuration.password_setter.call(user, password)
  if user.respond_to?(:password_confirmation=)
    user.password_confirmation = password_confirmation
  end

  if user.save
    configuration..call(user)
    Result.new(success?: true, user: user, errors: [])
  else
    Result.new(success?: false, user: user, errors: simplified_error_messages(user))
  end
end