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.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, :required => true
- property :password, String
- property :email, String
- end
- DataMapper.finalize
- DataMapper.auto_upgrade!
- DataMapper.auto_migrate!
- helpers do
- def logged_in?
- session['current_user']
- end
- def authenticate(username, password)
- @user = User.get(:username => username)
- if password == @user.password
- session['current_user'] = @user
- else
- session['current_user'] = nil
- end
- end
- end
- before do
- end
- get '/' do
- @title = 'Home'
- haml :index
- end
- post '/register' do
- @user = User.create(params[:user])
- flash[:notice] = "User created successfully."
- 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