From f2446bdb9876f05f0010274d77d545525b7f603e Mon Sep 17 00:00:00 2001 From: Gabriel Detraz Date: Mon, 8 Jan 2018 01:21:24 +0100 Subject: [PATCH] Editions des machines des users avec droits et de l'asso seulement avec droit all --- machines/models.py | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/machines/models.py b/machines/models.py index f2dedee9..226cd0cc 100644 --- a/machines/models.py +++ b/machines/models.py @@ -112,9 +112,10 @@ class Machine(FieldPermissionModelMixin, models.Model): :param self: instance machine à éditer :param user_request: instance user qui fait l'edition :return: True ou False avec la raison le cas échéant""" - if not user_request.has_perm('machines.change_machine') and self.user != user_request: - return False, u"Vous ne pouvez pas éditer une machine d'un autre user\ - que vous sans droit" + if self.user != user_request: + if not user_request.has_perm('machines.change_interface') or not self.user.can_edit(self.user, user_request, *args, **kwargs)[0]: + return False, u"Vous ne pouvez pas éditer une machine\ + d'un autre user que vous sans droit" return True, None def can_delete(self, user_request, *args, **kwargs): @@ -123,9 +124,10 @@ class Machine(FieldPermissionModelMixin, models.Model): :param self: instance machine à supprimer :param user_request: instance user qui fait l'edition :return: True ou False avec la raison de l'échec le cas échéant""" - if not user_request.has_perm('machines.delete_machine') and self.user != user_request: - return False, u"Vous ne pouvez pas éditer une machine d'un autre user\ - que vous sans droit" + if self.user != user_request: + if not user_request.has_perm('machines.change_interface') or not self.user.can_edit(self.user, user_request, *args, **kwargs)[0]: + return False, u"Vous ne pouvez pas éditer une machine\ + d'un autre user que vous sans droit" return True, None def can_view_all(user_request, *args, **kwargs): @@ -1287,9 +1289,10 @@ class Interface(models.Model): :param self: Instance interface à editer :param user_request: Utilisateur qui fait la requête :return: soit True, soit False avec la raison de l'échec""" - if not user_request.has_perm('machines.change_interface') and self.machine.user != user_request: - return False, u"Vous ne pouvez pas éditer une machine\ - d'un autre user que vous sans droit" + if self.machine.user != user_request: + if not user_request.has_perm('machines.change_interface') or not self.machine.user.can_edit(user_request, *args, **kwargs)[0]: + return False, u"Vous ne pouvez pas éditer une machine\ + d'un autre user que vous sans droit" return True, None def can_delete(self, user_request, *args, **kwargs): @@ -1298,9 +1301,10 @@ class Interface(models.Model): :param self: Instance interface à del :param user_request: Utilisateur qui fait la requête :return: soit True, soit False avec la raison de l'échec""" - if not user_request.has_perm('machines.delete_interface') and self.machine.user != user_request: - return False, u"Vous ne pouvez pas éditer une machine d'un autre\ - user que vous sans droit" + if self.machine.user != user_request: + if not user_request.has_perm('machines.change_interface') or not self.machine.user.can_edit(user_request, *args, **kwargs)[0]: + return False, u"Vous ne pouvez pas éditer une machine\ + d'un autre user que vous sans droit" return True, None def can_view_all(user_request, *args, **kwargs):