mirror of
https://gitlab2.federez.net/re2o/re2o
synced 2024-11-22 03:13:12 +00:00
Poc de acl mixin, factorisation du code
This commit is contained in:
parent
72e70e74d9
commit
ef1dbc882b
2 changed files with 88 additions and 676 deletions
|
@ -39,6 +39,7 @@ from django.core.validators import MaxValueValidator
|
|||
from macaddress.fields import MACAddressField
|
||||
|
||||
from re2o.field_permissions import FieldPermissionModelMixin
|
||||
from re2o.mixins import AclMixin
|
||||
|
||||
import users.models
|
||||
import preferences.models
|
||||
|
@ -161,7 +162,7 @@ class Machine(FieldPermissionModelMixin, models.Model):
|
|||
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"""
|
||||
PRETTY_NAME = "Type de machine"
|
||||
|
||||
|
@ -190,33 +191,6 @@ class MachineType(models.Model):
|
|||
:return: Une instance machinetype évidemment"""
|
||||
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):
|
||||
"""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 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):
|
||||
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"""
|
||||
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 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):
|
||||
return self.type
|
||||
|
||||
|
||||
class Vlan(models.Model):
|
||||
class Vlan(AclMixin, models.Model):
|
||||
""" Un vlan : vlan_id et nom
|
||||
On limite le vlan id entre 0 et 4096, comme défini par la norme"""
|
||||
PRETTY_NAME = "Vlans"
|
||||
|
@ -453,55 +365,11 @@ class Vlan(models.Model):
|
|||
:return: Une instance vlan évidemment"""
|
||||
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):
|
||||
return self.name
|
||||
|
||||
|
||||
class Nas(models.Model):
|
||||
class Nas(AclMixin, models.Model):
|
||||
""" Les nas. Associé à un machine_type.
|
||||
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"""
|
||||
|
@ -542,56 +410,11 @@ class Nas(models.Model):
|
|||
:return: Une instance nas évidemment"""
|
||||
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):
|
||||
return self.name
|
||||
|
||||
|
||||
class SOA(models.Model):
|
||||
class SOA(AclMixin, models.Model):
|
||||
"""
|
||||
Un enregistrement SOA associé à une extension
|
||||
Les valeurs par défault viennent des recommandations RIPE :
|
||||
|
@ -634,50 +457,6 @@ class SOA(models.Model):
|
|||
:return: Une instance soa évidemment"""
|
||||
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):
|
||||
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
|
||||
l'utiliser, associé à un origin (ip d'origine)"""
|
||||
PRETTY_NAME = "Extensions dns"
|
||||
|
@ -772,56 +551,12 @@ class Extension(models.Model):
|
|||
:return: Une instance extension évidemment"""
|
||||
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):
|
||||
"""Superdroit qui permet d'utiliser toutes les extensions sans restrictions
|
||||
: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.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):
|
||||
return self.name
|
||||
|
||||
|
@ -831,7 +566,7 @@ class Extension(models.Model):
|
|||
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
|
||||
priorité
|
||||
Todo : pouvoir associer un MX à une interface """
|
||||
|
@ -858,55 +593,11 @@ class Mx(models.Model):
|
|||
:return: Une instance mx évidemment"""
|
||||
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):
|
||||
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"""
|
||||
PRETTY_NAME = "Enregistrements NS"
|
||||
|
||||
|
@ -929,55 +620,11 @@ class Ns(models.Model):
|
|||
:return: Une instance ns évidemment"""
|
||||
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):
|
||||
return str(self.zone) + ' ' + str(self.ns)
|
||||
|
||||
|
||||
class Txt(models.Model):
|
||||
class Txt(AclMixin, models.Model):
|
||||
""" Un enregistrement TXT associé à une extension"""
|
||||
PRETTY_NAME = "Enregistrement TXT"
|
||||
|
||||
|
@ -996,50 +643,6 @@ class Txt(models.Model):
|
|||
:return: Une instance txt évidemment"""
|
||||
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):
|
||||
return str(self.zone) + " : " + str(self.field1) + " " +\
|
||||
str(self.field2)
|
||||
|
@ -1050,7 +653,7 @@ class Txt(models.Model):
|
|||
return str(self.field1).ljust(15) + " IN TXT " + str(self.field2)
|
||||
|
||||
|
||||
class Srv(models.Model):
|
||||
class Srv(AclMixin, models.Model):
|
||||
PRETTY_NAME = "Enregistrement Srv"
|
||||
|
||||
TCP = 'TCP'
|
||||
|
@ -1104,50 +707,6 @@ class Srv(models.Model):
|
|||
:return: Une instance srv évidemment"""
|
||||
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):
|
||||
return str(self.service) + ' ' + str(self.protocole) + ' ' +\
|
||||
str(self.extension) + ' ' + str(self.priority) +\
|
||||
|
@ -1719,7 +1278,7 @@ class Domain(models.Model):
|
|||
return str(self.name) + str(self.extension)
|
||||
|
||||
|
||||
class IpList(models.Model):
|
||||
class IpList(AclMixin, models.Model):
|
||||
PRETTY_NAME = "Addresses ipv4"
|
||||
|
||||
ipv4 = models.GenericIPAddressField(protocol='IPv4', unique=True)
|
||||
|
@ -1753,58 +1312,11 @@ class IpList(models.Model):
|
|||
:return: Une instance iplist évidemment"""
|
||||
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):
|
||||
return self.ipv4
|
||||
|
||||
|
||||
class Service(models.Model):
|
||||
class Service(AclMixin, models.Model):
|
||||
""" Definition d'un service (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 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):
|
||||
return str(self.service_type)
|
||||
|
||||
|
@ -1908,7 +1376,7 @@ def regen(service):
|
|||
return
|
||||
|
||||
|
||||
class Service_link(models.Model):
|
||||
class Service_link(AclMixin, models.Model):
|
||||
""" Definition du lien entre serveurs et services"""
|
||||
PRETTY_NAME = "Relation entre service et serveur"
|
||||
|
||||
|
@ -1941,56 +1409,11 @@ class Service_link(models.Model):
|
|||
:return: Une instance servicelink évidemment"""
|
||||
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):
|
||||
return str(self.server) + " " + str(self.service)
|
||||
|
||||
|
||||
class OuverturePortList(models.Model):
|
||||
class OuverturePortList(AclMixin, models.Model):
|
||||
"""Liste des ports ouverts sur une interface."""
|
||||
PRETTY_NAME = "Profil d'ouverture de ports"
|
||||
|
||||
|
@ -2010,24 +1433,6 @@ class OuverturePortList(models.Model):
|
|||
:return: Une instance ouvertureportlist évidemment"""
|
||||
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):
|
||||
"""Verifie que l'user a les bons droits bureau pour delete
|
||||
cette instance ouvertureportlist
|
||||
|
@ -2041,23 +1446,6 @@ class OuverturePortList(models.Model):
|
|||
return False, u"Cette liste de ports est utilisée"
|
||||
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):
|
||||
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.
|
||||
|
||||
|
@ -2134,54 +1522,6 @@ class OuverturePort(models.Model):
|
|||
:return: Une instance ouvertureport évidemment"""
|
||||
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):
|
||||
if self.begin == self.end:
|
||||
return str(self.begin)
|
||||
|
|
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()
|
Loading…
Reference in a new issue