Validate email address

This commit is contained in:
ricola 2025-12-04 17:41:28 -06:00
parent 55a5801da4
commit e4df728a04
2 changed files with 28 additions and 12 deletions

View file

@ -136,6 +136,13 @@ get '/reset' do
end end
post '/reset' do post '/reset' do
@errors = []
unless params[:email] =~ URI::MailTo::EMAIL_REGEXP
@errors << OpenStruct.new(:attribute => :email, :type => :invalid)
end
if not @errors.empty?
erb :reset
else
@user = User.find_by(email: params[:email]) @user = User.find_by(email: params[:email])
if @user if @user
@reset = SecureRandom.uuid @reset = SecureRandom.uuid
@ -150,6 +157,7 @@ post '/reset' do
end end
erb :reset_sent erb :reset_sent
end end
end
get '/reset/:uuid' do get '/reset/:uuid' do
@user = nil @user = nil

View file

@ -1,5 +1,13 @@
<h1 class="mb-5"><%= _("Reset password") %></h1> <h1 class="mb-5"><%= _("Reset password") %></h1>
<% if @errors %>
<% @errors.each do |error| %>
<% if error.attribute == :email and error.type == :invalid %>
<p class="alert alert-warning mb-4"><%= _("Enter an email address.") %></p>
<% end %>
<% end %>
<% end %>
<form action="/reset" method="post"> <form action="/reset" method="post">
<div class="mb-3"> <div class="mb-3">
<label for="email" class="form-label"><%= _("Email") %></label> <label for="email" class="form-label"><%= _("Email") %></label>