Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require 'rubygems'
- require 'sinatra'
- require 'haml'
- require 'data_mapper'
- require 'rack-flash'
- DataMapper::Logger.new($stdout, :debug)
- DataMapper.setup(:default, "sqlite://#{Dir.pwd}/database.db")
- enable :sessions
- use Rack::Flash
- class User
- include DataMapper::Resource
- property :id, Serial
- property :username, String, :unique => true
- property :password, String, :required => true
- end
- DataMapper.finalize
- DataMapper.auto_upgrade!
- DataMapper.auto_migrate!
- helpers do
- def logged_in?
- session[:user_id]
- end
- def authenticate(username, password)
- @current_user = User.first(:username => username)
- if password == @current_user.password
- session[:user_id] = @current_user.id
- else
- session[:user_id] = nil
- end
- end
- end
- before do
- @first_user = User.first_or_create(:username => 'seth', :password => 'flounder')
- end
- get '/' do
- @title = 'Home'
- @all_users = User.all
- haml :index
- end
- post '/register' do
- @user = User.create(:username => params[:username], :password => params[:password])
- if @user.save
- flash[:notice] = "User created successfully."
- else
- flash[:error] = "Error creating user."
- end
- redirect '/'
- end
- post '/login' do
- authenticate(params[:username], params[:password])
- if logged_in?
- flash[:notice] = "Logged in successfully!"
- else
- flash[:error] = "Invalid login info."
- end
- redirect '/'
- end
Add Comment
Please, Sign In to add comment