From 2a62e7000b1a6156409e0ed46b8435cbcfd5c0bf Mon Sep 17 00:00:00 2001
From: ArtOfCode- <hello@artofcode.co.uk>
Date: Sun, 17 May 2020 12:00:40 +0100
Subject: [PATCH] Add confirmable emails

---
 app/models/user.rb                               |  2 +-
 .../20200517105207_add_confirmable_to_devise.rb  | 16 ++++++++++++++++
 db/schema.rb                                     |  7 ++++++-
 3 files changed, 23 insertions(+), 2 deletions(-)
 create mode 100644 db/migrate/20200517105207_add_confirmable_to_devise.rb

diff --git a/app/models/user.rb b/app/models/user.rb
index 2d33ebc3c..fb0e7148f 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -3,7 +3,7 @@
 class User < ApplicationRecord
   # Include default devise modules. Others available are:
   # :confirmable, :lockable, :timeoutable and :omniauthable
-  devise :database_authenticatable, :registerable,
+  devise :database_authenticatable, :registerable, :confirmable,
          :recoverable, :rememberable, :trackable, :validatable
 
   has_many :posts, dependent: :destroy
diff --git a/db/migrate/20200517105207_add_confirmable_to_devise.rb b/db/migrate/20200517105207_add_confirmable_to_devise.rb
new file mode 100644
index 000000000..c1a534792
--- /dev/null
+++ b/db/migrate/20200517105207_add_confirmable_to_devise.rb
@@ -0,0 +1,16 @@
+class AddConfirmableToDevise < ActiveRecord::Migration[5.2]
+  def up
+    add_column :users, :confirmation_token, :string
+    add_column :users, :confirmed_at, :datetime
+    add_column :users, :confirmation_sent_at, :datetime
+    add_column :users, :unconfirmed_email, :string
+    add_index :users, :confirmation_token, unique: true
+
+    User.update_all confirmed_at: DateTime.now
+  end
+
+  def down
+    remove_columns :users, :confirmation_token, :confirmed_at, :confirmation_sent_at
+    remove_columns :users, :unconfirmed_email
+  end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 8eaa2d1eb..f023d65a2 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -10,7 +10,7 @@
 #
 # It's strongly recommended that you check this file into your version control system.
 
-ActiveRecord::Schema.define(version: 2020_05_16_162625) do
+ActiveRecord::Schema.define(version: 2020_05_17_105207) do
 
   create_table "active_storage_attachments", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci", force: :cascade do |t|
     t.string "name", null: false
@@ -354,6 +354,11 @@ ActiveRecord::Schema.define(version: 2020_05_16_162625) do
     t.datetime "login_token_expires_at"
     t.string "two_factor_token"
     t.boolean "enabled_2fa", default: false
+    t.string "confirmation_token"
+    t.datetime "confirmed_at"
+    t.datetime "confirmation_sent_at"
+    t.string "unconfirmed_email"
+    t.index ["confirmation_token"], name: "index_users_on_confirmation_token", unique: true
     t.index ["email"], name: "index_users_on_email", unique: true
     t.index ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true
     t.index ["username"], name: "index_users_on_username"
-- 
GitLab