From 405bc03668a1e54b946e4a2d55924d9618ac3d53 Mon Sep 17 00:00:00 2001 From: Gabriel Detraz Date: Mon, 8 Jan 2018 02:14:42 +0100 Subject: [PATCH] =?UTF-8?q?Prot=C3=A8ge=20les=20objects=20cotisations=20de?= =?UTF-8?q?s=20users=20avec=20droits?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cotisations/models.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/cotisations/models.py b/cotisations/models.py index 5ba43452..8d8fb756 100644 --- a/cotisations/models.py +++ b/cotisations/models.py @@ -124,6 +124,8 @@ class Facture(FieldPermissionModelMixin, models.Model): def can_edit(self, user_request, *args, **kwargs): if not user_request.has_perm('cotisations.change_facture'): return False, u"Vous n'avez pas le droit d'éditer les factures" + elif not user_request.has_perm('cotisations.change_all_facture') and not self.user.can_edit(user_request, *args, **kwargs)[0]: + return False, u"Vous ne pouvez pas éditer les factures de cet user protégé" elif not user_request.has_perm('cotisations.change_all_facture') and\ (self.control or not self.valid): return False, u"Vous n'avez pas le droit d'éditer une facture\ @@ -134,6 +136,8 @@ class Facture(FieldPermissionModelMixin, models.Model): def can_delete(self, user_request, *args, **kwargs): if not user_request.has_perm('cotisations.delete_facture'): return False, u"Vous n'avez pas le droit de supprimer une facture" + if not self.user.can_edit(user_request, *args, **kwargs)[0]: + return False, u"Vous ne pouvez pas éditer les factures de cet user protégé" if self.control or not self.valid: return False, u"Vous ne pouvez pas supprimer une facture\ contrôlée ou invalidée par un trésorier" @@ -282,6 +286,8 @@ class Vente(models.Model): def can_edit(self, user_request, *args, **kwargs): if not user_request.has_perm('cotisations.change_vente'): return False, u"Vous n'avez pas le droit d'éditer les ventes" + elif not user_request.has_perm('cotisations.change_all_facture') and not self.facture.user.can_edit(user_request, *args, **kwargs)[0]: + return False, u"Vous ne pouvez pas éditer les factures de cet user protégé" elif not user_request.has_perm('cotisations.change_all_vente') and\ (self.facture.control or not self.facture.valid): return False, u"Vous n'avez pas le droit d'éditer une vente\ @@ -292,6 +298,8 @@ class Vente(models.Model): def can_delete(self, user_request, *args, **kwargs): if not user_request.has_perm('cotisations.delete_vente'): return False, u"Vous n'avez pas le droit de supprimer une vente" + if not self.facture.user.can_edit(user_request, *args, **kwargs)[0]: + return False, u"Vous ne pouvez pas éditer les factures de cet user protégé" if self.facture.control or not self.facture.valid: return False, u"Vous ne pouvez pas supprimer une vente\ contrôlée ou invalidée par un trésorier"