Compare commits
4 commits
38a37137d0
...
03b3e18126
| Author | SHA1 | Date | |
|---|---|---|---|
| 03b3e18126 | |||
| cb89742f60 | |||
| 51cfbd5548 | |||
| 35f8c3f392 |
4 changed files with 23 additions and 7 deletions
13
vedia.rb
13
vedia.rb
|
|
@ -102,7 +102,7 @@ get '/signup' do
|
|||
end
|
||||
|
||||
post '/signup' do
|
||||
@user = User.create(email: params[:email])
|
||||
@user = User.create(email: params[:email].downcase.strip)
|
||||
@errors = []
|
||||
if params[:password].empty?
|
||||
@errors << OpenStruct.new(:attribute => :password, :type => :blank)
|
||||
|
|
@ -114,6 +114,7 @@ post '/signup' do
|
|||
@user.save
|
||||
session.clear
|
||||
session[:user_id] = @user.id
|
||||
session[:timezone] = params[:timezone]
|
||||
redirect '/'
|
||||
else
|
||||
erb :signup
|
||||
|
|
@ -125,7 +126,7 @@ get '/login' do
|
|||
end
|
||||
|
||||
post '/login' do
|
||||
user = User.find_by(email: params[:email])
|
||||
user = User.find_by(email: params[:email].downcase.strip)
|
||||
if user && verify_password(params[:password], user.password)
|
||||
if not user.reset.nil?
|
||||
user.reset = nil
|
||||
|
|
@ -134,7 +135,11 @@ post '/login' do
|
|||
session.clear
|
||||
session[:user_id] = user.id
|
||||
session[:timezone] = params[:timezone]
|
||||
if params[:r]
|
||||
redirect params[:r]
|
||||
else
|
||||
redirect '/'
|
||||
end
|
||||
else
|
||||
@error = _("Incorrect email or password.")
|
||||
erb :login
|
||||
|
|
@ -146,6 +151,7 @@ get '/reset' do
|
|||
end
|
||||
|
||||
post '/reset' do
|
||||
params[:email].downcase!.strip!
|
||||
logger.info "Password reset request for \"#{params[:email]}\""
|
||||
@errors = []
|
||||
if not params[:email] =~ URI::MailTo::EMAIL_REGEXP
|
||||
|
|
@ -598,10 +604,11 @@ helpers do
|
|||
end
|
||||
|
||||
def require_login
|
||||
redirect '/login' unless current_user
|
||||
redirect "/login?r=#{request.path}" unless current_user
|
||||
end
|
||||
|
||||
def require_admin
|
||||
require_login
|
||||
redirect '/' unless is_admin
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
<h1 class="mb-5"><%= _("Login") %></h1>
|
||||
|
||||
<% if @error %>
|
||||
<p class="alert alert-warning mb-4"><%= @error %></p>
|
||||
<div class="alert alert-warning mb-4">
|
||||
<p><%= @error %></p>
|
||||
<p class="mb-0"><a href="/reset"><%= _("Reset password") %></a></p>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
<form action="/login" name="login" method="post" class="mb-5">
|
||||
|
|
@ -13,11 +16,11 @@
|
|||
<label for="password" class="form-label"><%= _("Password") %></label>
|
||||
<input type="password" name="password" class="form-control">
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary"><%= _("Login") %></button>
|
||||
<input type="hidden" name="r" value="<%= @params[:r] %>">
|
||||
<input type="hidden" name="timezone" value="UTC">
|
||||
<button type="submit" class="btn btn-primary"><%= _("Login") %></button>
|
||||
</form>
|
||||
<p><a href="/signup"><%= _("Create account") %></a></p>
|
||||
<p><a href="/reset"><%= _("Reset password") %></a></p>
|
||||
|
||||
<script>
|
||||
document.login.timezone.value = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
||||
|
|
|
|||
|
|
@ -28,5 +28,10 @@
|
|||
<label for="password" class="form-label"><%= _("Password") %></label>
|
||||
<input type="password" name="password" value="<%= params[:password] %>" class="form-control">
|
||||
</div>
|
||||
<input type="hidden" name="timezone" value="UTC">
|
||||
<button type="submit" class="btn btn-primary"><%= _("Create account") %></button>
|
||||
</form>
|
||||
|
||||
<script>
|
||||
document.signup.timezone.value = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
<input type="password" name="password" class="form-control">
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary"><%= _("Login") %></button>
|
||||
<input type="hidden" name="r" value="votes/<%= @vote.secure_id %>">
|
||||
<input type="hidden" name="timezone" value="UTC">
|
||||
</form>
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue