Sha256: 5711de335a7158ac9ee98b533c05fb793d366cd42e70e41325bfd352ec2251ce
Contents?: true
Size: 1.57 KB
Versions: 2
Compression:
Stored size: 1.57 KB
Contents
require "mini_auth/version" require "bcrypt" module MiniAuth extend ActiveSupport::Concern BASIC_ATTRIBUTES = [ :password, :password_confirmation, :current_password, :new_password, :new_password_confirmation ] included do attr_accessor :changing_password, :setting_password attr_accessor *BASIC_ATTRIBUTES attr_accessible *BASIC_ATTRIBUTES validates :password, :new_password, :confirmation => true if respond_to?(:attributes_protected_by_default) def self.attributes_protected_by_default super + [ 'password_digest', 'changing_password', 'setting_password' ] end end validate do if changing_password? unless authenticate(current_password) errors.add(:current_password, :invalid) end if new_password.blank? errors.add(:new_password, :blank) end elsif setting_password? if password.blank? errors.add(:password, :blank) end end end after_validation do if changing_password? self.password_digest = BCrypt::Password.create(new_password) elsif setting_password? self.password_digest = BCrypt::Password.create(password) end end after_save do self.password = nil end end def authenticate(raw_password) if password_digest && BCrypt::Password.new(password_digest) == raw_password self else false end end def changing_password? !!changing_password end def setting_password? !!setting_password end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
mini_auth-0.2.0 | lib/mini_auth.rb |
mini_auth-0.2.0.beta | lib/mini_auth.rb |