From 11f99bf1e3fbd6c4f5770431437bf24fa6aa82c8 Mon Sep 17 00:00:00 2001 From: luandalmazo <luandalmazo@gmail.com> Date: Fri, 5 Aug 2022 09:09:29 -0300 Subject: [PATCH] Issue #10: FIX email confirmation --- app/controllers/v1/sessions_controller.rb | 9 +++------ app/models/user.rb | 5 +++++ lib/tasks/access.rake | 1 + 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/app/controllers/v1/sessions_controller.rb b/app/controllers/v1/sessions_controller.rb index ff474f08..dd672999 100644 --- a/app/controllers/v1/sessions_controller.rb +++ b/app/controllers/v1/sessions_controller.rb @@ -66,13 +66,10 @@ require 'open-uri' #in case of the user is not confirmed, find the user and send an email confirmation else - @user = User.find_by_email(params[:email]) - UserMailer.email_confirmation(@user).deliver_now return render_create_error_not_confirmed end else - puts("Usuário não encontrado") return render_create_error_bad_credentials end @@ -82,7 +79,7 @@ require 'open-uri' render json: { success: false, errors: [ I18n.t("devise.failure.unconfirmed")], - }, status: 401 + }, status: 417 end @@ -90,7 +87,7 @@ require 'open-uri' render json: { success: false, errors: [ I18n.t("devise.sessions.banished")] - }, status: 401 + }, status: 406 end def render_create_error_blocked @@ -98,7 +95,7 @@ require 'open-uri' success: false, errors: [ I18n.t("devise.sessions.blocked")], avaliable_at: @resource.reactivated_at - }, status: 401 + }, status: 406 end def reactivate_user? diff --git a/app/models/user.rb b/app/models/user.rb index ecc3970b..dac3fd87 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -139,6 +139,7 @@ class User < ApplicationRecord after_create :default_role before_save :verify_teacher_id after_save :verify_dspace_info + before_create :send_email_confirmation before_destroy :delete_index after_update :create_actions @@ -167,6 +168,10 @@ class User < ApplicationRecord # don't versionate frequently changed fields has_paper_trail ignore: [:tokens, :sign_in_count, :current_sign_in_at, :last_sign_in_at] + def send_email_confirmation + UserMailer.email_confirmation(self).deliver_now + end + def email_activate self.email_confirmed = true self.confirm_token = nil diff --git a/lib/tasks/access.rake b/lib/tasks/access.rake index 78f2b993..be9ca3a7 100644 --- a/lib/tasks/access.rake +++ b/lib/tasks/access.rake @@ -6,6 +6,7 @@ namespace :access do User.all.each do |user| if user.created_at < base_date user.update_attribute(:email_confirmed, true) + user.update_attribute(:confirmed_at, Time.now) end end -- GitLab