diff --git a/vedia.rb b/vedia.rb index e641ded..cd83c2e 100644 --- a/vedia.rb +++ b/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] - redirect '/' + 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 diff --git a/views/login.erb b/views/login.erb index 5af0607..e7fed26 100644 --- a/views/login.erb +++ b/views/login.erb @@ -1,7 +1,10 @@
<%= @error %>
+<%= @error %>
+ +