Mereset Password (Forgot Password)
Mereset Passwort atau Biasa kita sebut Forgot Password, ini biasa digunakan saat kita kehilangan password kita, maka sistem akan membuatkan password kita yang akan di kirimkan ke email kita, caranya, bisa diikuti langkah langkah berikut dengan asumsi setting email udah di lakukan :
pada view :
forgot.html
<% form_for :user do |f| -%>
<table id=”newedit”>
<thead>
<tr>
<th colspan=”2″ >Request link to reset password</th>
</tr>
</thead>
<tbody>
<tr>
<td align=”right”><label>Email:</label></td>
<td><%= f.text_field :email %></td>
</tr>
<tr>
<td></td>
<td><%= submit_tag ‘Submit’ %></td>
</tr>
</tbody>
</table>
<% end -%>
Pada Controller :
def forgot
if request.post?
re = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/
user = User.find_by_email(params[:user][:email])
@new_password = generate_password(20)
if params[:user][:email] != “” && re.match(params[:user][:email]) && user
user.password = @new_password
if UserMailer.deliver_forgot_password(user)
user.update_attribute(:password, @new_password)
flash[:notice] = “Sudah terupdate”
end
end
end
end
private
def generate_password(length)
chars = ‘abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNOPQRSTUVWXYZ23456789′
password = ”
length.times { |i| password << chars[rand(chars.length)] }
password
end




