neocities/app.rb
2013-05-25 13:57:17 -07:00

67 lines
No EOL
1.1 KiB
Ruby

require './environment.rb'
get '/' do
slim :index
end
get '/new' do
@site = Site.new
slim :'new'
end
get '/dashboard' do
slim :'dashboard'
end
get '/signin' do
slim :'signin'
end
post '/create' do
@site = Site.new username: params[:username], password: params[:password], email: params[:email]
if @site.valid?
@server = Server.with_slots_available
if @server.nil?
raise 'no slots available'
end
@site.server = @server
@site.save
session[:username] = @site.username
redirect '/dashboard'
else
slim :'/new'
end
end
post '/signin' do
if Site.valid_login? params[:username], params[:password]
session[:username] = params[:username]
redirect '/dashboard'
else
flash[:error] = 'Invalid login.'
redirect '/signin'
end
end
get '/signout' do
require_login
session[:username] = nil
session[:timezone] = nil
redirect '/'
end
def dashboard_if_signed_in
redirect '/dashboard' if signed_in?
end
def require_login
redirect '/' unless signed_in?
end
def signed_in?
!session[:username].nil?
end