module Sorcery::Model::ClassMethods
Attributes
sorcery_config[RW]
Protected Class Methods
inherited(subclass)
click to toggle source
Calls superclass method
# File lib/sorcery/model.rb, line 150 def self.inherited(subclass) subclass.class_eval do class << self attr_accessor :sorcery_config end end subclass.sorcery_config = sorcery_config super end
Public Instance Methods
authenticate(*credentials, &block)
click to toggle source
The default authentication method. Takes a username and password, Finds the user by the username and compares the user's password to the one supplied to the method. returns the user if success, nil otherwise.
# File lib/sorcery/model.rb, line 86 def authenticate(*credentials, &block) raise ArgumentError, 'at least 2 arguments required' if credentials.size < 2 if credentials[0].blank? return authentication_response(return_value: false, failure: :invalid_login, &block) end if @sorcery_config.downcase_username_before_authenticating credentials[0].downcase! end user = sorcery_adapter.find_by_credentials(credentials) unless user return authentication_response(failure: :invalid_login, &block) end set_encryption_attributes if user.respond_to?(:active_for_authentication?) && !user.active_for_authentication? return authentication_response(user: user, failure: :inactive, &block) end @sorcery_config.before_authenticate.each do |callback| success, reason = user.send(callback) unless success return authentication_response(user: user, failure: reason, &block) end end unless user.valid_password?(credentials[1]) return authentication_response(user: user, failure: :invalid_password, &block) end authentication_response(user: user, return_value: user, &block) end
encrypt(*tokens)
click to toggle source
encrypt tokens using current encryption_provider.
# File lib/sorcery/model.rb, line 125 def encrypt(*tokens) return tokens.first if @sorcery_config.encryption_provider.nil? set_encryption_attributes CryptoProviders::AES256.key = @sorcery_config.encryption_key @sorcery_config.encryption_provider.encrypt(*tokens) end
sorcery_config()
click to toggle source
Returns the class instance variable for configuration, when called by the class itself.
# File lib/sorcery/model.rb, line 78 def sorcery_config @sorcery_config end
Protected Instance Methods
add_config_inheritance()
click to toggle source
# File lib/sorcery/model.rb, line 148 def add_config_inheritance class_eval do def self.inherited(subclass) subclass.class_eval do class << self attr_accessor :sorcery_config end end subclass.sorcery_config = sorcery_config super end end end
authentication_response(options = {}) { |options, options| ... }
click to toggle source
# File lib/sorcery/model.rb, line 136 def authentication_response(options = {}) yield(options[:user], options[:failure]) if block_given? options[:return_value] end
set_encryption_attributes()
click to toggle source
# File lib/sorcery/model.rb, line 142 def set_encryption_attributes @sorcery_config.encryption_provider.stretches = @sorcery_config.stretches if @sorcery_config.encryption_provider.respond_to?(:stretches) && @sorcery_config.stretches @sorcery_config.encryption_provider.join_token = @sorcery_config.salt_join_token if @sorcery_config.encryption_provider.respond_to?(:join_token) && @sorcery_config.salt_join_token @sorcery_config.encryption_provider.pepper = @sorcery_config.pepper if @sorcery_config.encryption_provider.respond_to?(:pepper) && @sorcery_config.pepper end