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
def can_be_deleted?
administrateur.nil? && dossiers.state_instruction_commencee.empty?
administrateur.nil? && instructeur.nil? && dossiers.state_instruction_commencee.empty?
end
def delete_and_keep_track_dossiers(administration)

View file

@ -25,7 +25,7 @@ as well as a link to its edit page.
</h1>
<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>

View file

@ -234,6 +234,14 @@ describe User, type: :model do
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
describe '#delete_and_keep_track_dossiers' do