mirror of
https://gitlab2.federez.net/re2o/re2o
synced 2024-12-23 23:43:47 +00:00
Merge branch 'acl_mixin' into 'master'
Acl mixin See merge request nounous/re2o!18
This commit is contained in:
commit
96c5df929e
7 changed files with 110 additions and 1200 deletions
|
@ -57,7 +57,7 @@ from django.utils import timezone
|
||||||
from machines.models import regen
|
from machines.models import regen
|
||||||
|
|
||||||
from re2o.field_permissions import FieldPermissionModelMixin
|
from re2o.field_permissions import FieldPermissionModelMixin
|
||||||
|
from re2o.mixins import AclMixin
|
||||||
|
|
||||||
class Facture(FieldPermissionModelMixin, models.Model):
|
class Facture(FieldPermissionModelMixin, models.Model):
|
||||||
""" Définition du modèle des factures. Une facture regroupe une ou
|
""" Définition du modèle des factures. Une facture regroupe une ou
|
||||||
|
@ -350,7 +350,7 @@ def vente_post_delete(sender, **kwargs):
|
||||||
user.ldap_sync(base=False, access_refresh=True, mac_refresh=False)
|
user.ldap_sync(base=False, access_refresh=True, mac_refresh=False)
|
||||||
|
|
||||||
|
|
||||||
class Article(models.Model):
|
class Article(AclMixin, models.Model):
|
||||||
"""Liste des articles en vente : prix, nom, et attribut iscotisation
|
"""Liste des articles en vente : prix, nom, et attribut iscotisation
|
||||||
et duree si c'est une cotisation"""
|
et duree si c'est une cotisation"""
|
||||||
PRETTY_NAME = "Articles en vente"
|
PRETTY_NAME = "Articles en vente"
|
||||||
|
@ -405,31 +405,11 @@ class Article(models.Model):
|
||||||
def get_instance(articleid, *args, **kwargs):
|
def get_instance(articleid, *args, **kwargs):
|
||||||
return Article.objects.get(pk=articleid)
|
return Article.objects.get(pk=articleid)
|
||||||
|
|
||||||
def can_create(user_request, *args, **kwargs):
|
|
||||||
return user_request.has_perm('cotisations.add_article'), u"Vous n'avez pas le\
|
|
||||||
droit d'ajouter des articles"
|
|
||||||
|
|
||||||
def can_edit(self, user_request, *args, **kwargs):
|
|
||||||
return user_request.has_perm('cotisations.change_article'), u"Vous n'avez pas le\
|
|
||||||
droit d'éditer des articles"
|
|
||||||
|
|
||||||
def can_delete(self, user_request, *args, **kwargs):
|
|
||||||
return user_request.has_perm('cotisations.delete_article'), u"Vous n'avez pas le\
|
|
||||||
droit de supprimer des articles"
|
|
||||||
|
|
||||||
def can_view_all(user_request, *args, **kwargs):
|
|
||||||
return user_request.has_perm('cotisations.view_article'), u"Vous n'avez pas le\
|
|
||||||
droit de voir des articles"
|
|
||||||
|
|
||||||
def can_view(self, user_request, *args, **kwargs):
|
|
||||||
return user_request.has_perm('cotisations.view_article'), u"Vous n'avez pas le\
|
|
||||||
droit de voir des articles"
|
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
|
|
||||||
class Banque(models.Model):
|
class Banque(AclMixin, models.Model):
|
||||||
"""Liste des banques"""
|
"""Liste des banques"""
|
||||||
PRETTY_NAME = "Banques enregistrées"
|
PRETTY_NAME = "Banques enregistrées"
|
||||||
|
|
||||||
|
@ -443,31 +423,11 @@ class Banque(models.Model):
|
||||||
def get_instance(banqueid, *args, **kwargs):
|
def get_instance(banqueid, *args, **kwargs):
|
||||||
return Banque.objects.get(pk=banqueid)
|
return Banque.objects.get(pk=banqueid)
|
||||||
|
|
||||||
def can_create(user_request, *args, **kwargs):
|
|
||||||
return user_request.has_perm('cotisations.add_banque'), u"Vous n'avez pas le\
|
|
||||||
droit d'ajouter des banques"
|
|
||||||
|
|
||||||
def can_edit(self, user_request, *args, **kwargs):
|
|
||||||
return user_request.has_perm('cotisations.change_banque'), u"Vous n'avez pas le\
|
|
||||||
droit d'éditer des banques"
|
|
||||||
|
|
||||||
def can_delete(self, user_request, *args, **kwargs):
|
|
||||||
return user_request.has_perm('cotisations.delete_banque'), u"Vous n'avez pas le\
|
|
||||||
droit de supprimer des banques"
|
|
||||||
|
|
||||||
def can_view_all(user_request, *args, **kwargs):
|
|
||||||
return user_request.has_perm('cotisations.view_banque'), u"Vous n'avez pas le\
|
|
||||||
droit de voir des banques"
|
|
||||||
|
|
||||||
def can_view(self, user_request, *args, **kwargs):
|
|
||||||
return user_request.has_perm('cotisations.view_banque'), u"Vous n'avez pas le\
|
|
||||||
droit de voir des banques"
|
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
|
|
||||||
class Paiement(models.Model):
|
class Paiement(AclMixin, models.Model):
|
||||||
"""Moyens de paiement"""
|
"""Moyens de paiement"""
|
||||||
PRETTY_NAME = "Moyens de paiement"
|
PRETTY_NAME = "Moyens de paiement"
|
||||||
PAYMENT_TYPES = (
|
PAYMENT_TYPES = (
|
||||||
|
@ -486,26 +446,6 @@ class Paiement(models.Model):
|
||||||
def get_instance(paiementid, *args, **kwargs):
|
def get_instance(paiementid, *args, **kwargs):
|
||||||
return Paiement.objects.get(pk=paiementid)
|
return Paiement.objects.get(pk=paiementid)
|
||||||
|
|
||||||
def can_create(user_request, *args, **kwargs):
|
|
||||||
return user_request.has_perm('cotisations.add_paiement'), u"Vous n'avez pas le\
|
|
||||||
droit d'ajouter des paiements"
|
|
||||||
|
|
||||||
def can_edit(self, user_request, *args, **kwargs):
|
|
||||||
return user_request.has_perm('cotisations.change_paiement'), u"Vous n'avez pas le\
|
|
||||||
droit d'éditer des paiements"
|
|
||||||
|
|
||||||
def can_delete(self, user_request, *args, **kwargs):
|
|
||||||
return user_request.has_perm('cotisations.delete_paiement'), u"Vous n'avez pas le\
|
|
||||||
droit de supprimer des paiements"
|
|
||||||
|
|
||||||
def can_view_all(user_request, *args, **kwargs):
|
|
||||||
return user_request.has_perm('cotisations.view_paiement'), u"Vous n'avez pas le\
|
|
||||||
droit de voir des paiements"
|
|
||||||
|
|
||||||
def can_view(self, user_request, *args, **kwargs):
|
|
||||||
return user_request.has_perm('cotisations.view_paiement'), u"Vous n'avez pas le\
|
|
||||||
droit de voir des paiements"
|
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.moyen
|
return self.moyen
|
||||||
|
|
||||||
|
|
|
@ -39,6 +39,7 @@ from django.core.validators import MaxValueValidator
|
||||||
from macaddress.fields import MACAddressField
|
from macaddress.fields import MACAddressField
|
||||||
|
|
||||||
from re2o.field_permissions import FieldPermissionModelMixin
|
from re2o.field_permissions import FieldPermissionModelMixin
|
||||||
|
from re2o.mixins import AclMixin
|
||||||
|
|
||||||
import users.models
|
import users.models
|
||||||
import preferences.models
|
import preferences.models
|
||||||
|
@ -161,7 +162,7 @@ class Machine(FieldPermissionModelMixin, models.Model):
|
||||||
return str(self.user) + ' - ' + str(self.id) + ' - ' + str(self.name)
|
return str(self.user) + ' - ' + str(self.id) + ' - ' + str(self.name)
|
||||||
|
|
||||||
|
|
||||||
class MachineType(models.Model):
|
class MachineType(AclMixin, models.Model):
|
||||||
""" Type de machine, relié à un type d'ip, affecté aux interfaces"""
|
""" Type de machine, relié à un type d'ip, affecté aux interfaces"""
|
||||||
PRETTY_NAME = "Type de machine"
|
PRETTY_NAME = "Type de machine"
|
||||||
|
|
||||||
|
@ -190,33 +191,6 @@ class MachineType(models.Model):
|
||||||
:return: Une instance machinetype évidemment"""
|
:return: Une instance machinetype évidemment"""
|
||||||
return MachineType.objects.get(pk=machinetypeid)
|
return MachineType.objects.get(pk=machinetypeid)
|
||||||
|
|
||||||
def can_create(user_request, *args, **kwargs):
|
|
||||||
"""Verifie que l'user a les bons droits infra pour créer
|
|
||||||
un type de machine
|
|
||||||
:param user_request: Utilisateur qui fait la requête
|
|
||||||
:return: soit True, soit False avec la raison de l'échec"""
|
|
||||||
return user_request.has_perm('machines.add_machinetype'), u"Vous n'avez pas le droit\
|
|
||||||
de créer un type de machine"
|
|
||||||
|
|
||||||
def can_edit(self, user_request, *args, **kwargs):
|
|
||||||
"""Verifie que l'user a les bons droits infra pour editer
|
|
||||||
cette instance type de machine
|
|
||||||
:param self: Instance machinetype à 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_machinetype'):
|
|
||||||
return False, u"Vous n'avez pas le droit d'éditer des types de machine"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def can_delete(self, user_request, *args, **kwargs):
|
|
||||||
"""Vérifie qu'on peut bien supprimer cette instance particulière (soit
|
|
||||||
machinetype de soi, soit droit particulier
|
|
||||||
:param self: instance machinetype à 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_machinetype'):
|
|
||||||
return False, u"Vous n'avez pas le droit de supprimer des types de machines"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def can_use_all(user_request, *args, **kwargs):
|
def can_use_all(user_request, *args, **kwargs):
|
||||||
"""Check if an user can use every MachineType.
|
"""Check if an user can use every MachineType.
|
||||||
|
@ -231,28 +205,11 @@ class MachineType(models.Model):
|
||||||
return False, u"Vous n'avez pas le droit d'utiliser tout types de machines"
|
return False, u"Vous n'avez pas le droit d'utiliser tout types de machines"
|
||||||
return True, None
|
return True, None
|
||||||
|
|
||||||
def can_view_all(user_request, *args, **kwargs):
|
|
||||||
"""Vérifie qu'on peut bien afficher l'ensemble des machinetype,
|
|
||||||
droit particulier correspondant
|
|
||||||
:param user_request: instance user qui fait l'edition
|
|
||||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
|
||||||
return user_request.has_perm('machines.view_machinetype'), u"Vous n'avez pas le droit\
|
|
||||||
de voir les types de machines"
|
|
||||||
|
|
||||||
def can_view(self, user_request, *args, **kwargs):
|
|
||||||
"""Vérifie qu'on peut bien voir cette instance particulière avec
|
|
||||||
droit view objet
|
|
||||||
:param self: instance machinetype à voir
|
|
||||||
:param user_request: instance user qui fait l'edition
|
|
||||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
|
||||||
return user_request.has_perm('machines.view_machinetype'), u"Vous n'avez pas le droit\
|
|
||||||
de voir les types de machines"
|
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.type
|
return self.type
|
||||||
|
|
||||||
|
|
||||||
class IpType(models.Model):
|
class IpType(AclMixin, models.Model):
|
||||||
""" Type d'ip, définissant un range d'ip, affecté aux machine types"""
|
""" Type d'ip, définissant un range d'ip, affecté aux machine types"""
|
||||||
PRETTY_NAME = "Type d'ip"
|
PRETTY_NAME = "Type d'ip"
|
||||||
|
|
||||||
|
@ -384,56 +341,11 @@ class IpType(models.Model):
|
||||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
:return: True ou False avec la raison de l'échec le cas échéant"""
|
||||||
return user_request.has_perm('machines.use_all_iptype'), None
|
return user_request.has_perm('machines.use_all_iptype'), None
|
||||||
|
|
||||||
|
|
||||||
def can_create(user_request, *args, **kwargs):
|
|
||||||
"""Verifie que l'user a les bons droits infra pour créer
|
|
||||||
un type d'ip
|
|
||||||
:param user_request: Utilisateur qui fait la requête
|
|
||||||
:return: soit True, soit False avec la raison de l'échec"""
|
|
||||||
return user_request.has_perm('machines.add_iptype'), u"Vous n'avez pas le droit\
|
|
||||||
de créer un type d'ip"
|
|
||||||
|
|
||||||
def can_edit(self, user_request, *args, **kwargs):
|
|
||||||
"""Verifie que l'user a les bons droits infra pour editer
|
|
||||||
cette instance iptype
|
|
||||||
:param self: Instance iptype à 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_iptype'):
|
|
||||||
return False, u"Vous n'avez pas le droit d'éditer des types d'ip"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def can_delete(self, user_request, *args, **kwargs):
|
|
||||||
"""Verifie que l'user a les bons droits infra pour supprimer
|
|
||||||
cette instance iptype
|
|
||||||
:param self: Instance iptype à delete
|
|
||||||
:param user_request: Utilisateur qui fait la requête
|
|
||||||
:return: soit True, soit False avec la raison de l'échec"""
|
|
||||||
return user_request.has_perm('machines.delete_iptype'), u"Vous n'avez pas le droit\
|
|
||||||
de supprimer un type d'ip"
|
|
||||||
|
|
||||||
def can_view_all(user_request, *args, **kwargs):
|
|
||||||
"""Vérifie qu'on peut bien afficher l'ensemble des iptype,
|
|
||||||
droit particulier view objet correspondant
|
|
||||||
:param user_request: instance user qui fait l'edition
|
|
||||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
|
||||||
return user_request.has_perm('machines.view_iptype'), u"Vous n'avez pas le droit\
|
|
||||||
de voir les types d'ip"
|
|
||||||
|
|
||||||
def can_view(self, user_request, *args, **kwargs):
|
|
||||||
"""Vérifie qu'on peut bien voir cette instance particulière avec
|
|
||||||
droit view objet
|
|
||||||
:param self: instance iptype à voir
|
|
||||||
:param user_request: instance user qui fait l'edition
|
|
||||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
|
||||||
return user_request.has_perm('machines.view_iptype'), u"Vous n'avez pas le droit\
|
|
||||||
de voir les types d'ip"
|
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.type
|
return self.type
|
||||||
|
|
||||||
|
|
||||||
class Vlan(models.Model):
|
class Vlan(AclMixin, models.Model):
|
||||||
""" Un vlan : vlan_id et nom
|
""" Un vlan : vlan_id et nom
|
||||||
On limite le vlan id entre 0 et 4096, comme défini par la norme"""
|
On limite le vlan id entre 0 et 4096, comme défini par la norme"""
|
||||||
PRETTY_NAME = "Vlans"
|
PRETTY_NAME = "Vlans"
|
||||||
|
@ -453,55 +365,11 @@ class Vlan(models.Model):
|
||||||
:return: Une instance vlan évidemment"""
|
:return: Une instance vlan évidemment"""
|
||||||
return Vlan.objects.get(pk=vlanid)
|
return Vlan.objects.get(pk=vlanid)
|
||||||
|
|
||||||
def can_create(user_request, *args, **kwargs):
|
|
||||||
"""Verifie que l'user a les bons droits infra pour créer
|
|
||||||
un vlan
|
|
||||||
:param user_request: Utilisateur qui fait la requête
|
|
||||||
:return: soit True, soit False avec la raison de l'échec"""
|
|
||||||
return user_request.has_perm('machines.add_vlan'), u"Vous n'avez pas le droit\
|
|
||||||
de créer un vlan"
|
|
||||||
|
|
||||||
def can_edit(self, user_request, *args, **kwargs):
|
|
||||||
"""Verifie que l'user a les bons droits infra pour editer
|
|
||||||
cette instance vlan
|
|
||||||
:param self: Instance vlan à 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_vlan'):
|
|
||||||
return False, u"Vous n'avez pas le droit d'éditer des vlans"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def can_delete(self, user_request, *args, **kwargs):
|
|
||||||
"""Verifie que l'user a les bons droits infra pour supprimer
|
|
||||||
cette instance vlan
|
|
||||||
:param self: Instance vlan à delete
|
|
||||||
:param user_request: Utilisateur qui fait la requête
|
|
||||||
:return: soit True, soit False avec la raison de l'échec"""
|
|
||||||
return user_request.has_perm('machines.delete_vlan'), u"Vous n'avez pas le droit\
|
|
||||||
de suprimer un vlan"
|
|
||||||
|
|
||||||
def can_view_all(user_request, *args, **kwargs):
|
|
||||||
"""Vérifie qu'on peut bien afficher l'ensemble des vlan,
|
|
||||||
droit particulier view objet correspondant
|
|
||||||
:param user_request: instance user qui fait l'edition
|
|
||||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
|
||||||
return user_request.has_perm('machines.view_vlan'), u"Vous n'avez pas le droit\
|
|
||||||
de voir les vlans"
|
|
||||||
|
|
||||||
def can_view(self, user_request, *args, **kwargs):
|
|
||||||
"""Vérifie qu'on peut bien voir cette instance particulière avec
|
|
||||||
droit view objet
|
|
||||||
:param self: instance vlan à voir
|
|
||||||
:param user_request: instance user qui fait l'edition
|
|
||||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
|
||||||
return user_request.has_perm('machines.view_vlan'), u"Vous n'avez pas le droit\
|
|
||||||
de voir les vlans"
|
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
|
|
||||||
class Nas(models.Model):
|
class Nas(AclMixin, models.Model):
|
||||||
""" Les nas. Associé à un machine_type.
|
""" Les nas. Associé à un machine_type.
|
||||||
Permet aussi de régler le port_access_mode (802.1X ou mac-address) pour
|
Permet aussi de régler le port_access_mode (802.1X ou mac-address) pour
|
||||||
le radius. Champ autocapture de la mac à true ou false"""
|
le radius. Champ autocapture de la mac à true ou false"""
|
||||||
|
@ -542,56 +410,11 @@ class Nas(models.Model):
|
||||||
:return: Une instance nas évidemment"""
|
:return: Une instance nas évidemment"""
|
||||||
return Nas.objects.get(pk=nasid)
|
return Nas.objects.get(pk=nasid)
|
||||||
|
|
||||||
def can_create(user_request, *args, **kwargs):
|
|
||||||
"""Verifie que l'user a les bons droits infra pour créer
|
|
||||||
un nas
|
|
||||||
:param user_request: instance utilisateur qui fait la requête
|
|
||||||
:return: soit True, soit False avec la raison de l'échec"""
|
|
||||||
return user_request.has_perm('machines.add_nas'), u"Vous n'avez pas le droit\
|
|
||||||
de créer un nas"
|
|
||||||
|
|
||||||
def can_edit(self, user_request, *args, **kwargs):
|
|
||||||
"""Verifie que l'user a les bons droits infra pour editer
|
|
||||||
cette instance nas
|
|
||||||
:param self: Instance nas à 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_nas'):
|
|
||||||
return False, u"Vous n'avez pas le droit d'éditer des nas"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def can_delete(self, user_request, *args, **kwargs):
|
|
||||||
"""Verifie que l'user a les bons droits infra pour supprimer
|
|
||||||
cette instance nas
|
|
||||||
:param self: Instance nas à delete
|
|
||||||
:param user_request: Utilisateur qui fait la requête
|
|
||||||
:return: soit True, soit False avec la raison de l'échec"""
|
|
||||||
return user_request.has_perm('machines.delete_nas'), u"Vous n'avez pas le droit\
|
|
||||||
de supprimer un nas"
|
|
||||||
|
|
||||||
def can_view_all(user_request, *args, **kwargs):
|
|
||||||
"""Vérifie qu'on peut bien afficher l'ensemble des nas,
|
|
||||||
droit particulier view objet correspondant
|
|
||||||
|
|
||||||
:param user_request: instance user qui fait l'edition
|
|
||||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
|
||||||
return user_request.has_perm('machines.view_nas'), u"Vous n'avez pas le droit\
|
|
||||||
de voir les nas"
|
|
||||||
|
|
||||||
def can_view(self, user_request, *args, **kwargs):
|
|
||||||
"""Vérifie qu'on peut bien voir cette instance particulière avec
|
|
||||||
droit view objet
|
|
||||||
:param self: instance nas à voir
|
|
||||||
:param user_request: instance user qui fait l'edition
|
|
||||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
|
||||||
return user_request.has_perm('machines.view_nas'), u"Vous n'avez pas le droit\
|
|
||||||
de voir les nas"
|
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
|
|
||||||
class SOA(models.Model):
|
class SOA(AclMixin, models.Model):
|
||||||
"""
|
"""
|
||||||
Un enregistrement SOA associé à une extension
|
Un enregistrement SOA associé à une extension
|
||||||
Les valeurs par défault viennent des recommandations RIPE :
|
Les valeurs par défault viennent des recommandations RIPE :
|
||||||
|
@ -634,50 +457,6 @@ class SOA(models.Model):
|
||||||
:return: Une instance soa évidemment"""
|
:return: Une instance soa évidemment"""
|
||||||
return SOA.objects.get(pk=soaid)
|
return SOA.objects.get(pk=soaid)
|
||||||
|
|
||||||
def can_create(user_request, *args, **kwargs):
|
|
||||||
"""Verifie que l'user a les bons droits infra pour créer
|
|
||||||
un soa
|
|
||||||
:param user_request: instance utilisateur qui fait la requête
|
|
||||||
:return: soit True, soit False avec la raison de l'échec"""
|
|
||||||
return user_request.has_perm('machines.add_soa'), u"Vous n'avez pas le droit\
|
|
||||||
de créer un enregistrement SOA"
|
|
||||||
|
|
||||||
def can_edit(self, user_request, *args, **kwargs):
|
|
||||||
"""Verifie que l'user a les bons droits infra pour editer
|
|
||||||
cette instance soa
|
|
||||||
:param self: Instance soa à 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_soa'):
|
|
||||||
return False, u"Vous n'avez pas le droit d'éditer des enregistrements SOA"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def can_delete(self, user_request, *args, **kwargs):
|
|
||||||
"""Verifie que l'user a les bons droits infra pour supprimer
|
|
||||||
cette instance soa
|
|
||||||
:param self: Instance soa à delete
|
|
||||||
:param user_request: Utilisateur qui fait la requête
|
|
||||||
:return: soit True, soit False avec la raison de l'échec"""
|
|
||||||
return user_request.has_perm('machines.delete_soa'), u"Vous n'avez pas le droit\
|
|
||||||
de supprimer des enregistrements SOA"
|
|
||||||
|
|
||||||
def can_view_all(user_request, *args, **kwargs):
|
|
||||||
"""Vérifie qu'on peut bien afficher l'ensemble des soa,
|
|
||||||
droit particulier view objet correspondant
|
|
||||||
:param user_request: instance user qui fait l'edition
|
|
||||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
|
||||||
return user_request.has_perm('machines.view_soa'), u"Vous n'avez pas le droit\
|
|
||||||
de voir les enreistrement SOA"
|
|
||||||
|
|
||||||
def can_view(self, user_request, *args, **kwargs):
|
|
||||||
"""Vérifie qu'on peut bien voir cette instance particulière avec
|
|
||||||
droit view objet
|
|
||||||
:param self: instance soa à voir
|
|
||||||
:param user_request: instance user qui fait l'edition
|
|
||||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
|
||||||
return user_request.has_perm('machines.view_soa'), u"Vous n'avez pas le droit\
|
|
||||||
de voir les enreistrement SOA"
|
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return str(self.name)
|
return str(self.name)
|
||||||
|
|
||||||
|
@ -718,7 +497,7 @@ class SOA(models.Model):
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class Extension(models.Model):
|
class Extension(AclMixin, models.Model):
|
||||||
""" Extension dns type example.org. Précise si tout le monde peut
|
""" Extension dns type example.org. Précise si tout le monde peut
|
||||||
l'utiliser, associé à un origin (ip d'origine)"""
|
l'utiliser, associé à un origin (ip d'origine)"""
|
||||||
PRETTY_NAME = "Extensions dns"
|
PRETTY_NAME = "Extensions dns"
|
||||||
|
@ -772,56 +551,12 @@ class Extension(models.Model):
|
||||||
:return: Une instance extension évidemment"""
|
:return: Une instance extension évidemment"""
|
||||||
return Extension.objects.get(pk=extensionid)
|
return Extension.objects.get(pk=extensionid)
|
||||||
|
|
||||||
def can_create(user_request, *args, **kwargs):
|
|
||||||
"""Verifie que l'user a les bons droits infra pour créer
|
|
||||||
une extension
|
|
||||||
:param user_request: instance utilisateur qui fait la requête
|
|
||||||
:return: soit True, soit False avec la raison de l'échec"""
|
|
||||||
return user_request.has_perm('machines.add_extension'), u"Vous n'avez pas le droit\
|
|
||||||
de créer une extension"
|
|
||||||
|
|
||||||
def can_edit(self, user_request, *args, **kwargs):
|
|
||||||
"""Verifie que l'user a les bons droits infra pour editer
|
|
||||||
cette instance extension
|
|
||||||
:param self: Instance extension à 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_extension'):
|
|
||||||
return False, u"Vous n'avez pas le droit d'éditer des extensions"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def can_delete(self, user_request, *args, **kwargs):
|
|
||||||
"""Verifie que l'user a les bons droits infra pour supprimer
|
|
||||||
cette instance extension
|
|
||||||
:param self: Instance extension à delete
|
|
||||||
:param user_request: Utilisateur qui fait la requête
|
|
||||||
:return: soit True, soit False avec la raison de l'échec"""
|
|
||||||
return user_request.has_perm('machines.delete_extension'), u"Vous n'avez pas le droit\
|
|
||||||
de supprimer des extension"
|
|
||||||
|
|
||||||
def can_view_all(user_request, *args, **kwargs):
|
|
||||||
"""Vérifie qu'on peut bien afficher l'ensemble des extension,
|
|
||||||
droit particulier view objet correspondant
|
|
||||||
:param user_request: instance user qui fait l'edition
|
|
||||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
|
||||||
return user_request.has_perm('machines.view_extension'), u"Vous n'avez pas le droit\
|
|
||||||
de voir les extensions"
|
|
||||||
|
|
||||||
def can_use_all(user_request, *args, **kwargs):
|
def can_use_all(user_request, *args, **kwargs):
|
||||||
"""Superdroit qui permet d'utiliser toutes les extensions sans restrictions
|
"""Superdroit qui permet d'utiliser toutes les extensions sans restrictions
|
||||||
:param user_request: instance user qui fait l'edition
|
:param user_request: instance user qui fait l'edition
|
||||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
:return: True ou False avec la raison de l'échec le cas échéant"""
|
||||||
return user_request.has_perm('machines.use_all_extension'), None
|
return user_request.has_perm('machines.use_all_extension'), None
|
||||||
|
|
||||||
def can_view(self, user_request, *args, **kwargs):
|
|
||||||
"""Vérifie qu'on peut bien voir cette instance particulière avec
|
|
||||||
droit view objet
|
|
||||||
:param self: instance extension à voir
|
|
||||||
:param user_request: instance user qui fait l'edition
|
|
||||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
|
||||||
return user_request.has_perm('machines.view_extension'), u"Vous n'avez pas le droit\
|
|
||||||
de voir les extensions"
|
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
|
@ -831,7 +566,7 @@ class Extension(models.Model):
|
||||||
super(Extension, self).clean(*args, **kwargs)
|
super(Extension, self).clean(*args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
class Mx(models.Model):
|
class Mx(AclMixin, models.Model):
|
||||||
""" Entrées des MX. Enregistre la zone (extension) associée et la
|
""" Entrées des MX. Enregistre la zone (extension) associée et la
|
||||||
priorité
|
priorité
|
||||||
Todo : pouvoir associer un MX à une interface """
|
Todo : pouvoir associer un MX à une interface """
|
||||||
|
@ -858,55 +593,11 @@ class Mx(models.Model):
|
||||||
:return: Une instance mx évidemment"""
|
:return: Une instance mx évidemment"""
|
||||||
return Mx.objects.get(pk=mxid)
|
return Mx.objects.get(pk=mxid)
|
||||||
|
|
||||||
def can_create(user_request, *args, **kwargs):
|
|
||||||
"""Verifie que l'user a les bons droits infra pour créer
|
|
||||||
un mx
|
|
||||||
:param user_request: instance utilisateur qui fait la requête
|
|
||||||
:return: soit True, soit False avec la raison de l'échec"""
|
|
||||||
return user_request.has_perm('machines.add_mx'), u"Vous n'avez pas le droit\
|
|
||||||
de créer un enregistrement MX"
|
|
||||||
|
|
||||||
def can_edit(self, user_request, *args, **kwargs):
|
|
||||||
"""Verifie que l'user a les bons droits infra pour editer
|
|
||||||
cette instance mx
|
|
||||||
:param self: Instance mx à 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_mx'):
|
|
||||||
return False, u"Vous n'avez pas le droit d'éditer des enregstrements MX"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def can_delete(self, user_request, *args, **kwargs):
|
|
||||||
"""Verifie que l'user a les bons droits infra pour del
|
|
||||||
cette instance mx
|
|
||||||
:param self: Instance mx à delete
|
|
||||||
:param user_request: Utilisateur qui fait la requête
|
|
||||||
:return: soit True, soit False avec la raison de l'échec"""
|
|
||||||
return user_request.has_perm('machines.delete_mx'), u"Vous n'avez pas le droit\
|
|
||||||
de supprimer un enregistrement MX"
|
|
||||||
|
|
||||||
def can_view_all(user_request, *args, **kwargs):
|
|
||||||
"""Vérifie qu'on peut bien afficher l'ensemble des mx,
|
|
||||||
droit particulier view objet correspondant
|
|
||||||
:param user_request: instance user qui fait l'edition
|
|
||||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
|
||||||
return user_request.has_perm('machines.view_mx'), u"Vous n'avez pas le droit\
|
|
||||||
de voir les enregistrements MX"
|
|
||||||
|
|
||||||
def can_view(self, user_request, *args, **kwargs):
|
|
||||||
"""Vérifie qu'on peut bien voir cette instance particulière avec
|
|
||||||
droit view objet
|
|
||||||
:param self: instance mx à voir
|
|
||||||
:param user_request: instance user qui fait l'edition
|
|
||||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
|
||||||
return user_request.has_perm('machines.view_mx'), u"Vous n'avez pas le droit\
|
|
||||||
de voir les enregistrements MX"
|
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return str(self.zone) + ' ' + str(self.priority) + ' ' + str(self.name)
|
return str(self.zone) + ' ' + str(self.priority) + ' ' + str(self.name)
|
||||||
|
|
||||||
|
|
||||||
class Ns(models.Model):
|
class Ns(AclMixin, models.Model):
|
||||||
"""Liste des enregistrements name servers par zone considéérée"""
|
"""Liste des enregistrements name servers par zone considéérée"""
|
||||||
PRETTY_NAME = "Enregistrements NS"
|
PRETTY_NAME = "Enregistrements NS"
|
||||||
|
|
||||||
|
@ -929,55 +620,11 @@ class Ns(models.Model):
|
||||||
:return: Une instance ns évidemment"""
|
:return: Une instance ns évidemment"""
|
||||||
return Ns.objects.get(pk=nsid)
|
return Ns.objects.get(pk=nsid)
|
||||||
|
|
||||||
def can_create(user_request, *args, **kwargs):
|
|
||||||
"""Verifie que l'user a les bons droits infra pour créer
|
|
||||||
un ns
|
|
||||||
:param user_request: instance utilisateur qui fait la requête
|
|
||||||
:return: soit True, soit False avec la raison de l'échec"""
|
|
||||||
return user_request.has_perm('machines.add_ns'), u"Vous n'avez pas le droit\
|
|
||||||
de créer un enregistrement NS"
|
|
||||||
|
|
||||||
def can_edit(self, user_request, *args, **kwargs):
|
|
||||||
"""Verifie que l'user a les bons droits infra pour editer
|
|
||||||
cette instance ns
|
|
||||||
:param self: Instance ns à 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_ns'):
|
|
||||||
return False, u"Vous n'avez pas le droit d'éditer des enregistrements NS"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def can_delete(self, user_request, *args, **kwargs):
|
|
||||||
"""Verifie que l'user a les bons droits infra pour del
|
|
||||||
cette instance ns
|
|
||||||
:param self: Instance ns à delete
|
|
||||||
:param user_request: Utilisateur qui fait la requête
|
|
||||||
:return: soit True, soit False avec la raison de l'échec"""
|
|
||||||
return user_request.has_perm('machines.del_ns'), u"Vous n'avez pas le droit\
|
|
||||||
de supprimer un enregistrement NS"
|
|
||||||
|
|
||||||
def can_view_all(user_request, *args, **kwargs):
|
|
||||||
"""Vérifie qu'on peut bien afficher l'ensemble des ns,
|
|
||||||
droit particulier view objet correspondant
|
|
||||||
:param user_request: instance user qui fait l'edition
|
|
||||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
|
||||||
return user_request.has_perm('machines.view_ns'), u"Vous n'avez pas le droit\
|
|
||||||
de voir les enregistrements NS"
|
|
||||||
|
|
||||||
def can_view(self, user_request, *args, **kwargs):
|
|
||||||
"""Vérifie qu'on peut bien voir cette instance particulière avec
|
|
||||||
droit view objet
|
|
||||||
:param self: instance ns à voir
|
|
||||||
:param user_request: instance user qui fait l'edition
|
|
||||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
|
||||||
return user_request.has_perm('machines.view_ns'), u"Vous n'avez pas le droit\
|
|
||||||
de voir les enregistrements NS"
|
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return str(self.zone) + ' ' + str(self.ns)
|
return str(self.zone) + ' ' + str(self.ns)
|
||||||
|
|
||||||
|
|
||||||
class Txt(models.Model):
|
class Txt(AclMixin, models.Model):
|
||||||
""" Un enregistrement TXT associé à une extension"""
|
""" Un enregistrement TXT associé à une extension"""
|
||||||
PRETTY_NAME = "Enregistrement TXT"
|
PRETTY_NAME = "Enregistrement TXT"
|
||||||
|
|
||||||
|
@ -996,50 +643,6 @@ class Txt(models.Model):
|
||||||
:return: Une instance txt évidemment"""
|
:return: Une instance txt évidemment"""
|
||||||
return Txt.objects.get(pk=txtid)
|
return Txt.objects.get(pk=txtid)
|
||||||
|
|
||||||
def can_create(user_request, *args, **kwargs):
|
|
||||||
"""Verifie que l'user a les bons droits infra pour créer
|
|
||||||
un txt
|
|
||||||
:param user_request: instance utilisateur qui fait la requête
|
|
||||||
:return: soit True, soit False avec la raison de l'échec"""
|
|
||||||
return user_request.has_perm('machines.add_txt'), u"Vous n'avez pas le droit\
|
|
||||||
de créer un enregistrement TXT"
|
|
||||||
|
|
||||||
def can_edit(self, user_request, *args, **kwargs):
|
|
||||||
"""Verifie que l'user a les bons droits infra pour editer
|
|
||||||
cette instance txt
|
|
||||||
:param self: Instance txt à 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_txt'):
|
|
||||||
return False, u"Vous n'avez pas le droit d'éditer des enregistrement TXT"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def can_delete(self, user_request, *args, **kwargs):
|
|
||||||
"""Verifie que l'user a les bons droits infra pour del
|
|
||||||
cette instance txt
|
|
||||||
:param self: Instance txt à delete
|
|
||||||
:param user_request: Utilisateur qui fait la requête
|
|
||||||
:return: soit True, soit False avec la raison de l'échec"""
|
|
||||||
return user_request.has_perm('machines.delete_txt'), u"Vous n'avez pas le droit\
|
|
||||||
de supprimer des enregistrements TXT"
|
|
||||||
|
|
||||||
def can_view_all(user_request, *args, **kwargs):
|
|
||||||
"""Vérifie qu'on peut bien afficher l'ensemble des txt,
|
|
||||||
droit particulier view objet correspondant
|
|
||||||
:param user_request: instance user qui fait l'edition
|
|
||||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
|
||||||
return user_request.has_perm('machines.view_txt'), u"Vous n'avez pas le droit\
|
|
||||||
de voir les enregistrements TXT"
|
|
||||||
|
|
||||||
def can_view(self, user_request, *args, **kwargs):
|
|
||||||
"""Vérifie qu'on peut bien voir cette instance particulière avec
|
|
||||||
droit view objet
|
|
||||||
:param self: instance txt à voir
|
|
||||||
:param user_request: instance user qui fait l'edition
|
|
||||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
|
||||||
return user_request.has_perm('machines.view_txt'), u"Vous n'avez pas le droit\
|
|
||||||
de voir les enregistrements TXT"
|
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return str(self.zone) + " : " + str(self.field1) + " " +\
|
return str(self.zone) + " : " + str(self.field1) + " " +\
|
||||||
str(self.field2)
|
str(self.field2)
|
||||||
|
@ -1050,7 +653,7 @@ class Txt(models.Model):
|
||||||
return str(self.field1).ljust(15) + " IN TXT " + str(self.field2)
|
return str(self.field1).ljust(15) + " IN TXT " + str(self.field2)
|
||||||
|
|
||||||
|
|
||||||
class Srv(models.Model):
|
class Srv(AclMixin, models.Model):
|
||||||
PRETTY_NAME = "Enregistrement Srv"
|
PRETTY_NAME = "Enregistrement Srv"
|
||||||
|
|
||||||
TCP = 'TCP'
|
TCP = 'TCP'
|
||||||
|
@ -1104,50 +707,6 @@ class Srv(models.Model):
|
||||||
:return: Une instance srv évidemment"""
|
:return: Une instance srv évidemment"""
|
||||||
return Srv.objects.get(pk=srvid)
|
return Srv.objects.get(pk=srvid)
|
||||||
|
|
||||||
def can_create(user_request, *args, **kwargs):
|
|
||||||
"""Verifie que l'user a les bons droits infra pour créer
|
|
||||||
un srv
|
|
||||||
:param user_request: instance utilisateur qui fait la requête
|
|
||||||
:return: soit True, soit False avec la raison de l'échec"""
|
|
||||||
return user_request.has_perm('machines.add_soa'), u"Vous n'avez pas le droit\
|
|
||||||
de créer un enregistrement SRV"
|
|
||||||
|
|
||||||
def can_edit(self, user_request, *args, **kwargs):
|
|
||||||
"""Verifie que l'user a les bons droits infra pour editer
|
|
||||||
cette instance srv
|
|
||||||
:param self: Instance srv à 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_soa'):
|
|
||||||
return False, u"Vous n'avez pas le droit d'éditer des enregistrements SRV"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def can_delete(self, user_request, *args, **kwargs):
|
|
||||||
"""Verifie que l'user a les bons droits infra pour del
|
|
||||||
cette instance srv
|
|
||||||
:param self: Instance srv à delete
|
|
||||||
:param user_request: Utilisateur qui fait la requête
|
|
||||||
:return: soit True, soit False avec la raison de l'échec"""
|
|
||||||
return user_request.has_perm('machines.delete_soa'), u"Vous n'avez pas le droit\
|
|
||||||
de supprimer un enregistrement SRV"
|
|
||||||
|
|
||||||
def can_view_all(user_request, *args, **kwargs):
|
|
||||||
"""Vérifie qu'on peut bien afficher l'ensemble des srv,
|
|
||||||
droit particulier view objet correspondant
|
|
||||||
:param user_request: instance user qui fait l'edition
|
|
||||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
|
||||||
return user_request.has_perm('machines.view_soa'), u"Vous n'avez pas le droit\
|
|
||||||
de voir les enregistrements SRV"
|
|
||||||
|
|
||||||
def can_view(self, user_request, *args, **kwargs):
|
|
||||||
"""Vérifie qu'on peut bien voir cette instance particulière avec
|
|
||||||
droit view objet
|
|
||||||
:param self: instance srv à voir
|
|
||||||
:param user_request: instance user qui fait l'edition
|
|
||||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
|
||||||
return user_request.has_perm('machines.view_soa'), u"Vous n'avez pas le droit\
|
|
||||||
de voir les enregistrements SRV"
|
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return str(self.service) + ' ' + str(self.protocole) + ' ' +\
|
return str(self.service) + ' ' + str(self.protocole) + ' ' +\
|
||||||
str(self.extension) + ' ' + str(self.priority) +\
|
str(self.extension) + ' ' + str(self.priority) +\
|
||||||
|
@ -1719,7 +1278,7 @@ class Domain(models.Model):
|
||||||
return str(self.name) + str(self.extension)
|
return str(self.name) + str(self.extension)
|
||||||
|
|
||||||
|
|
||||||
class IpList(models.Model):
|
class IpList(AclMixin, models.Model):
|
||||||
PRETTY_NAME = "Addresses ipv4"
|
PRETTY_NAME = "Addresses ipv4"
|
||||||
|
|
||||||
ipv4 = models.GenericIPAddressField(protocol='IPv4', unique=True)
|
ipv4 = models.GenericIPAddressField(protocol='IPv4', unique=True)
|
||||||
|
@ -1753,58 +1312,11 @@ class IpList(models.Model):
|
||||||
:return: Une instance iplist évidemment"""
|
:return: Une instance iplist évidemment"""
|
||||||
return IpList.objects.get(pk=iplistid)
|
return IpList.objects.get(pk=iplistid)
|
||||||
|
|
||||||
def can_create(user_request, *args, **kwargs):
|
|
||||||
"""Verifie que l'user a les bons droits infra pour créer
|
|
||||||
une ip
|
|
||||||
:param user_request: instance utilisateur qui fait la requête
|
|
||||||
:return: soit True, soit False avec la raison de l'échec"""
|
|
||||||
return user_request.has_perm('machines.add_iplist'), u"Vous n'avez pas le droit\
|
|
||||||
de créer une ip"
|
|
||||||
|
|
||||||
def can_edit(self, user_request, *args, **kwargs):
|
|
||||||
"""Verifie que l'user a les bons droits infra pour editer
|
|
||||||
cette instance ip
|
|
||||||
:param self: Instance ip à 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_iplist'):
|
|
||||||
return False, u"Vous n'avez pas le droit d'éditer des enregistrements ip"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def can_delete(self, user_request, *args, **kwargs):
|
|
||||||
"""Verifie que l'user a les bons droits infra pour delete
|
|
||||||
cette instance ip
|
|
||||||
:param self: Instance ip à delete
|
|
||||||
: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_iplist'):
|
|
||||||
return False, u"Vous n'avez pas le droit d'éditer des enregistrements ip"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def can_view_all(user_request, *args, **kwargs):
|
|
||||||
"""Vérifie qu'on peut bien afficher l'ensemble des ip,
|
|
||||||
droit particulier view objet correspondant
|
|
||||||
: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.view_iplist'):
|
|
||||||
return False, u"Vous n'avez pas le droit de voir des enregistrements ip"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def can_view(self, user_request, *args, **kwargs):
|
|
||||||
"""Vérifie qu'on peut bien voir cette instance particulière avec
|
|
||||||
droit infra
|
|
||||||
:param self: instance iplist à voir
|
|
||||||
: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.view_iplist'):
|
|
||||||
return False, u"Vous n'avez pas le droit de voir des enregistrements ip"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.ipv4
|
return self.ipv4
|
||||||
|
|
||||||
|
|
||||||
class Service(models.Model):
|
class Service(AclMixin, models.Model):
|
||||||
""" Definition d'un service (dhcp, dns, etc)"""
|
""" Definition d'un service (dhcp, dns, etc)"""
|
||||||
PRETTY_NAME = "Services à générer (dhcp, dns, etc)"
|
PRETTY_NAME = "Services à générer (dhcp, dns, etc)"
|
||||||
|
|
||||||
|
@ -1851,50 +1363,6 @@ class Service(models.Model):
|
||||||
:return: Une instance service évidemment"""
|
:return: Une instance service évidemment"""
|
||||||
return Service.objects.get(pk=serviceid)
|
return Service.objects.get(pk=serviceid)
|
||||||
|
|
||||||
def can_create(user_request, *args, **kwargs):
|
|
||||||
"""Verifie que l'user a les bons droits infra pour créer
|
|
||||||
un service
|
|
||||||
:param user_request: instance utilisateur qui fait la requête
|
|
||||||
:return: soit True, soit False avec la raison de l'échec"""
|
|
||||||
return user_request.has_perm('machines.add_service'), u"Vous n'avez pas le droit\
|
|
||||||
de créer un service"
|
|
||||||
|
|
||||||
def can_edit(self, user_request, *args, **kwargs):
|
|
||||||
"""Verifie que l'user a les bons droits infra pour editer
|
|
||||||
cette instance service
|
|
||||||
:param self: Instance service à 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_service'):
|
|
||||||
return False, u"Vous n'avez pas le droit d'éditer des services"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def can_delete(self, user_request, *args, **kwargs):
|
|
||||||
"""Verifie que l'user a les bons droits infra pour delete
|
|
||||||
cette instance service
|
|
||||||
:param self: Instance service à delete
|
|
||||||
:param user_request: Utilisateur qui fait la requête
|
|
||||||
:return: soit True, soit False avec la raison de l'échec"""
|
|
||||||
return user_request.has_perm('machines.delete_service'), u"Vous n'avez pas le droit\
|
|
||||||
de supprimer un service"
|
|
||||||
|
|
||||||
def can_view_all(user_request, *args, **kwargs):
|
|
||||||
"""Vérifie qu'on peut bien afficher l'ensemble des services,
|
|
||||||
droit particulier view objet correspondant
|
|
||||||
:param user_request: instance user qui fait l'edition
|
|
||||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
|
||||||
return user_request.has_perm('machines.view_service'), u"Vous n'avez pas le droit\
|
|
||||||
de voir des services"
|
|
||||||
|
|
||||||
def can_view(self, user_request, *args, **kwargs):
|
|
||||||
"""Vérifie qu'on peut bien voir cette instance particulière avec
|
|
||||||
droit view objet
|
|
||||||
:param self: instance service à voir
|
|
||||||
:param user_request: instance user qui fait l'edition
|
|
||||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
|
||||||
return user_request.has_perm('machines.view_service'), u"Vous n'avez pas le droit\
|
|
||||||
de voir des services"
|
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return str(self.service_type)
|
return str(self.service_type)
|
||||||
|
|
||||||
|
@ -1908,7 +1376,7 @@ def regen(service):
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
class Service_link(models.Model):
|
class Service_link(AclMixin, models.Model):
|
||||||
""" Definition du lien entre serveurs et services"""
|
""" Definition du lien entre serveurs et services"""
|
||||||
PRETTY_NAME = "Relation entre service et serveur"
|
PRETTY_NAME = "Relation entre service et serveur"
|
||||||
|
|
||||||
|
@ -1941,56 +1409,11 @@ class Service_link(models.Model):
|
||||||
:return: Une instance servicelink évidemment"""
|
:return: Une instance servicelink évidemment"""
|
||||||
return ServiceLink.objects.get(pk=servicelinkid)
|
return ServiceLink.objects.get(pk=servicelinkid)
|
||||||
|
|
||||||
def can_create(user_request, *args, **kwargs):
|
|
||||||
"""Verifie que l'user a les bons droits infra pour créer
|
|
||||||
un servicelink
|
|
||||||
:param user_request: instance utilisateur qui fait la requête
|
|
||||||
:return: soit True, soit False avec la raison de l'échec"""
|
|
||||||
return user_request.has_perm('machines.add_service'), u"Vous n'avez pas le droit\
|
|
||||||
de créer un service"
|
|
||||||
|
|
||||||
def can_edit(self, user_request, *args, **kwargs):
|
|
||||||
"""Verifie que l'user a les bons droits infra pour editer
|
|
||||||
cette instance servicelink
|
|
||||||
:param self: Instance servicelink à 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_service'):
|
|
||||||
return False, u"Vous n'avez pas le droit d'éditer des services"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def can_delete(self, user_request, *args, **kwargs):
|
|
||||||
"""Verifie que l'user a les bons droits infra pour delete
|
|
||||||
cette instance servicelink
|
|
||||||
:param self: Instance servicelink à delete
|
|
||||||
: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_service'):
|
|
||||||
return False, u"Vous n'avez pas le droit d'éditer des services"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def can_view_all(user_request, *args, **kwargs):
|
|
||||||
"""Vérifie qu'on peut bien afficher l'ensemble des services,
|
|
||||||
droit particulier view objet correspondant
|
|
||||||
:param user_request: instance user qui fait l'edition
|
|
||||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
|
||||||
return user_request.has_perm('machines.view_service'), u"Vous n'avez pas le droit\
|
|
||||||
de voir des liens de services"
|
|
||||||
|
|
||||||
def can_view(self, user_request, *args, **kwargs):
|
|
||||||
"""Vérifie qu'on peut bien voir cette instance particulière avec
|
|
||||||
droit view objet
|
|
||||||
:param self: instance service à voir
|
|
||||||
:param user_request: instance user qui fait l'edition
|
|
||||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
|
||||||
return user_request.has_perm('machines.view_service'), u"Vous n'avez pas le droit\
|
|
||||||
de voir des liens de services"
|
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return str(self.server) + " " + str(self.service)
|
return str(self.server) + " " + str(self.service)
|
||||||
|
|
||||||
|
|
||||||
class OuverturePortList(models.Model):
|
class OuverturePortList(AclMixin, models.Model):
|
||||||
"""Liste des ports ouverts sur une interface."""
|
"""Liste des ports ouverts sur une interface."""
|
||||||
PRETTY_NAME = "Profil d'ouverture de ports"
|
PRETTY_NAME = "Profil d'ouverture de ports"
|
||||||
|
|
||||||
|
@ -2010,24 +1433,6 @@ class OuverturePortList(models.Model):
|
||||||
:return: Une instance ouvertureportlist évidemment"""
|
:return: Une instance ouvertureportlist évidemment"""
|
||||||
return OuverturePortList.objects.get(pk=ouvertureportlistid)
|
return OuverturePortList.objects.get(pk=ouvertureportlistid)
|
||||||
|
|
||||||
def can_create(user_request, *args, **kwargs):
|
|
||||||
"""Verifie que l'user a les bons droits bureau pour créer
|
|
||||||
une ouverture de port
|
|
||||||
:param user_request: instance utilisateur qui fait la requête
|
|
||||||
:return: soit True, soit False avec la raison de l'échec"""
|
|
||||||
return user_request.has_perm('machines.add_ouvertureportlist') , u"Vous n'avez pas le droit\
|
|
||||||
d'ouvrir un port"
|
|
||||||
|
|
||||||
def can_edit(self, user_request, *args, **kwargs):
|
|
||||||
"""Verifie que l'user a les bons droits bureau pour editer
|
|
||||||
cette instance ouvertureportlist
|
|
||||||
:param self: Instance ouvertureportlist à 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_ouvertureportlist'):
|
|
||||||
return False, u"Vous n'avez pas le droit d'éditer des ouvertures de port"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def can_delete(self, user_request, *args, **kwargs):
|
def can_delete(self, user_request, *args, **kwargs):
|
||||||
"""Verifie que l'user a les bons droits bureau pour delete
|
"""Verifie que l'user a les bons droits bureau pour delete
|
||||||
cette instance ouvertureportlist
|
cette instance ouvertureportlist
|
||||||
|
@ -2041,23 +1446,6 @@ class OuverturePortList(models.Model):
|
||||||
return False, u"Cette liste de ports est utilisée"
|
return False, u"Cette liste de ports est utilisée"
|
||||||
return True, None
|
return True, None
|
||||||
|
|
||||||
def can_view_all(user_request, *args, **kwargs):
|
|
||||||
"""Vérifie qu'on peut bien afficher l'ensemble des ouvertureport,
|
|
||||||
droit particulier view objet correspondant
|
|
||||||
:param user_request: instance user qui fait l'edition
|
|
||||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
|
||||||
return user_request.has_perm('machines.view_ouvertureportlist'), u"Vous n'avez pas le droit\
|
|
||||||
de voir des ouverture de ports"
|
|
||||||
|
|
||||||
def can_view(self, user_request, *args, **kwargs):
|
|
||||||
"""Vérifie qu'on peut bien voir cette instance particulière avec
|
|
||||||
droit view objet
|
|
||||||
:param self: instance ouvertureport à voir
|
|
||||||
:param user_request: instance user qui fait l'edition
|
|
||||||
:return: True ou False avec la raison de l'échec le cas échéant"""
|
|
||||||
return user_request.has_perm('machines.view_ouvertureportlist'), u"Vous n'avez pas le droit\
|
|
||||||
de voir des ouverture de ports"
|
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
|
@ -2090,7 +1478,7 @@ class OuverturePortList(models.Model):
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class OuverturePort(models.Model):
|
class OuverturePort(AclMixin, models.Model):
|
||||||
"""
|
"""
|
||||||
Représente un simple port ou une plage de ports.
|
Représente un simple port ou une plage de ports.
|
||||||
|
|
||||||
|
@ -2134,54 +1522,6 @@ class OuverturePort(models.Model):
|
||||||
:return: Une instance ouvertureport évidemment"""
|
:return: Une instance ouvertureport évidemment"""
|
||||||
return OuverturePort.objects.get(pk=ouvertureportid)
|
return OuverturePort.objects.get(pk=ouvertureportid)
|
||||||
|
|
||||||
def can_create(user_request, *args, **kwargs):
|
|
||||||
"""Verifie que l'user a les bons droits bureau pour créer
|
|
||||||
une ouverture de port
|
|
||||||
:param user_request: instance utilisateur qui fait la requête
|
|
||||||
:return: soit True, soit False avec la raison de l'échec"""
|
|
||||||
return user_request.has_perm('machines.add_ouvertureportlist') , u"Vous n'avez pas le droit\
|
|
||||||
d'ouvrir un port"
|
|
||||||
|
|
||||||
def can_edit(self, user_request, *args, **kwargs):
|
|
||||||
"""Verifie que l'user a les bons droits bureau pour editer
|
|
||||||
cette instance ouvertureport
|
|
||||||
:param self: Instance ouvertureport à 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_ouvertureportlist'):
|
|
||||||
return False, u"Vous n'avez pas le droit d'éditer des ouvertures de port"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def can_delete(self, user_request, *args, **kwargs):
|
|
||||||
"""Verifie que l'user a les bons droits bureau pour delete
|
|
||||||
cette instance ouvertureport
|
|
||||||
:param self: Instance ouvertureport à delete
|
|
||||||
: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_ouvertureportlist'):
|
|
||||||
return False, u"Vous n'avez pas le droit d'éditer des ouvertures de port"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def can_view_all(user_request, *args, **kwargs):
|
|
||||||
"""Vérifie qu'on peut bien afficher l'ensemble des ouvertureport,
|
|
||||||
droit particulier view objet correspondant
|
|
||||||
: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.view_ouvertureportlist'):
|
|
||||||
return False, u"Vous n'avez pas le droit d'éditer des ouvertures de port"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def can_view(self, user_request, *args, **kwargs):
|
|
||||||
"""Vérifie qu'on peut bien voir cette instance particulière avec
|
|
||||||
droit view objet
|
|
||||||
:param self: instance ouvertureport à voir
|
|
||||||
: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.view_ouvertureportlist'):
|
|
||||||
return False, u"Vous n'avez pas le droit d'éditer des ouvertures de port"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
if self.begin == self.end:
|
if self.begin == self.end:
|
||||||
return str(self.begin)
|
return str(self.begin)
|
||||||
|
|
|
@ -48,7 +48,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
<td>{{ extension.origin_v6 }}</td>
|
<td>{{ extension.origin_v6 }}</td>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<td class="text-right">
|
<td class="text-right">
|
||||||
{% can_create Extension %}
|
{% can_edit extension %}
|
||||||
{% include 'buttons/edit.html' with href='machines:edit-extension' id=extension.id %}
|
{% include 'buttons/edit.html' with href='machines:edit-extension' id=extension.id %}
|
||||||
{% acl_end %}
|
{% acl_end %}
|
||||||
{% include 'buttons/history.html' with href='machines:history' name='extension' id=extension.id %}
|
{% include 'buttons/history.html' with href='machines:history' name='extension' id=extension.id %}
|
||||||
|
|
|
@ -42,7 +42,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
<td>{{ vlan.comment }}</td>
|
<td>{{ vlan.comment }}</td>
|
||||||
<td>{% for range in vlan.iptype_set.all %}{{ range }}, {% endfor%}</td>
|
<td>{% for range in vlan.iptype_set.all %}{{ range }}, {% endfor%}</td>
|
||||||
<td class="text-right">
|
<td class="text-right">
|
||||||
{% can_create Vlan %}
|
{% can_edit vlan %}
|
||||||
{% include 'buttons/edit.html' with href='machines:edit-vlan' id=vlan.id %}
|
{% include 'buttons/edit.html' with href='machines:edit-vlan' id=vlan.id %}
|
||||||
{% acl_end %}
|
{% acl_end %}
|
||||||
{% include 'buttons/history.html' with href='machines:history' name='vlan' id=vlan.id %}
|
{% include 'buttons/history.html' with href='machines:history' name='vlan' id=vlan.id %}
|
||||||
|
|
72
re2o/mixins.py
Normal file
72
re2o/mixins.py
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
# -*- mode: python; coding: utf-8 -*-
|
||||||
|
# Re2o est un logiciel d'administration développé initiallement au rezometz. Il
|
||||||
|
# se veut agnostique au réseau considéré, de manière à être installable en
|
||||||
|
# quelques clics.
|
||||||
|
#
|
||||||
|
# Copyright © 2017 Gabriel Détraz
|
||||||
|
# Copyright © 2017 Goulven Kermarec
|
||||||
|
# Copyright © 2017 Augustin Lemesle
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License along
|
||||||
|
# with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
|
class AclMixin(object):
|
||||||
|
@classmethod
|
||||||
|
def get_classname(cls):
|
||||||
|
return str(cls.__name__).lower()
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def get_modulename(cls):
|
||||||
|
return str(cls.__module__).split('.')[0].lower()
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def can_create(cls, user_request, *args, **kwargs):
|
||||||
|
"""Verifie que l'user a les bons droits infra pour créer
|
||||||
|
un servicelink
|
||||||
|
:param user_request: instance utilisateur qui fait la requête
|
||||||
|
:return: soit True, soit False avec la raison de l'échec"""
|
||||||
|
return user_request.has_perm(cls.get_modulename() + '.add_' + cls.get_classname()), u"Vous n'avez pas le droit\
|
||||||
|
de créer un " + cls.get_classname()
|
||||||
|
|
||||||
|
def can_edit(self, user_request, *args, **kwargs):
|
||||||
|
"""Verifie que l'user a les bons droits infra pour editer
|
||||||
|
cette instance servicelink
|
||||||
|
:param self: Instance servicelink à editer
|
||||||
|
:param user_request: Utilisateur qui fait la requête
|
||||||
|
:return: soit True, soit False avec la raison de l'échec"""
|
||||||
|
return user_request.has_perm(self.get_modulename() + '.change_' + self.get_classname()), u"Vous n'avez pas le droit d'éditer des " + self.get_classname()
|
||||||
|
|
||||||
|
def can_delete(self, user_request, *args, **kwargs):
|
||||||
|
"""Verifie que l'user a les bons droits infra pour delete
|
||||||
|
cette instance servicelink
|
||||||
|
:param self: Instance servicelink à delete
|
||||||
|
:param user_request: Utilisateur qui fait la requête
|
||||||
|
:return: soit True, soit False avec la raison de l'échec"""
|
||||||
|
return user_request.has_perm(self.get_modulename() + '.delete_' + self.get_classname()), u"Vous n'avez pas le droit d'éditer des " + self.get_classname()
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def can_view_all(cls, user_request, *args, **kwargs):
|
||||||
|
"""Vérifie qu'on peut bien afficher l'ensemble des services,
|
||||||
|
droit particulier view objet correspondant
|
||||||
|
:param user_request: instance user qui fait l'edition
|
||||||
|
:return: True ou False avec la raison de l'échec le cas échéant"""
|
||||||
|
return user_request.has_perm(cls.get_modulename() + '.view_' + cls.get_classname()), u"Vous n'avez pas le droit de voir des " + cls.get_classname()
|
||||||
|
|
||||||
|
def can_view(self, user_request, *args, **kwargs):
|
||||||
|
"""Vérifie qu'on peut bien voir cette instance particulière avec
|
||||||
|
droit view objet
|
||||||
|
:param self: instance service à voir
|
||||||
|
:param user_request: instance user qui fait l'edition
|
||||||
|
:return: True ou False avec la raison de l'échec le cas échéant"""
|
||||||
|
return user_request.has_perm(self.get_modulename() + '.view_' + self.get_classname()), u"Vous n'avez pas le droit de voir des " + self.get_classname()
|
|
@ -48,8 +48,9 @@ from django.db import transaction
|
||||||
from reversion import revisions as reversion
|
from reversion import revisions as reversion
|
||||||
|
|
||||||
from machines.models import Machine, Interface, regen
|
from machines.models import Machine, Interface, regen
|
||||||
|
from re2o.mixins import AclMixin
|
||||||
|
|
||||||
class Stack(models.Model):
|
class Stack(AclMixin, models.Model):
|
||||||
"""Un objet stack. Regrouppe des switchs en foreign key
|
"""Un objet stack. Regrouppe des switchs en foreign key
|
||||||
,contient une id de stack, un switch id min et max dans
|
,contient une id de stack, un switch id min et max dans
|
||||||
le stack"""
|
le stack"""
|
||||||
|
@ -69,30 +70,6 @@ class Stack(models.Model):
|
||||||
def get_instance(stack_id, *args, **kwargs):
|
def get_instance(stack_id, *args, **kwargs):
|
||||||
return Stack.objects.get(pk=stack_id)
|
return Stack.objects.get(pk=stack_id)
|
||||||
|
|
||||||
def can_create(user_request, *args, **kwargs):
|
|
||||||
return user_request.has_perm('topologie.add_stack') , u"Vous n'avez pas le droit\
|
|
||||||
de créer un stack"
|
|
||||||
|
|
||||||
def can_edit(self, user_request, *args, **kwargs):
|
|
||||||
if not user_request.has_perm('topologie.change_stack'):
|
|
||||||
return False, u"Vous n'avez pas le droit d'éditer des stack"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def can_delete(self, user_request, *args, **kwargs):
|
|
||||||
if not user_request.has_perm('topologie.delete_stack'):
|
|
||||||
return False, u"Vous n'avez pas le droit de supprimer une stack"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def can_view_all(user_request, *args, **kwargs):
|
|
||||||
if not user_request.has_perm('topologie.view_stack'):
|
|
||||||
return False, u"Vous n'avez pas le droit de voir une stack"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def can_view(self, user_request, *args, **kwargs):
|
|
||||||
if not user_request.has_perm('topologie.view_stack'):
|
|
||||||
return False, u"Vous n'avez pas le droit de voir une stack"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return " ".join([self.name, self.stack_id])
|
return " ".join([self.name, self.stack_id])
|
||||||
|
|
||||||
|
@ -109,7 +86,7 @@ class Stack(models.Model):
|
||||||
inférieure à l'id minimale"})
|
inférieure à l'id minimale"})
|
||||||
|
|
||||||
|
|
||||||
class AccessPoint(Machine):
|
class AccessPoint(AclMixin, Machine):
|
||||||
"""Define a wireless AP. Inherit from machines.interfaces
|
"""Define a wireless AP. Inherit from machines.interfaces
|
||||||
|
|
||||||
Definition pour une borne wifi , hérite de machines.interfaces
|
Definition pour une borne wifi , hérite de machines.interfaces
|
||||||
|
@ -125,38 +102,14 @@ class AccessPoint(Machine):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
permissions = (
|
permissions = (
|
||||||
("view_ap", "Peut voir une borne"),
|
("view_accesspoint", "Peut voir une borne"),
|
||||||
)
|
)
|
||||||
|
|
||||||
def get_instance(ap_id, *args, **kwargs):
|
def get_instance(ap_id, *args, **kwargs):
|
||||||
return AccessPoint.objects.get(pk=ap_id)
|
return AccessPoint.objects.get(pk=ap_id)
|
||||||
|
|
||||||
def can_create(user_request, *args, **kwargs):
|
|
||||||
return user_request.has_perm('topologie.add_ap') , u"Vous n'avez pas le droit\
|
|
||||||
de créer une borne"
|
|
||||||
|
|
||||||
def can_edit(self, user_request, *args, **kwargs):
|
class Switch(AclMixin, Machine):
|
||||||
if not user_request.has_perm('topologie.change_ap'):
|
|
||||||
return False, u"Vous n'avez pas le droit d'éditer des bornes"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def can_delete(self, user_request, *args, **kwargs):
|
|
||||||
if not user_request.has_perm('topologie.delete_ap'):
|
|
||||||
return False, u"Vous n'avez pas le droit de supprimer une borne"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def can_view_all(user_request, *args, **kwargs):
|
|
||||||
if not user_request.has_perm('topologie.view_ap'):
|
|
||||||
return False, u"Vous n'avez pas le droit de voir les bornes"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def can_view(self, user_request, *args, **kwargs):
|
|
||||||
if not user_request.has_perm('topologie.view_ap'):
|
|
||||||
return False, u"Vous n'avez pas le droit de voir les bornes"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
|
|
||||||
class Switch(Machine):
|
|
||||||
""" Definition d'un switch. Contient un nombre de ports (number),
|
""" Definition d'un switch. Contient un nombre de ports (number),
|
||||||
un emplacement (location), un stack parent (optionnel, stack)
|
un emplacement (location), un stack parent (optionnel, stack)
|
||||||
et un id de membre dans le stack (stack_member_id)
|
et un id de membre dans le stack (stack_member_id)
|
||||||
|
@ -196,30 +149,6 @@ class Switch(Machine):
|
||||||
def get_instance(switch_id, *args, **kwargs):
|
def get_instance(switch_id, *args, **kwargs):
|
||||||
return Switch.objects.get(pk=switch_id)
|
return Switch.objects.get(pk=switch_id)
|
||||||
|
|
||||||
def can_create(user_request, *args, **kwargs):
|
|
||||||
return user_request.has_perm('topologie.add_switch') , u"Vous n'avez pas le droit\
|
|
||||||
de créer un switch"
|
|
||||||
|
|
||||||
def can_edit(self, user_request, *args, **kwargs):
|
|
||||||
if not user_request.has_perm('topologie.change_switch'):
|
|
||||||
return False, u"Vous n'avez pas le droit d'éditer des switch"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def can_delete(self, user_request, *args, **kwargs):
|
|
||||||
if not user_request.has_perm('topologie.delete_switch'):
|
|
||||||
return False, u"Vous n'avez pas le droit de supprimer un switch"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def can_view_all(user_request, *args, **kwargs):
|
|
||||||
if not user_request.has_perm('topologie.view_switch'):
|
|
||||||
return False, u"Vous n'avez pas le droit de voir les switch"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def can_view(self, user_request, *args, **kwargs):
|
|
||||||
if not user_request.has_perm('topologie.view_switch'):
|
|
||||||
return False, u"Vous n'avez pas le droit de voir les switch"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def clean(self):
|
def clean(self):
|
||||||
""" Verifie que l'id stack est dans le bon range
|
""" Verifie que l'id stack est dans le bon range
|
||||||
Appelle également le clean de la classe parente"""
|
Appelle également le clean de la classe parente"""
|
||||||
|
@ -267,7 +196,7 @@ class Switch(Machine):
|
||||||
return str(self.interface_set.first())
|
return str(self.interface_set.first())
|
||||||
|
|
||||||
|
|
||||||
class ModelSwitch(models.Model):
|
class ModelSwitch(AclMixin, models.Model):
|
||||||
"""Un modèle (au sens constructeur) de switch"""
|
"""Un modèle (au sens constructeur) de switch"""
|
||||||
PRETTY_NAME = "Modèle de switch"
|
PRETTY_NAME = "Modèle de switch"
|
||||||
reference = models.CharField(max_length=255)
|
reference = models.CharField(max_length=255)
|
||||||
|
@ -284,35 +213,11 @@ class ModelSwitch(models.Model):
|
||||||
def get_instance(model_switch_id, *args, **kwargs):
|
def get_instance(model_switch_id, *args, **kwargs):
|
||||||
return ModelSwitch.objects.get(pk=model_switch_id)
|
return ModelSwitch.objects.get(pk=model_switch_id)
|
||||||
|
|
||||||
def can_create(user_request, *args, **kwargs):
|
|
||||||
return user_request.has_perm('topologie.add_modelswitch') , u"Vous n'avez pas le droit\
|
|
||||||
de créer un modèle de switch"
|
|
||||||
|
|
||||||
def can_edit(self, user_request, *args, **kwargs):
|
|
||||||
if not user_request.has_perm('topologie.change_modelswitch'):
|
|
||||||
return False, u"Vous n'avez pas le droit d'éditer des modèle de switchs"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def can_delete(self, user_request, *args, **kwargs):
|
|
||||||
if not user_request.has_perm('topologie.delete_modelswitch'):
|
|
||||||
return False, u"Vous n'avez pas le droit de supprimer un modèle switch"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def can_view(self, user_request, *args, **kwargs):
|
|
||||||
if not user_request.has_perm('topologie.view_modelswitch'):
|
|
||||||
return False, u"Vous n'avez pas le droit de voir un modèle switch"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def can_view_all(user_request, *args, **kwargs):
|
|
||||||
if not user_request.has_perm('topologie.view_modelswitch'):
|
|
||||||
return False, u"Vous n'avez pas le droit de voir un modèle switch"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return str(self.constructor) + ' ' + self.reference
|
return str(self.constructor) + ' ' + self.reference
|
||||||
|
|
||||||
|
|
||||||
class ConstructorSwitch(models.Model):
|
class ConstructorSwitch(AclMixin, models.Model):
|
||||||
"""Un constructeur de switch"""
|
"""Un constructeur de switch"""
|
||||||
PRETTY_NAME = "Constructeur de switch"
|
PRETTY_NAME = "Constructeur de switch"
|
||||||
name = models.CharField(max_length=255)
|
name = models.CharField(max_length=255)
|
||||||
|
@ -325,36 +230,11 @@ class ConstructorSwitch(models.Model):
|
||||||
def get_instance(constructor_switch_id, *args, **kwargs):
|
def get_instance(constructor_switch_id, *args, **kwargs):
|
||||||
return ConstructorSwitch.objects.get(pk=constructor_switch_id)
|
return ConstructorSwitch.objects.get(pk=constructor_switch_id)
|
||||||
|
|
||||||
def can_create(user_request, *args, **kwargs):
|
|
||||||
return user_request.has_perm('topologie.add_constructorswitch') , u"Vous n'avez pas le droit\
|
|
||||||
de créer un constructeur de switch"
|
|
||||||
|
|
||||||
def can_edit(self, user_request, *args, **kwargs):
|
|
||||||
if not user_request.has_perm('topologie.change_constructorswitch'):
|
|
||||||
return False, u"Vous n'avez pas le droit d'éditer des\
|
|
||||||
constructeurs de switchs"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def can_delete(self, user_request, *args, **kwargs):
|
|
||||||
if not user_request.has_perm('topologie.delete_constructorswitch'):
|
|
||||||
return False, u"Vous n'avez pas le droit de supprimer un constructeur"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def can_view_all(user_request, *args, **kwargs):
|
|
||||||
if not user_request.has_perm('topologie.view_constructorswitch'):
|
|
||||||
return False, u"Vous n'avez pas le droit de voir un constructeur"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def can_view(self, user_request, *args, **kwargs):
|
|
||||||
if not user_request.has_perm('topologie.view_constructorswitch'):
|
|
||||||
return False, u"Vous n'avez pas le droit de voir un constructeur"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
|
|
||||||
class Port(models.Model):
|
class Port(AclMixin, models.Model):
|
||||||
""" Definition d'un port. Relié à un switch(foreign_key),
|
""" Definition d'un port. Relié à un switch(foreign_key),
|
||||||
un port peut etre relié de manière exclusive à :
|
un port peut etre relié de manière exclusive à :
|
||||||
- une chambre (room)
|
- une chambre (room)
|
||||||
|
@ -426,30 +306,6 @@ class Port(models.Model):
|
||||||
.prefetch_related('switch__interface_set__domain__extension')\
|
.prefetch_related('switch__interface_set__domain__extension')\
|
||||||
.get(pk=port_id)
|
.get(pk=port_id)
|
||||||
|
|
||||||
def can_create(user_request, *args, **kwargs):
|
|
||||||
return user_request.has_perm('topologie.add_port') , u"Vous n'avez pas le droit\
|
|
||||||
de créer un port"
|
|
||||||
|
|
||||||
def can_edit(self, user_request, *args, **kwargs):
|
|
||||||
if not user_request.has_perm('topologie.change_port'):
|
|
||||||
return False, u"Vous n'avez pas le droit d'éditer des ports"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def can_delete(self, user_request, *args, **kwargs):
|
|
||||||
if not user_request.has_perm('topologie.delete_port'):
|
|
||||||
return False, u"Vous n'avez pas le droit de supprimer un port"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def can_view_all(user_request, *args, **kwargs):
|
|
||||||
if not user_request.has_perm('topologie.view_port'):
|
|
||||||
return False, u"Vous n'avez pas le droit de voir les ports"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def can_view(self, user_request, *args, **kwargs):
|
|
||||||
if not user_request.has_perm('topologie.view_port'):
|
|
||||||
return False, u"Vous n'avez pas le droit de voir les ports"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def make_port_related(self):
|
def make_port_related(self):
|
||||||
""" Synchronise le port distant sur self"""
|
""" Synchronise le port distant sur self"""
|
||||||
related_port = self.related
|
related_port = self.related
|
||||||
|
@ -494,7 +350,7 @@ class Port(models.Model):
|
||||||
return str(self.switch) + " - " + str(self.port)
|
return str(self.switch) + " - " + str(self.port)
|
||||||
|
|
||||||
|
|
||||||
class Room(models.Model):
|
class Room(AclMixin, models.Model):
|
||||||
"""Une chambre/local contenant une prise murale"""
|
"""Une chambre/local contenant une prise murale"""
|
||||||
PRETTY_NAME = "Chambre/ Prise murale"
|
PRETTY_NAME = "Chambre/ Prise murale"
|
||||||
|
|
||||||
|
@ -510,30 +366,6 @@ class Room(models.Model):
|
||||||
def get_instance(room_id, *args, **kwargs):
|
def get_instance(room_id, *args, **kwargs):
|
||||||
return Room.objects.get(pk=room_id)
|
return Room.objects.get(pk=room_id)
|
||||||
|
|
||||||
def can_create(user_request, *args, **kwargs):
|
|
||||||
return user_request.has_perm('topologie.add_room') , u"Vous n'avez pas le droit\
|
|
||||||
de créer une chambre"
|
|
||||||
|
|
||||||
def can_edit(self, user_request, *args, **kwargs):
|
|
||||||
if not user_request.has_perm('topologie.change_room'):
|
|
||||||
return False, u"Vous n'avez pas le droit d'éditer une chambre"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def can_delete(self, user_request, *args, **kwargs):
|
|
||||||
if not user_request.has_perm('topologie.delete_room'):
|
|
||||||
return False, u"Vous n'avez pas le droit de supprimer une chambre"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def can_view_all(user_request, *args, **kwargs):
|
|
||||||
if not user_request.has_perm('topologie.view_room'):
|
|
||||||
return False, u"Vous n'avez pas le droit de voir les chambres"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def can_view(self, user_request, *args, **kwargs):
|
|
||||||
if not user_request.has_perm('topologie.view_room'):
|
|
||||||
return False, u"Vous n'avez pas le droit de voir les chambres"
|
|
||||||
return True, None
|
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
|
|
288
users/models.py
288
users/models.py
|
@ -76,6 +76,7 @@ import ldapdb.models.fields
|
||||||
from re2o.settings import RIGHTS_LINK, LDAP, GID_RANGES, UID_RANGES
|
from re2o.settings import RIGHTS_LINK, LDAP, GID_RANGES, UID_RANGES
|
||||||
from re2o.login import hashNT
|
from re2o.login import hashNT
|
||||||
from re2o.field_permissions import FieldPermissionModelMixin
|
from re2o.field_permissions import FieldPermissionModelMixin
|
||||||
|
from re2o.mixins import AclMixin
|
||||||
|
|
||||||
from cotisations.models import Cotisation, Facture, Paiement, Vente
|
from cotisations.models import Cotisation, Facture, Paiement, Vente
|
||||||
from machines.models import Domain, Interface, Machine, regen
|
from machines.models import Domain, Interface, Machine, regen
|
||||||
|
@ -922,7 +923,7 @@ def user_post_delete(sender, **kwargs):
|
||||||
user.ldap_del()
|
user.ldap_del()
|
||||||
regen('mailing')
|
regen('mailing')
|
||||||
|
|
||||||
class ServiceUser(AbstractBaseUser):
|
class ServiceUser(AclMixin, AbstractBaseUser):
|
||||||
""" Classe des users daemons, règle leurs accès au ldap"""
|
""" Classe des users daemons, règle leurs accès au ldap"""
|
||||||
readonly = 'readonly'
|
readonly = 'readonly'
|
||||||
ACCESS = (
|
ACCESS = (
|
||||||
|
@ -992,58 +993,6 @@ class ServiceUser(AbstractBaseUser):
|
||||||
def get_instance(userid, *args, **kwargs):
|
def get_instance(userid, *args, **kwargs):
|
||||||
return ServiceUser.objects.get(pk=userid)
|
return ServiceUser.objects.get(pk=userid)
|
||||||
|
|
||||||
def can_create(user_request, *args, **kwargs):
|
|
||||||
"""Check if an user can create a ServiceUser object.
|
|
||||||
|
|
||||||
:param user_request: The user who wants to create a user object.
|
|
||||||
:return: a message and a boolean which is True if the user can create
|
|
||||||
or if the `options.all_can_create` is set.
|
|
||||||
"""
|
|
||||||
return user_request.has_perm('users.add_serviceuser'), (
|
|
||||||
u"Vous n'avez pas le droit de créer un service user"
|
|
||||||
)
|
|
||||||
|
|
||||||
def can_edit(self, user_request, *args, **kwargs):
|
|
||||||
"""Check if an user can edit a ServiceUser object.
|
|
||||||
|
|
||||||
:param self: The ServiceUser which is to be edited.
|
|
||||||
:param user_request: The user who requests to edit self.
|
|
||||||
:return: a message and a boolean which is True if edition is granted.
|
|
||||||
"""
|
|
||||||
return user_request.has_perm('users.change_serviceuser'), (
|
|
||||||
u"Vous n'avez pas le droit d'éditer les services users"
|
|
||||||
)
|
|
||||||
|
|
||||||
def can_delete(self, user_request, *args, **kwargs):
|
|
||||||
"""Check if an user can delete a ServiceUser object.
|
|
||||||
|
|
||||||
:param self: The ServiceUser who is to be deleted.
|
|
||||||
:param user_request: The user who requests deletion.
|
|
||||||
:return: True if user_request has the right 'infra', and a message.
|
|
||||||
"""
|
|
||||||
return user_request.has_perm('users.delete_serviceuser'), u"Vous n'avez pas le droit de\
|
|
||||||
supprimer un service user"
|
|
||||||
|
|
||||||
def can_view_all(user_request, *args, **kwargs):
|
|
||||||
"""Check if an user can access to the list of every ServiceUser objects
|
|
||||||
|
|
||||||
:param user_request: The user who wants to view the list.
|
|
||||||
:return: True if the user can view the list and an explanation message.
|
|
||||||
"""
|
|
||||||
return user_request.has_perm('users.view_serviceuser'), u"Vous n'avez pas le droit de\
|
|
||||||
voir un service user"
|
|
||||||
|
|
||||||
def can_view(self, user_request, *args, **kwargs):
|
|
||||||
"""Check if an user can view a ServiceUser object.
|
|
||||||
|
|
||||||
:param self: The targeted ServiceUser.
|
|
||||||
:param user_request: The user who ask for viewing the target.
|
|
||||||
:return: A boolean telling if the acces is granted and an explanation
|
|
||||||
text
|
|
||||||
"""
|
|
||||||
return user_request.has_perm('users.view_serviceuser'), u"Vous n'avez pas le droit de\
|
|
||||||
voir un service user"
|
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.pseudo
|
return self.pseudo
|
||||||
|
|
||||||
|
@ -1061,7 +1010,7 @@ def service_user_post_delete(sender, **kwargs):
|
||||||
service_user.ldap_del()
|
service_user.ldap_del()
|
||||||
|
|
||||||
|
|
||||||
class School(models.Model):
|
class School(AclMixin, models.Model):
|
||||||
""" Etablissement d'enseignement"""
|
""" Etablissement d'enseignement"""
|
||||||
PRETTY_NAME = "Établissements enregistrés"
|
PRETTY_NAME = "Établissements enregistrés"
|
||||||
|
|
||||||
|
@ -1075,60 +1024,11 @@ class School(models.Model):
|
||||||
def get_instance(schoolid, *args, **kwargs):
|
def get_instance(schoolid, *args, **kwargs):
|
||||||
return School.objects.get(pk=schoolid)
|
return School.objects.get(pk=schoolid)
|
||||||
|
|
||||||
def can_create(user_request, *args, **kwargs):
|
|
||||||
"""Check if an user can create a School object.
|
|
||||||
|
|
||||||
:param user_request: The user who wants to create a user object.
|
|
||||||
:return: a message and a boolean which is True if the user can create.
|
|
||||||
"""
|
|
||||||
return user_request.has_perm('users.add_school'), u"Vous n'avez pas le\
|
|
||||||
droit de créer des écoles"
|
|
||||||
|
|
||||||
def can_edit(self, user_request, *args, **kwargs):
|
|
||||||
"""Check if an user can edit a School object.
|
|
||||||
|
|
||||||
:param self: The School which is to be edited.
|
|
||||||
:param user_request: The user who requests to edit self.
|
|
||||||
:return: a message and a boolean which is True if edition is granted.
|
|
||||||
"""
|
|
||||||
return user_request.has_perm('users.change_school'), u"Vous n'avez pas le\
|
|
||||||
droit d'éditer des écoles"
|
|
||||||
|
|
||||||
def can_delete(self, user_request, *args, **kwargs):
|
|
||||||
"""Check if an user can delete a School object.
|
|
||||||
|
|
||||||
:param self: The School which is to be deleted.
|
|
||||||
:param user_request: The user who requests deletion.
|
|
||||||
:return: True if deletion is granted, and a message.
|
|
||||||
"""
|
|
||||||
return user_request.has_perm('users.delete_school'), u"Vous n'avez pas le\
|
|
||||||
droit de supprimer des écoles"
|
|
||||||
|
|
||||||
def can_view_all(user_request, *args, **kwargs):
|
|
||||||
"""Check if an user can access to the list of every School objects
|
|
||||||
|
|
||||||
:param user_request: The user who wants to view the list.
|
|
||||||
:return: True if the user can view the list and an explanation message.
|
|
||||||
"""
|
|
||||||
return user_request.has_perm('users.view_school'), u"Vous n'avez pas le\
|
|
||||||
droit de voir les écoles"
|
|
||||||
|
|
||||||
def can_view(self, user_request, *args, **kwargs):
|
|
||||||
"""Check if an user can view a School object.
|
|
||||||
|
|
||||||
:param self: The targeted School.
|
|
||||||
:param user_request: The user who ask for viewing the target.
|
|
||||||
:return: A boolean telling if the acces is granted and an explanation
|
|
||||||
text
|
|
||||||
"""
|
|
||||||
return user_request.has_perm('users.view_school'), u"Vous n'avez pas le\
|
|
||||||
droit de voir les écoles"
|
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
|
|
||||||
class ListRight(Group):
|
class ListRight(AclMixin, Group):
|
||||||
""" Ensemble des droits existants. Chaque droit crée un groupe
|
""" Ensemble des droits existants. Chaque droit crée un groupe
|
||||||
ldap synchronisé, avec gid.
|
ldap synchronisé, avec gid.
|
||||||
Permet de gérer facilement les accès serveurs et autres
|
Permet de gérer facilement les accès serveurs et autres
|
||||||
|
@ -1161,55 +1061,6 @@ class ListRight(Group):
|
||||||
def get_instance(listrightid, *args, **kwargs):
|
def get_instance(listrightid, *args, **kwargs):
|
||||||
return ListRight.objects.get(pk=listrightid)
|
return ListRight.objects.get(pk=listrightid)
|
||||||
|
|
||||||
def can_create(user_request, *args, **kwargs):
|
|
||||||
"""Check if an user can create a ListRight object.
|
|
||||||
|
|
||||||
:param user_request: The user who wants to create a ListRight object.
|
|
||||||
:return: a message and a boolean which is True if the user can create.
|
|
||||||
"""
|
|
||||||
return user_request.has_perm('users.add_listright'), u"Vous n'avez pas le droit\
|
|
||||||
de créer des groupes de droits"
|
|
||||||
|
|
||||||
def can_edit(self, user_request, *args, **kwargs):
|
|
||||||
"""Check if an user can edit a ListRight object.
|
|
||||||
|
|
||||||
:param self: The object which is to be edited.
|
|
||||||
:param user_request: The user who requests to edit self.
|
|
||||||
:return: a message and a boolean which is True if edition is granted.
|
|
||||||
"""
|
|
||||||
return user_request.has_perm('users.change_listright'), u"Vous n'avez pas le droit\
|
|
||||||
d'éditer des groupes de droits"
|
|
||||||
|
|
||||||
def can_delete(self, user_request, *args, **kwargs):
|
|
||||||
"""Check if an user can delete a ListRight object.
|
|
||||||
|
|
||||||
:param self: The object which is to be deleted.
|
|
||||||
:param user_request: The user who requests deletion.
|
|
||||||
:return: True if deletion is granted, and a message.
|
|
||||||
"""
|
|
||||||
return user_request.has_perm('users.delete_listright'), u"Vous n'avez pas le droit\
|
|
||||||
de supprimer des groupes de droits"
|
|
||||||
|
|
||||||
def can_view_all(user_request, *args, **kwargs):
|
|
||||||
"""Check if an user can access to the list of every ListRight objects
|
|
||||||
|
|
||||||
:param user_request: The user who wants to view the list.
|
|
||||||
:return: True if the user can view the list and an explanation message.
|
|
||||||
"""
|
|
||||||
return user_request.has_perm('users.view_listright'), u"Vous n'avez pas le droit\
|
|
||||||
de voir les groupes de droits"
|
|
||||||
|
|
||||||
def can_view(self, user_request, *args, **kwargs):
|
|
||||||
"""Check if an user can view a ListRight object.
|
|
||||||
|
|
||||||
:param self: The targeted object.
|
|
||||||
:param user_request: The user who ask for viewing the target.
|
|
||||||
:return: A boolean telling if the acces is granted and an explanation
|
|
||||||
text
|
|
||||||
"""
|
|
||||||
return user_request.has_perm('users.view_listright'), u"Vous n'avez pas le droit\
|
|
||||||
de voir les groupes de droits"
|
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
|
@ -1247,7 +1098,7 @@ def listright_post_delete(sender, **kwargs):
|
||||||
right.ldap_del()
|
right.ldap_del()
|
||||||
|
|
||||||
|
|
||||||
class ListShell(models.Model):
|
class ListShell(AclMixin, models.Model):
|
||||||
"""Un shell possible. Pas de check si ce shell existe, les
|
"""Un shell possible. Pas de check si ce shell existe, les
|
||||||
admin sont des grands"""
|
admin sont des grands"""
|
||||||
PRETTY_NAME = "Liste des shells disponibles"
|
PRETTY_NAME = "Liste des shells disponibles"
|
||||||
|
@ -1266,60 +1117,11 @@ class ListShell(models.Model):
|
||||||
"""Return the canonical name of the shell"""
|
"""Return the canonical name of the shell"""
|
||||||
return self.shell.split("/")[-1]
|
return self.shell.split("/")[-1]
|
||||||
|
|
||||||
def can_create(user_request, *args, **kwargs):
|
|
||||||
"""Check if an user can create a ListShell object.
|
|
||||||
|
|
||||||
:param user_request: The user who wants to create a user object.
|
|
||||||
:return: a message and a boolean which is True if the user can create.
|
|
||||||
"""
|
|
||||||
return user_request.has_perm('users.add_listshell'), u"Vous n'avez pas le\
|
|
||||||
droit de créer des shells"
|
|
||||||
|
|
||||||
def can_edit(self, user_request, *args, **kwargs):
|
|
||||||
"""Check if an user can edit a ListShell object.
|
|
||||||
|
|
||||||
:param self: The Shell which is to be edited.
|
|
||||||
:param user_request: The user who requests to edit self.
|
|
||||||
:return: a message and a boolean which is True if edition is granted.
|
|
||||||
"""
|
|
||||||
return user_request.has_perm('users.change_listshell'), u"Vous n'avez pas le\
|
|
||||||
droit d'éditer des shells"
|
|
||||||
|
|
||||||
def can_delete(self, user_request, *args, **kwargs):
|
|
||||||
"""Check if an user can delete a ListShell object.
|
|
||||||
|
|
||||||
:param self: The Shell which is to be deleted.
|
|
||||||
:param user_request: The user who requests deletion.
|
|
||||||
:return: True if deletion is granted, and a message.
|
|
||||||
"""
|
|
||||||
return user_request.has_perm('users.delete_listshell'), u"Vous n'avez pas le\
|
|
||||||
droit de supprimer des shells"
|
|
||||||
|
|
||||||
def can_view_all(user_request, *args, **kwargs):
|
|
||||||
"""Check if an user can access to the list of every ListShell objects
|
|
||||||
|
|
||||||
:param user_request: The user who wants to view the list.
|
|
||||||
:return: True if the user can view the list and an explanation message.
|
|
||||||
"""
|
|
||||||
return user_request.has_perm('users.view_listshell'), u"Vous n'avez pas le\
|
|
||||||
droit de voir les shells"
|
|
||||||
|
|
||||||
def can_view(self, user_request, *args, **kwargs):
|
|
||||||
"""Check if an user can view a ListShell object.
|
|
||||||
|
|
||||||
:param self: The targeted ListShell instance.
|
|
||||||
:param user_request: The user who ask for viewing the target.
|
|
||||||
:return: A boolean telling if the acces is granted and an explanation
|
|
||||||
text
|
|
||||||
"""
|
|
||||||
return user_request.has_perm('users.view_listshell'), u"Vous n'avez pas le\
|
|
||||||
droit de voir les shells"
|
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.shell
|
return self.shell
|
||||||
|
|
||||||
|
|
||||||
class Ban(models.Model):
|
class Ban(AclMixin, models.Model):
|
||||||
""" Bannissement. Actuellement a un effet tout ou rien.
|
""" Bannissement. Actuellement a un effet tout ou rien.
|
||||||
Gagnerait à être granulaire"""
|
Gagnerait à être granulaire"""
|
||||||
PRETTY_NAME = "Liste des bannissements"
|
PRETTY_NAME = "Liste des bannissements"
|
||||||
|
@ -1369,44 +1171,6 @@ class Ban(models.Model):
|
||||||
def get_instance(banid, *args, **kwargs):
|
def get_instance(banid, *args, **kwargs):
|
||||||
return Ban.objects.get(pk=banid)
|
return Ban.objects.get(pk=banid)
|
||||||
|
|
||||||
def can_create(user_request, *args, **kwargs):
|
|
||||||
"""Check if an user can create a Ban object.
|
|
||||||
|
|
||||||
:param user_request: The user who wants to create a Ban object.
|
|
||||||
:return: a message and a boolean which is True if the user can create.
|
|
||||||
"""
|
|
||||||
return user_request.has_perm('users.add_ban'), u"Vous n'avez pas le droit de\
|
|
||||||
créer des bannissements"
|
|
||||||
|
|
||||||
def can_edit(self, user_request, *args, **kwargs):
|
|
||||||
"""Check if an user can edit a Ban object.
|
|
||||||
|
|
||||||
:param self: The object which is to be edited.
|
|
||||||
:param user_request: The user who requests to edit self.
|
|
||||||
:return: a message and a boolean which is True if edition is granted.
|
|
||||||
"""
|
|
||||||
return user_request.has_perm('users.change_ban'), u"Vous n'avez pas le droit\
|
|
||||||
d'éditer des bannissements"
|
|
||||||
|
|
||||||
def can_delete(self, user_request, *args, **kwargs):
|
|
||||||
"""Check if an user can delete a Ban object.
|
|
||||||
|
|
||||||
:param self: The object which is to be deleted.
|
|
||||||
:param user_request: The user who requests deletion.
|
|
||||||
:return: True if deletion is granted, and a message.
|
|
||||||
"""
|
|
||||||
return user_request.has_perm('users.delete_ban'), u"Vous n'avez pas le droit\
|
|
||||||
de supprimer des bannissements"
|
|
||||||
|
|
||||||
def can_view_all(user_request, *args, **kwargs):
|
|
||||||
"""Check if an user can access to the list of every Ban objects
|
|
||||||
|
|
||||||
:param user_request: The user who wants to view the list.
|
|
||||||
:return: True if the user can view the list and an explanation message.
|
|
||||||
"""
|
|
||||||
return user_request.has_perm('users.view_ban'), u"Vous n'avez pas le droit\
|
|
||||||
de voir tous les bannissements"
|
|
||||||
|
|
||||||
def can_view(self, user_request, *args, **kwargs):
|
def can_view(self, user_request, *args, **kwargs):
|
||||||
"""Check if an user can view a Ban object.
|
"""Check if an user can view a Ban object.
|
||||||
|
|
||||||
|
@ -1453,7 +1217,7 @@ def ban_post_delete(sender, **kwargs):
|
||||||
regen('mac_ip_list')
|
regen('mac_ip_list')
|
||||||
|
|
||||||
|
|
||||||
class Whitelist(models.Model):
|
class Whitelist(AclMixin, models.Model):
|
||||||
"""Accès à titre gracieux. L'utilisateur ne paye pas; se voit
|
"""Accès à titre gracieux. L'utilisateur ne paye pas; se voit
|
||||||
accorder un accès internet pour une durée défini. Moins
|
accorder un accès internet pour une durée défini. Moins
|
||||||
fort qu'un ban quel qu'il soit"""
|
fort qu'un ban quel qu'il soit"""
|
||||||
|
@ -1475,44 +1239,6 @@ class Whitelist(models.Model):
|
||||||
def get_instance(whitelistid, *args, **kwargs):
|
def get_instance(whitelistid, *args, **kwargs):
|
||||||
return Whitelist.objects.get(pk=whitelistid)
|
return Whitelist.objects.get(pk=whitelistid)
|
||||||
|
|
||||||
def can_create(user_request, *args, **kwargs):
|
|
||||||
"""Check if an user can create a Whitelist object.
|
|
||||||
|
|
||||||
:param user_request: The user who wants to create a Whitelist object.
|
|
||||||
:return: a message and a boolean which is True if the user can create.
|
|
||||||
"""
|
|
||||||
return user_request.has_perm('users.add_whitelist'), u"Vous n'avez pas le\
|
|
||||||
droit de créer des accès gracieux"
|
|
||||||
|
|
||||||
def can_edit(self, user_request, *args, **kwargs):
|
|
||||||
"""Check if an user can edit a Whitelist object.
|
|
||||||
|
|
||||||
:param self: The object which is to be edited.
|
|
||||||
:param user_request: The user who requests to edit self.
|
|
||||||
:return: a message and a boolean which is True if edition is granted.
|
|
||||||
"""
|
|
||||||
return user_request.has_perm('users.change_whitelist'), u"Vous n'avez pas le\
|
|
||||||
droit d'éditer des accès gracieux"
|
|
||||||
|
|
||||||
def can_delete(self, user_request, *args, **kwargs):
|
|
||||||
"""Check if an user can delete a Whitelist object.
|
|
||||||
|
|
||||||
:param self: The object which is to be deleted.
|
|
||||||
:param user_request: The user who requests deletion.
|
|
||||||
:return: True if deletion is granted, and a message.
|
|
||||||
"""
|
|
||||||
return user_request.has_perm('users.delete_whitelist'), u"Vous n'avez pas le\
|
|
||||||
droit de supprimer des accès gracieux"
|
|
||||||
|
|
||||||
def can_view_all(user_request, *args, **kwargs):
|
|
||||||
"""Check if an user can access to the list of every Whitelist objects
|
|
||||||
|
|
||||||
:param user_request: The user who wants to view the list.
|
|
||||||
:return: True if the user can view the list and an explanation message.
|
|
||||||
"""
|
|
||||||
return user_request.has_perm('users.view_whitelist'), u"Vous n'avez pas le\
|
|
||||||
droit de voir les accès gracieux"
|
|
||||||
|
|
||||||
def can_view(self, user_request, *args, **kwargs):
|
def can_view(self, user_request, *args, **kwargs):
|
||||||
"""Check if an user can view a Whitelist object.
|
"""Check if an user can view a Whitelist object.
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue