- Add confirmable and lockable modules to user model - Update error messages display with improved UI - Modify navbar links for better accessibility and styling - Add unique indexes for confirmation and unlock tokens in migration These changes improve user management and user experience by adding features for account activation and security, along with styling enhancements for the authentication views.
48 lines
1.4 KiB
Ruby
48 lines
1.4 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
class DeviseCreateUsers < ActiveRecord::Migration[8.0]
|
|
def change
|
|
create_table :users do |t|
|
|
## Database authenticatable
|
|
t.string :email, null: false, default: ""
|
|
t.string :encrypted_password, null: false, default: ""
|
|
|
|
## Recoverable
|
|
t.string :reset_password_token
|
|
t.datetime :reset_password_sent_at
|
|
|
|
## Rememberable
|
|
t.datetime :remember_created_at
|
|
|
|
## Trackable
|
|
t.integer :sign_in_count, default: 0, null: false
|
|
t.datetime :current_sign_in_at
|
|
t.datetime :last_sign_in_at
|
|
t.string :current_sign_in_ip
|
|
t.string :last_sign_in_ip
|
|
|
|
## Confirmable
|
|
t.string :confirmation_token
|
|
t.datetime :confirmed_at
|
|
t.datetime :confirmation_sent_at
|
|
t.string :unconfirmed_email # Only if using reconfirmable
|
|
|
|
## Lockable
|
|
t.integer :failed_attempts, default: 0, null: false # Only if lock strategy is :failed_attempts
|
|
t.string :unlock_token # Only if unlock strategy is :email or :both
|
|
t.datetime :locked_at
|
|
|
|
## Admin
|
|
t.boolean :admin, default: false
|
|
|
|
|
|
t.timestamps null: false
|
|
end
|
|
|
|
add_index :users, :email, unique: true
|
|
add_index :users, :reset_password_token, unique: true
|
|
add_index :users, :confirmation_token, unique: true
|
|
add_index :users, :unlock_token, unique: true
|
|
end
|
|
end
|