empêche suppression d'un user qui est instructeur

This commit is contained in:
Christophe Robillard 2020-01-15 19:48:11 +01:00
parent a6d007dbd3
commit d9570eedc6
3 changed files with 10 additions and 2 deletions

View file

@ -97,7 +97,7 @@ class User < ApplicationRecord
end end
def can_be_deleted? def can_be_deleted?
administrateur.nil? && dossiers.state_instruction_commencee.empty? administrateur.nil? && instructeur.nil? && dossiers.state_instruction_commencee.empty?
end end
def delete_and_keep_track_dossiers(administration) def delete_and_keep_track_dossiers(administration)

View file

@ -25,7 +25,7 @@ as well as a link to its edit page.
</h1> </h1>
<div> <div>
<%= button_to "supprimer", delete_manager_user_path(page.resource), method: :delete, disabled: !page.resource.can_be_deleted?, class: "button", data: { confirm: "Confirmez-vous la suppression de l'utilisateur ?" }, title: page.resource.can_be_deleted? ? "Supprimer" : "Cet utilisateur ne peut être supprimé. Il a des dossiers dont l'instruction a commencé ou c'est un administrateur" %> <%= button_to "supprimer", delete_manager_user_path(page.resource), method: :delete, disabled: !page.resource.can_be_deleted?, class: "button", data: { confirm: "Confirmez-vous la suppression de l'utilisateur ?" }, title: page.resource.can_be_deleted? ? "Supprimer" : "Cet utilisateur ne peut être supprimé. Il a des dossiers dont l'instruction a commencé ou il est administrateur ou instructeur" %>
</div> </div>
<div> <div>

View file

@ -234,6 +234,14 @@ describe User, type: :model do
end end
end end
context 'when the user is an instructeur' do
it 'cannot be deleted' do
instructeur = create(:instructeur)
user = instructeur.user
expect(user.can_be_deleted?).to be_falsy
end
end
end end
describe '#delete_and_keep_track_dossiers' do describe '#delete_and_keep_track_dossiers' do