Sha256: 5981b645b1f16d863f922525dab77be9294246f46e204167b2e69ece16ae3331

Contents?: true

Size: 636 Bytes

Versions: 4

Compression:

Stored size: 636 Bytes

Contents

require 'rubygems'
require 'bcrypt'

require 'csv'
require 'digest/md5'

module Murlsh

  class Auth

    def initialize(file)
      @file = file
    end

    def auth(password)
      CSV::Reader.parse(open(@file)) do |row|
        return { :name => row[0], :email => row[1] } if
          BCrypt::Password.new(row[2]) == password
      end
    end

    def add_user(username, email, password)
      open(@file, 'a') do |f|
        f.flock(File::LOCK_EX)
        f.write("#{[username, Digest::MD5.hexdigest(email),
          BCrypt::Password.create(password)].join(',')}\n")
        f.flock(File::LOCK_UN)
      end
    end

  end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
murlsh-0.2.4 lib/murlsh/auth.rb
murlsh-0.2.3 lib/murlsh/auth.rb
murlsh-0.2.2 lib/murlsh/auth.rb
murlsh-0.2.1 lib/murlsh/auth.rb