From 7edb608c6ff7d742dbaa802893d5f2e9b8e35ff5 Mon Sep 17 00:00:00 2001
From: luandalmazo <luandalmazo@gmail.com>
Date: Thu, 4 Aug 2022 10:48:37 -0300
Subject: [PATCH] Issue #9: ADD task that confirm old emails

---
 app/controllers/v1/sessions_controller.rb       |  9 +++++++++
 app/models/user.rb                              |  1 +
 db/migrate/20220729140004_modify_users_table.rb | 13 +++++++++++++
 lib/tasks/access.rake                           | 13 +++++++++++++
 4 files changed, 36 insertions(+)
 create mode 100644 db/migrate/20220729140004_modify_users_table.rb
 create mode 100644 lib/tasks/access.rake

diff --git a/app/controllers/v1/sessions_controller.rb b/app/controllers/v1/sessions_controller.rb
index bbe5e9ec..741221ec 100644
--- a/app/controllers/v1/sessions_controller.rb
+++ b/app/controllers/v1/sessions_controller.rb
@@ -55,6 +55,15 @@ require 'open-uri'
       else
         render_create_error_bad_credentials
       end
+
+    end
+
+    def render_create_error_not_confirmed
+      render json: {
+        success: false,
+        errors: [ I18n.t("devise.failure.unconfirmed")],
+      }, status: 401
+       
     end
 
     def render_create_error_banished
diff --git a/app/models/user.rb b/app/models/user.rb
index bc367036..72862a14 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -539,4 +539,5 @@ class User < ApplicationRecord
 
   def complaint_reject(params)
   end
+
 end
diff --git a/db/migrate/20220729140004_modify_users_table.rb b/db/migrate/20220729140004_modify_users_table.rb
new file mode 100644
index 00000000..d77eaad8
--- /dev/null
+++ b/db/migrate/20220729140004_modify_users_table.rb
@@ -0,0 +1,13 @@
+class ModifyUsersTable < ActiveRecord::Migration[7.0]
+  def change
+    change_table(:users) do |t|
+  
+      ## 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
+
+    end
+  end
+
+end
diff --git a/lib/tasks/access.rake b/lib/tasks/access.rake
new file mode 100644
index 00000000..78f2b993
--- /dev/null
+++ b/lib/tasks/access.rake
@@ -0,0 +1,13 @@
+namespace :access do
+    desc 'Check when all users was created, and give access to them if they were created before a certain date'
+    base_date = Date.new(2022, 7, 20)
+    
+    task :confirm_old_emails => :environment do
+        User.all.each do |user|
+            if user.created_at < base_date
+                user.update_attribute(:email_confirmed, true)
+            end
+
+        end
+    end
+end
\ No newline at end of file
-- 
GitLab