Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- get '/new_user' do
- erb :new_user
- end
- post '/new_user' do
- if @password == @password_confirm
- new_user = User.new(username: params[:username])
- new_user.password = params[:password]
- new_user.insert_user
- redirect '/index'
- else
- redirect '/new_user'
- end
- end
- def initialize(params = {})
- @username = params.fetch(:username, "test")
- @password = params.fetch(:password, "test")
- end
- def password=(new_password)
- @password = BCrypt::Password.create(new_password)
- @db_password = BCrypt::Password.new(@password)
- end
- def insert_user
- db = SQLite3::Database.open("helper_database")
- db_results_as_hash = true
- db.execute("INSERT INTO users (username, password) VALUES (?,?)", [@username, @db_password])
- end
- get '/login' do
- erb :login
- end
- post '/login' do
- @user = User.new(username: params[:username], password: params[:password])
- if @user.authenticate()
- redirect '/index'
- else
- erb :login
- end
- end
- def authenticate
- db = SQLite3::Database.open("helper_database")
- db.results_as_hash = true
- password = db.execute("SELECT password FROM users WHERE username = '#{@username}'")
- password = password[0]["password"]
- password = BCrypt::Password.new(password)
- @password == password
- end
Add Comment
Please, Sign In to add comment