29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
# File 'lib/entrance/addons/sinatra.rb', line 29
def self.registered(app)
app.send(:include, ::Entrance::Controller)
app.get '/login' do
if logged_in?
redirect(to('/'))
else
erb :'public/login'
end
end
app.post '/login' do
remember = ['on', 'true', '1'].include?(params[:remember])
if params[:username].blank? or params[:password].blank?
redirect_with('/login', :error, "Both fields are required.")
elsif user = authenticate_and_login(params[:username], params[:password], remember)
flash[:success] = 'Welcome back!'
redirect_to_stored_or(to('/'))
else
redirect_with('/login', :error, "Couldn't log you in. Please try again.")
end
end
app.get '/logout' do
logout!
redirect_with('/login', :notice, 'Logged out! See you soon.')
end
app.get '/signup' do
return redirect(to('/')) if logged_in?
@user = ::Entrance.model.new
erb :'public/signup'
end
app.post '/signup' do
@user = ::Entrance.model.new(params[:user])
if @user.valid? && @user.save
redirect_with('/login', :success, "Account created! Please sign in to continue.")
else
flash[:error] = "Couldn't sign you up. Please try again."
erb :'public/signup'
end
end
end
|