Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Warden::Strategies.add(:bcrypt) do
- def valid?
- params[:username] || params[:password]
- end
- def authenticate!
- return fail! unless user = User.first(:username => params[:username])
- if user.encrypted_password == params[:password]
- success!(user)
- else
- errors.add(:login, "Username or Password incorrect")
- fail!
- end
- end
- end
- ############ The user model
- class User < ActiveRecord::Base
- attr_accessor :password, :password_confirmation
- validates_present :encrypted_password
- validates_confirmation_of :password, :if => :password
- def password=(pass)
- @password = pass
- self.encrypted_password = pass.nil? ? nil : ::BCrypt::Password.create(pass)
- end
- def encrypted_password
- @encrypted_password ||= begin
- ep = read_attribute(encrypted_password)
- ep.nil? ? nil : ::BCrypt::Password.new(ep)
- end
- end
- end
- ################ DM
- class User
- attr_accessor :password, :password_confirmation
- include DataMapper::Resource
- property :id, Serial
- property :encrypted_password, BCryptHash, :nullable => false
- validates_is_confirmed :password
- def password=(pass)
- @password = pass
- self.encrypted_password = pass
- end
- end
Add Comment
Please, Sign In to add comment