amelioration(User.mailer.notify_inactive_close_to_deletion): ajoute le mail pour prevenir de la suppression de compte
This commit is contained in:
parent
ea9c571a30
commit
2f28012324
5 changed files with 52 additions and 3 deletions
|
@ -67,7 +67,19 @@ class UserMailer < ApplicationMailer
|
||||||
mail(to: administrateur_or_instructeur.email, subject: subject)
|
mail(to: administrateur_or_instructeur.email, subject: subject)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def notify_inactive_close_to_deletion(user)
|
||||||
|
@user = user
|
||||||
|
@subject = "Votre compte sera supprimé dans #{ExpiredUsersDeletionService::RETENTION_AFTER_NOTICE_IN_WEEK} semaines"
|
||||||
|
|
||||||
|
mail(to: user.email, subject: @subject)
|
||||||
|
end
|
||||||
|
|
||||||
def self.critical_email?(action_name)
|
def self.critical_email?(action_name)
|
||||||
['france_connect_merge_confirmation', "new_account_warning", "ask_for_merge", "invite_instructeur"].include?(action_name)
|
[
|
||||||
|
'france_connect_merge_confirmation',
|
||||||
|
"new_account_warning",
|
||||||
|
"ask_for_merge",
|
||||||
|
"invite_instructeur"
|
||||||
|
].include?(action_name)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
class ExpiredUsersDeletionService
|
class ExpiredUsersDeletionService
|
||||||
RETENTION_AFTER_NOTICE = 2.weeks
|
RETENTION_AFTER_NOTICE_IN_WEEK = 2
|
||||||
|
|
||||||
def self.process_expired
|
def self.process_expired
|
||||||
delete_expired_users
|
delete_expired_users
|
||||||
|
@ -35,6 +35,6 @@ class ExpiredUsersDeletionService
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.expiring_user_notified
|
def self.expiring_user_notified
|
||||||
expiring_users.where.not(inactive_close_to_expiration_notice_sent_at: RETENTION_AFTER_NOTICE.ago..)
|
expiring_users.where.not(inactive_close_to_expiration_notice_sent_at: RETENTION_AFTER_NOTICE_IN_WEEK.weeks.ago..)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
- content_for(:title, @subject)
|
||||||
|
|
||||||
|
%p
|
||||||
|
Bonjour,
|
||||||
|
|
||||||
|
%p
|
||||||
|
Cela fait plus de deux ans que vous ne vous êtes pas connecté à #{APPLICATION_NAME}.
|
||||||
|
%br
|
||||||
|
Dans le respect du RGPD, nous allons
|
||||||
|
%strong supprimer votre compte d'ici #{distance_of_time_in_words(ExpiredUsersDeletionService::RETENTION_AFTER_NOTICE_IN_WEEK.weeks)}.
|
||||||
|
|
||||||
|
%p
|
||||||
|
%strong Ne vous en faites pas,
|
||||||
|
vos dossiers restent conservé par l'administration. À tout moment vous pourrez re-créer une compte sur notre plateforme.
|
||||||
|
%br
|
||||||
|
Mais dans l'attente, nous tenons a respecter le RGPD et protéger ainsi votre vie privée.
|
||||||
|
|
||||||
|
= render partial: "layouts/mailers/signature"
|
|
@ -29,6 +29,10 @@ class UserMailerPreview < ActionMailer::Preview
|
||||||
UserMailer.invite_gestionnaire(user, 'aedfa0d0', groupe_gestionnaire)
|
UserMailer.invite_gestionnaire(user, 'aedfa0d0', groupe_gestionnaire)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def notify_inactive_close_to_deletion
|
||||||
|
UserMailer.notify_inactive_close_to_deletion(user)
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def user
|
def user
|
||||||
|
|
|
@ -112,4 +112,19 @@ RSpec.describe UserMailer, type: :mailer do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe '.notify_inactive_close_to_deletion' do
|
||||||
|
subject { described_class.notify_inactive_close_to_deletion(user) }
|
||||||
|
|
||||||
|
it { expect(subject.to).to eq([user.email]) }
|
||||||
|
it { expect(subject.body).to include("Cela fait plus de deux ans que vous ne vous êtes pas connecté à #{APPLICATION_NAME}.") }
|
||||||
|
|
||||||
|
context 'when perform_later is called' do
|
||||||
|
let(:custom_queue) { 'low_priority' }
|
||||||
|
before { ENV['BULK_EMAIL_QUEUE'] = custom_queue }
|
||||||
|
it 'enqueues email is custom queue for low priority delivery' do
|
||||||
|
expect { subject.deliver_later }.to have_enqueued_job.on_queue(custom_queue)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue