Class: Foobara::Auth::ResetPassword
- Inherits:
-
Command
- Object
- Command
- Foobara::Auth::ResetPassword
show all
- Defined in:
- foobara-auth-0.1.1/src/reset_password.rb
Defined Under Namespace
Classes: BothPasswordResetTokenAndOldPasswordGivenError, IncorrectOldPasswordError, InvalidResetPasswordTokenError, NoPasswordResetTokenOrOldPasswordGivenError, UserNotFoundForResetTokenError, UserNotGivenError
Constant Summary
TruncatedInspect::MAX_LENGTH
Instance Attribute Summary collapse
Instance Method Summary
collapse
Methods inherited from Command
install!
#inspect, truncating
Methods included from Concern
foobara_class_methods_module_for, foobara_concern?, included
Instance Attribute Details
#password_secret ⇒ Object
Returns the value of attribute password_secret.
74
75
76
|
# File 'src/reset_password.rb', line 74
def password_secret
@password_secret
end
|
#reset_password_token_record ⇒ Object
Returns the value of attribute reset_password_token_record.
74
75
76
|
# File 'src/reset_password.rb', line 74
def reset_password_token_record
@reset_password_token_record
end
|
#user ⇒ Object
110
111
112
|
# File 'src/reset_password.rb', line 110
def user
@user || inputs[:user]
end
|
Instance Method Details
#build_new_password ⇒ Object
114
115
116
|
# File 'src/reset_password.rb', line 114
def build_new_password
self.password_secret = run_subcommand!(BuildSecret, secret: new_password)
end
|
#execute ⇒ Object
TODO: should we enforce certain password requirements?
45
46
47
48
49
50
51
52
53
54
55
56
57
|
# File 'src/reset_password.rb', line 45
def execute
if old_password_given?
verify_old_password
else
verify_and_use_up_password_reset_token
load_user
end
build_new_password
set_password_on_user
user
end
|
#load_user ⇒ Object
102
103
104
105
106
107
108
|
# File 'src/reset_password.rb', line 102
def load_user
self.user = Types::User.that_owns(reset_password_token_record, "reset")
unless user
add_runtime_error(UserNotFoundForResetTokenError)
end
end
|
#old_password_given? ⇒ Boolean
77
78
79
|
# File 'src/reset_password.rb', line 77
def old_password_given?
!!old_password
end
|
#reset_password_token_given? ⇒ Boolean
81
82
83
|
# File 'src/reset_password.rb', line 81
def reset_password_token_given?
!!reset_password_token_secret
end
|
#set_password_on_user ⇒ Object
118
119
120
|
# File 'src/reset_password.rb', line 118
def set_password_on_user
user.password_secret = password_secret
end
|
#verify_and_use_up_password_reset_token ⇒ Object
91
92
93
94
95
96
97
98
99
100
|
# File 'src/reset_password.rb', line 91
def verify_and_use_up_password_reset_token
verified_result = run_subcommand!(VerifyToken, token_string: reset_password_token_secret)
unless verified_result[:verified]
add_runtime_error(InvalidResetPasswordTokenError)
end
self.reset_password_token_record = verified_result[:token_record]
reset_password_token_record.use_up!
end
|
#verify_old_password ⇒ Object
85
86
87
88
89
|
# File 'src/reset_password.rb', line 85
def verify_old_password
unless run_subcommand!(VerifyPassword, user:, plaintext_password: old_password)
add_runtime_error(IncorrectOldPasswordError)
end
end
|