Sha256: 202ab572932d4bbf84a1c5cdba7713bde8cbb5cafb3efb99b5015d71801c00ae

Contents?: true

Size: 1 KB

Versions: 5

Compression:

Stored size: 1 KB

Contents

module Sorcery
  module Model
    module Adapters
      module ActiveRecord
        def self.included(klass)
          klass.extend ClassMethods
        end

        module ClassMethods
          def find_by_credentials(credentials)
             sql = @sorcery_config.username_attribute_names.map{|attribute| "#{attribute} = :login"}
             where(sql.join(' OR '), :login => credentials[0]).first
          end

          def find_by_sorcery_token(token_attr_name, token)
            where("#{token_attr_name} = ?", token).first
          end

          def get_current_users
            config = sorcery_config
            where("#{config.last_activity_at_attribute_name} IS NOT NULL") \
            .where("#{config.last_logout_at_attribute_name} IS NULL OR #{config.last_activity_at_attribute_name} > #{config.last_logout_at_attribute_name}") \
            .where("#{config.last_activity_at_attribute_name} > ? ", config.activity_timeout.seconds.ago.utc.to_s(:db))
          end
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
sorcery-0.7.4 lib/sorcery/model/adapters/active_record.rb
sorcery-0.7.3 lib/sorcery/model/adapters/active_record.rb
sorcery-0.7.2 lib/sorcery/model/adapters/active_record.rb
sorcery-0.7.1 lib/sorcery/model/adapters/active_record.rb
sorcery-0.7.0 lib/sorcery/model/adapters/active_record.rb