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