Sha256: fcb4ec02723eb705fdd171a65357751a456df9ac4a61db968aed80b1026df6b0
Contents?: true
Size: 1.36 KB
Versions: 25
Compression:
Stored size: 1.36 KB
Contents
# -*- encoding : utf-8 -*- class Card # Singleton methods for account authentication and contextualization. # # Manages current user, # "as" user, and password verification. module Auth extend Permissions extend Proxy extend Setup extend Current extend Token class << self # authenticate a user by their login name and unencrypted password. # @param email [String] # @param password [String] # @return [+*account card, nil] def authenticate email, password account = Auth.find_account_by_email email case when !account then nil when !account.active? then nil when Card.config.no_authentication then account when password_valid?(account, password.strip) then account end end # check whether password is correct for account card # @param account [+*account card] # @param password [String] def password_valid? account, password account.password == encrypt(password, account.salt) end # encrypt password string with the given salt. # @return [SHA1 String] def encrypt password, salt Digest::SHA1.hexdigest "#{salt}--#{password}--" end def serialize { as_id: as_id, current_id: current_id } end end end end
Version data entries
25 entries across 25 versions & 1 rubygems