diff --git a/cotisations/models.py b/cotisations/models.py
index 672e55ff..d8da0be7 100644
--- a/cotisations/models.py
+++ b/cotisations/models.py
@@ -110,11 +110,6 @@ class Facture(models.Model):
return user_request.has_perms(('cableur',)), u"Vous n'avez pas le\
droit de créer des factures"
- def can_edit_all(user_request, *args, **kwargs):
- if not user_request.has_perms(('cableur',)):
- return False, u"Vous n'avez pas le droit d'éditer les factures"
- return None
-
def can_edit(self, user_request, *args, **kwargs):
if not user_request.has_perms(('cableur',)):
return False, u"Vous n'avez pas le droit d'éditer les factures"
@@ -125,11 +120,6 @@ class Facture(models.Model):
else:
return True, None
- def can_delete_all(user_request, *args, **kwargs):
- if not user_request.has_perms(('cableur',)):
- return False, u"Vous n'avez pas le droit de supprimer une facture"
- return None
-
def can_delete(self, user_request, *args, **kwargs):
if not user_request.has_perms(('cableur',)):
return False, u"Vous n'avez pas le droit de supprimer une facture"
@@ -140,6 +130,8 @@ class Facture(models.Model):
return True, None
def can_view_all(user_request, *args, **kwargs):
+ if not user_request.has_perms(('cableur',)):
+ return False, u"Vous n'avez pas le droit de voir les factures"
return True, None
def can_view(self, user_request, *args, **kwargs):
@@ -147,9 +139,17 @@ class Facture(models.Model):
self.user != user_request:
return False, u"Vous ne pouvez pas afficher l'historique d'une\
facture d'un autre user que vous sans droit cableur"
+ elif not self.valid:
+ return False, u"La facture est invalidée et ne peut être affichée"
else:
return True, None
+ def can_change_control(user_request, *args, **kwargs):
+ return user_request.has_perms(('tresorier',)), "Vous ne pouvez pas éditer le controle sans droit trésorier"
+
+ def can_change_pdf(user_request, *args, **kwargs):
+ return user_request.has_perms(('tresorier',)), "Vous ne pouvez pas éditer une facture sans droit trésorier"
+
def __str__(self):
return str(self.user) + ' ' + str(self.date)
@@ -252,25 +252,41 @@ class Vente(models.Model):
return Vente.objects.get(pk=venteid)
def can_create(user_request, *args, **kwargs):
- return True, None
-
- def can_edit_all(user_request, *args, **kwargs):
+ return user_request.has_perms(('cableur',)), u"Vous n'avez pas le\
+ droit de créer des ventes"
return True, None
def can_edit(self, user_request, *args, **kwargs):
- return True, None
-
- def can_delete_all(user_request, *args, **kwargs):
- return True, None
+ if not user_request.has_perms(('cableur',)):
+ return False, u"Vous n'avez pas le droit d'éditer les ventes"
+ elif not user_request.has_perms(('tresorier',)) and\
+ (self.facture.control or not self.facture.valid):
+ return False, u"Vous n'avez pas le droit d'éditer une vente\
+ controlée ou invalidée par un trésorier"
+ else:
+ return True, None
def can_delete(self, user_request, *args, **kwargs):
- return True, None
+ if not user_request.has_perms(('cableur',)):
+ return False, u"Vous n'avez pas le droit de supprimer une vente"
+ 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"
+ else:
+ return True, None
def can_view_all(user_request, *args, **kwargs):
+ if not user_request.has_perms(('cableur',)):
+ return False, u"Vous n'avez pas le droit de voir les ventes"
return True, None
def can_view(self, user_request, *args, **kwargs):
- return True, None
+ if not user_request.has_perms(('cableur',)) and\
+ self.facture.user != user_request:
+ return False, u"Vous ne pouvez pas afficher l'historique d'une\
+ facture d'un autre user que vous sans droit cableur"
+ else:
+ return True, None
def __str__(self):
return str(self.name) + ' ' + str(self.facture)
@@ -355,18 +371,10 @@ class Article(models.Model):
return user_request.has_perms(('tresorier',)), u"Vous n'avez pas le\
droit d'ajouter des articles"
- def can_edit_all(user_request, *args, **kwargs):
- return user_request.has_perms(('tresorier',)), u"Vous n'avez pas le\
- droit d'éditer des articles"
-
def can_edit(self, user_request, *args, **kwargs):
return user_request.has_perms(('tresorier',)), u"Vous n'avez pas le\
droit d'éditer des articles"
- def can_delete_all(user_request, *args, **kwargs):
- return user_request.has_perms(('tresorier',)), u"Vous n'avez pas le\
- droit de supprimer des articles"
-
def can_delete(self, user_request, *args, **kwargs):
return user_request.has_perms(('tresorier',)), u"Vous n'avez pas le\
droit de supprimer des articles"
@@ -396,18 +404,10 @@ class Banque(models.Model):
return user_request.has_perms(('cableur',)), u"Vous n'avez pas le\
droit d'ajouter des banques"
- def can_edit_all(user_request, *args, **kwargs):
- return user_request.has_perms(('tresorier',)), u"Vous n'avez pas le\
- droit d'éditer des banques"
-
def can_edit(self, user_request, *args, **kwargs):
return user_request.has_perms(('tresorier',)), u"Vous n'avez pas le\
droit d'éditer des banques"
- def can_delete_all(user_request, *args, **kwargs):
- return user_request.has_perms(('tresorier',)), u"Vous n'avez pas le\
- droit de supprimer des banques"
-
def can_delete(self, user_request, *args, **kwargs):
return user_request.has_perms(('tresorier',)), u"Vous n'avez pas le\
droit de supprimer des banques"
@@ -442,18 +442,10 @@ class Paiement(models.Model):
return user_request.has_perms(('tresorier',)), u"Vous n'avez pas le\
droit d'ajouter des paiements"
- def can_edit_all(user_request, *args, **kwargs):
- return user_request.has_perms(('tresorier',)), u"Vous n'avez pas le\
- droit d'éditer des paiements"
-
def can_edit(self, user_request, *args, **kwargs):
return user_request.has_perms(('tresorier',)), u"Vous n'avez pas le\
droit d'éditer des paiements"
- def can_delete_all(user_request, *args, **kwargs):
- return user_request.has_perms(('tresorier',)), u"Vous n'avez pas le\
- droit de supprimer des paiements"
-
def can_delete(self, user_request, *args, **kwargs):
return user_request.has_perms(('tresorier',)), u"Vous n'avez pas le\
droit de supprimer des paiements"
@@ -502,25 +494,41 @@ class Cotisation(models.Model):
return Cotisations.objects.get(pk=cotisationid)
def can_create(user_request, *args, **kwargs):
- return True, None
-
- def can_edit_all(user_request, *args, **kwargs):
+ return user_request.has_perms(('cableur',)), u"Vous n'avez pas le\
+ droit de créer des cotisations"
return True, None
def can_edit(self, user_request, *args, **kwargs):
- return True, None
-
- def can_delete_all(user_request, *args, **kwargs):
- return True, None
+ if not user_request.has_perms(('cableur',)):
+ return False, u"Vous n'avez pas le droit d'éditer les cotisations"
+ elif not user_request.has_perms(('tresorier',)) and\
+ (self.vente.facture.control or not self.vente.facture.valid):
+ return False, u"Vous n'avez pas le droit d'éditer une cotisation\
+ controlée ou invalidée par un trésorier"
+ else:
+ return True, None
def can_delete(self, user_request, *args, **kwargs):
- return True, None
+ if not user_request.has_perms(('cableur',)):
+ return False, u"Vous n'avez pas le droit de supprimer une cotisations"
+ if self.vente.facture.control or not self.vente.facture.valid:
+ return False, u"Vous ne pouvez pas supprimer une cotisations\
+ contrôlée ou invalidée par un trésorier"
+ else:
+ return True, None
def can_view_all(user_request, *args, **kwargs):
+ if not user_request.has_perms(('cableur',)):
+ return False, u"Vous n'avez pas le droit de voir les cotisations"
return True, None
def can_view(self, user_request, *args, **kwargs):
- return True, None
+ if not user_request.has_perms(('cableur',)) and\
+ self.vente.facture.user != user_request:
+ return False, u"Vous ne pouvez pas afficher l'historique d'une\
+ cotisation d'un autre user que vous sans droit cableur"
+ else:
+ return True, None
def __str__(self):
return str(self.vente)
diff --git a/cotisations/templates/cotisations/aff_article.html b/cotisations/templates/cotisations/aff_article.html
index 3a0b21f6..f4880caf 100644
--- a/cotisations/templates/cotisations/aff_article.html
+++ b/cotisations/templates/cotisations/aff_article.html
@@ -22,6 +22,8 @@ with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
{% endcomment %}
+{% load acl %}
+
@@ -41,11 +43,11 @@ with this program; if not, write to the Free Software Foundation, Inc.,
{{ article.duration }}
{{ article.type_user }}
- {% if is_trez %}
+ {% can_edit article %}
- {% endif %}
+ {% acl_end %}
diff --git a/cotisations/templates/cotisations/aff_banque.html b/cotisations/templates/cotisations/aff_banque.html
index fd962f1f..f31bf55a 100644
--- a/cotisations/templates/cotisations/aff_banque.html
+++ b/cotisations/templates/cotisations/aff_banque.html
@@ -22,6 +22,8 @@ with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
{% endcomment %}
+{% load acl %}
+
@@ -33,11 +35,11 @@ with this program; if not, write to the Free Software Foundation, Inc.,
{{ banque.name }}
- {% if is_trez %}
+ {% can_edit banque %}
- {% endif %}
+ {% acl_end %}
diff --git a/cotisations/templates/cotisations/aff_cotisations.html b/cotisations/templates/cotisations/aff_cotisations.html
index 34efd63d..09a8f55d 100644
--- a/cotisations/templates/cotisations/aff_cotisations.html
+++ b/cotisations/templates/cotisations/aff_cotisations.html
@@ -22,6 +22,8 @@ with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
{% endcomment %}
+{% load acl %}
+
{% if facture_list.paginator %}
{% include "pagination.html" with list=facture_list %}
{% endif %}
@@ -47,7 +49,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
{{ facture.paiement }}
{{ facture.date }}
{{ facture.id }}
- {% if is_cableur %}
- {% if facture.valid and not facture.control or is_trez %}
+ {% can_edit facture %}