Guest User

Untitled

a guest
Dec 10th, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.18 KB | None | 0 0
  1. require 'rubygems'
  2. require 'sinatra'
  3. require 'haml'
  4. require 'data_mapper'
  5. require 'rack-flash'
  6.  
  7. DataMapper.setup(:default, "sqlite://#{Dir.pwd}/database.db")
  8.  
  9. enable :sessions
  10. use Rack::Flash
  11.  
  12. class User
  13. include DataMapper::Resource
  14.  
  15. property :id, Serial
  16. property :username, String, :unique => true, :required => true
  17. property :password, String
  18. property :email, String
  19. end
  20.  
  21. DataMapper.finalize
  22. DataMapper.auto_upgrade!
  23. DataMapper.auto_migrate!
  24.  
  25. helpers do
  26. def logged_in?
  27. session['current_user']
  28. end
  29.  
  30. def authenticate(username, password)
  31. @user = User.get(:username => username)
  32. if password == @user.password
  33. session['current_user'] = @user
  34. else
  35. session['current_user'] = nil
  36. end
  37. end
  38. end
  39.  
  40. before do
  41.  
  42. end
  43.  
  44. get '/' do
  45. @title = 'Home'
  46. haml :index
  47. end
  48.  
  49. post '/register' do
  50. @user = User.create(params[:user])
  51. flash[:notice] = "User created successfully."
  52. redirect '/'
  53. end
  54.  
  55. post '/login' do
  56. authenticate(params[:username], params[:password])
  57. if logged_in?
  58. flash[:notice] = "Logged in successfully!"
  59. else
  60. flash[:error] = "Invalid login info."
  61. end
  62. redirect '/'
  63. end
Add Comment
Please, Sign In to add comment