-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathuser.rb
40 lines (31 loc) · 789 Bytes
/
user.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
require 'bundler/setup'
require 'sinatra/base'
require 'bcrypt'
class User < Sinatra::Base
include BCrypt
if test?
set :sessions, false
else
set :sessions, true
end
get '/logout' do
session[:user] = nil
redirect '/login?messages=You have been logged out'
end
get '/login' do
haml "user/login".to_sym
end
get '/forgot_password' do
end
post '/login' do
user = DB[:users].first(:username => params[:username])
if user && Password.new(user[:password]) == params[:password]
session[:user] = user
session[:last_page_request] = Time.now()
page = params[:request_path].match(/\w/) ? params[:request_path] : '/'
redirect page
else
redirect '/login?errors=Incorrect username or password'
end
end
end