Module: Devise::Models::CastleProtectable

Extended by:
ActiveSupport::Concern
Defined in:
lib/castle_devise/models/castle_protectable.rb

Overview

This module contains methods that will be included in your Devise model when you include the castle_protectable Devise module.

Configuration:

castle_hooks: configures which events trigger Castle API calls
  {
    after_login: true, # trigger risk($login) and log($login, $failed),
    before_registration: true, # trigger filter($registration)
    after_password_reset_request: true, # trigger log($password_reset_request, $succeeded)
                                        # and log($password_reset_request, $failed)
    profile_update: true # trigger risk($profile_update, $attempted),
                         # log($profile_update, $succeeded)
                         # and log($profile_update, $failed)
  }

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#castle_idString?

Returns ID used for sending requests to Castle.

Returns:

  • (String, nil)

    ID used for sending requests to Castle



28
29
30
# File 'lib/castle_devise/models/castle_protectable.rb', line 28

def castle_id
  id&.to_s
end

#castle_nameString?

This method is meant to be overridden with a human-readable username that will be shown on the Castle Dashboard.

Examples:

class User
  devise :castle_protectable,
         :confirmable,
         :database_authenticatable,
         :registerable,
         :rememberable,
         :validatable

  def castle_name
    [first_name, last_name].join(' ').strip
  end
end

Returns:

  • (String, nil)


74
75
76
# File 'lib/castle_devise/models/castle_protectable.rb', line 74

def castle_name
  nil
end

#castle_traitsHash

Returns additional traits that will be sent to Castle.

Examples:

class User
  belongs_to :company

  devise :castle_protectable,
         :confirmable,
         :database_authenticatable,
         :registerable,
         :rememberable,
         :validatable

  def castle_traits
    {
      company_name: company.name
    }
  end
end

Returns:

  • (Hash)

    additional traits that will be sent to Castle



52
53
54
# File 'lib/castle_devise/models/castle_protectable.rb', line 52

def castle_traits
  {}
end