Sha256: 421bb7001edd562bc7969d324d935e105b7c91f08282adcb8c467de0d7103259

Contents?: true

Size: 1.85 KB

Versions: 2

Compression:

Stored size: 1.85 KB

Contents

# frozen_string_literal: true

module DeviseSecurity
  # add schema helper for migrations
  module Schema
    # Add password_changed_at columns in the resource's database table.
    #
    # Examples
    #
    # # For a new resource migration:
    # create_table :the_resources do |t|
    #   t.password_expirable
    # ...
    # end
    #
    # # or if the resource's table already exists, define a migration and put this in:
    # change_table :the_resources do |t|
    #   t.datetime :password_changed_at
    # end
    #
    def password_expirable
      apply_devise_schema :password_changed_at, DateTime
    end

    # Add password_archivable columns
    #
    # Examples
    #
    # create_table :old_passwords do
    #   t.password_archivable
    # end
    # add_index :old_passwords, [:password_archivable_type, :password_archivable_id], name: :index_password_archivable
    #
    def password_archivable
      apply_devise_schema :encrypted_password, String, limit: 128, null: false
      apply_devise_schema :password_salt, String
      apply_devise_schema :password_archivable_id, Integer, null: false
      apply_devise_schema :password_archivable_type, String, null: false
      apply_devise_schema :created_at, DateTime
    end

    # Add session_limitable columns in the resource's database table.
    #
    # Examples
    #
    # # For a new resource migration:
    # create_table :the_resources do |t|
    #   t.session_limitable
    # ...
    # end
    #
    # # or if the resource's table already exists, define a migration and put this in:
    # change_table :the_resources do |t|
    #   t.string :unique_session_id, limit: 20
    # end
    #
    def session_limitable
      apply_devise_schema :unique_session_id, String, limit: 20
    end

    def expirable
      apply_devise_schema :expired_at, DateTime
      apply_devise_schema :last_activity_at, DateTime
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
devise-security-0.14.0.rc1 lib/devise-security/schema.rb
devise-security-0.13.0 lib/devise-security/schema.rb