Guest User

Untitled

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