Guest User

Untitled

a guest
Nov 2nd, 2017
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.32 KB | None | 0 0
  1. get '/new_user' do
  2. erb :new_user
  3. end
  4.  
  5. post '/new_user' do
  6.  
  7. if @password == @password_confirm
  8. new_user = User.new(username: params[:username])
  9. new_user.password = params[:password]
  10. new_user.insert_user
  11. redirect '/index'
  12. else
  13. redirect '/new_user'
  14. end
  15. end
  16.  
  17. def initialize(params = {})
  18. @username = params.fetch(:username, "test")
  19. @password = params.fetch(:password, "test")
  20. end
  21.  
  22. def password=(new_password)
  23. @password = BCrypt::Password.create(new_password)
  24. @db_password = BCrypt::Password.new(@password)
  25. end
  26.  
  27. def insert_user
  28. db = SQLite3::Database.open("helper_database")
  29. db_results_as_hash = true
  30. db.execute("INSERT INTO users (username, password) VALUES (?,?)", [@username, @db_password])
  31. end
  32.  
  33. get '/login' do
  34. erb :login
  35. end
  36.  
  37. post '/login' do
  38. @user = User.new(username: params[:username], password: params[:password])
  39. if @user.authenticate()
  40. redirect '/index'
  41. else
  42. erb :login
  43. end
  44. end
  45.  
  46. def authenticate
  47. db = SQLite3::Database.open("helper_database")
  48. db.results_as_hash = true
  49. password = db.execute("SELECT password FROM users WHERE username = '#{@username}'")
  50. password = password[0]["password"]
  51. password = BCrypt::Password.new(password)
  52. @password == password
  53. end
Add Comment
Please, Sign In to add comment