amelioration(UsersDeletionService.expired_users_with_dossiers): ignore les usagers ayant un dossier en instruction, meme si il a des dossiers en brouillon ou autre
This commit is contained in:
parent
3a9b520a93
commit
bfe27b5eb7
3 changed files with 28 additions and 16 deletions
|
@ -32,16 +32,10 @@ class Expired::UsersDeletionService < Expired::MailRateLimiter
|
|||
|
||||
# rubocop:disable DS/Unscoped
|
||||
def expired_users_with_dossiers
|
||||
users = User.arel_table
|
||||
dossiers = Dossier.arel_table
|
||||
|
||||
expired_users
|
||||
.joins(
|
||||
users.join(dossiers, Arel::Nodes::InnerJoin)
|
||||
.on(users[:id].eq(dossiers[:user_id])
|
||||
.and(dossiers[:state].not_eq(Dossier.states.fetch(:en_instruction))))
|
||||
.join_sources
|
||||
)
|
||||
.joins(:dossiers)
|
||||
.group("users.id")
|
||||
.having("NOT 'en_instruction' = ANY(ARRAY_AGG(dossiers.state))")
|
||||
end
|
||||
|
||||
def expired_users_without_dossiers
|
||||
|
|
|
@ -5,18 +5,20 @@
|
|||
|
||||
%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(Expired::REMAINING_WEEKS_BEFORE_EXPIRATION.weeks)}.
|
||||
- if @user.dossiers.not_brouillon.count == 0
|
||||
Aussi vous n'avez plus de dossier sur la plateforme.
|
||||
|
||||
%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.
|
||||
Dans le respect du règlement général sur la protection des données, nous allons
|
||||
%strong supprimer votre compte d'ici #{distance_of_time_in_words(Expired::REMAINING_WEEKS_BEFORE_EXPIRATION.weeks)}.
|
||||
|
||||
- if @user.dossiers.not_brouillon.count > 0
|
||||
%p
|
||||
%strong Ne vous en faites pas,
|
||||
vos dossiers traités sont conservés par l'administration. Aussi, à tout moment vous pourrez re-créer une compte sur notre plateforme.
|
||||
Au besoin, vous pouvez télécharger vos dossiers en suivant ce lien :
|
||||
= link_to dossiers_url, dossiers_url
|
||||
|
||||
%p Vous souhaitez conserver votre compte et vos dossiers ? Connectez-vous avec vos identifiants et nous conserverons vos données.
|
||||
|
||||
= render partial: "layouts/mailers/signature"
|
||||
|
|
|
@ -165,6 +165,14 @@ describe Expired::UsersDeletionService do
|
|||
it { is_expected.to include(user) }
|
||||
end
|
||||
|
||||
context 'when user is expired and has a many dossier brouillon' do
|
||||
before do
|
||||
create(:dossier, :brouillon, user:, created_at: last_signed_in_expired)
|
||||
create(:dossier, :brouillon, user:, created_at: last_signed_in_expired)
|
||||
end
|
||||
it { is_expected.to eq([user]) }
|
||||
end
|
||||
|
||||
context 'when user is expired and has a dossier en_construction' do
|
||||
let(:dossier) { create(:dossier, :en_construction, user:, created_at: last_signed_in_expired) }
|
||||
it { is_expected.to include(user) }
|
||||
|
@ -175,6 +183,14 @@ describe Expired::UsersDeletionService do
|
|||
it { is_expected.not_to include(user) }
|
||||
end
|
||||
|
||||
context 'when user is expired and has a dossier en_instruction plus another one brouillon' do
|
||||
before do
|
||||
create(:dossier, :en_instruction, user:, created_at: last_signed_in_expired)
|
||||
create(:dossier, :brouillon, user:, created_at: last_signed_in_expired)
|
||||
end
|
||||
it { is_expected.to eq([]) }
|
||||
end
|
||||
|
||||
context 'when user is expired and has a dossier termine' do
|
||||
let(:dossier) { create(:dossier, :accepte, user:, created_at: last_signed_in_expired) }
|
||||
it { is_expected.to include(user) }
|
||||
|
|
Loading…
Reference in a new issue