Module: Devise::Models::ImageAuthenticatable

Extended by:
ActiveSupport::Concern
Defined in:
lib/image_authentication/models/image_authenticatable.rb

Defined Under Namespace

Modules: ClassMethods

Constant Summary collapse

Categories =
[
  'Aeroplanes',
  'Beverages',
  'Bicycles',
  'Birds',
  'Boats',
  'Cars',
  'Cats',
  'Clocks',
  'Dogs',
  'Fish',
  'Flowers',
  'Food',
  'Furniture',
  'Houses',
  'Insects',
  'Money',
  'People',
  'Shoes',
  'Telephones',
  'Trains'
]

Instance Method Summary collapse

Instance Method Details

#all_auth_categoriesObject



49
50
51
# File 'lib/image_authentication/models/image_authenticatable.rb', line 49

def all_auth_categories
  Categories.shuffle[0..self.class.number_of_categories]
end

#auth_categoriesObject



39
40
41
# File 'lib/image_authentication/models/image_authenticatable.rb', line 39

def auth_categories
  Categories.reject { |c| ((auth_categories_mask || 0 ) & 2**Categories.index(c)).zero? }
end

#auth_categories=(categories) ⇒ Object



35
36
37
# File 'lib/image_authentication/models/image_authenticatable.rb', line 35

def auth_categories=(categories)
  self.auth_categories_mask = (categories & Categories).map { |c| 2**Categories.index(c) }.sum
end

#max_login_attempts?Boolean

Returns:

  • (Boolean)


53
54
55
# File 'lib/image_authentication/models/image_authenticatable.rb', line 53

def 
  self.class.lock_after_failed_attempts && (failed_attempts >= self.class.maximum_attempts)
end

#valid_images?(categories) ⇒ Boolean

Returns:

  • (Boolean)


43
44
45
46
47
# File 'lib/image_authentication/models/image_authenticatable.rb', line 43

def valid_images?(categories)
  return false if categories.nil?

  (categories - auth_categories).empty?
end