8
0
Fork 0
mirror of https://gitlab2.federez.net/re2o/re2o synced 2024-12-24 16:03:47 +00:00

Factorise les get_instance dans le mixin acl

This commit is contained in:
Gabriel Detraz 2018-03-28 17:15:29 +02:00 committed by chirac
parent 46ba34ec0b
commit 007ad3310a
5 changed files with 24 additions and 243 deletions

View file

@ -59,7 +59,7 @@ from machines.models import regen
from re2o.field_permissions import FieldPermissionModelMixin from re2o.field_permissions import FieldPermissionModelMixin
from re2o.mixins import AclMixin from re2o.mixins import AclMixin
class Facture(FieldPermissionModelMixin, models.Model): class Facture(AclMixin, 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
plusieurs ventes, rattachée à un user, et reliée à un moyen de paiement plusieurs ventes, rattachée à un user, et reliée à un moyen de paiement
et si il y a lieu un numero pour les chèques. Possède les valeurs et si il y a lieu un numero pour les chèques. Possède les valeurs
@ -114,13 +114,6 @@ class Facture(FieldPermissionModelMixin, models.Model):
).values_list('name', flat=True)) ).values_list('name', flat=True))
return name return name
def get_instance(factureid, *args, **kwargs):
return Facture.objects.get(pk=factureid)
def can_create(user_request, *args, **kwargs):
return user_request.has_perm('cotisations.add_facture'), u"Vous n'avez pas le\
droit de créer des factures"
def can_edit(self, user_request, *args, **kwargs): def can_edit(self, user_request, *args, **kwargs):
if not user_request.has_perm('cotisations.change_facture'): if not user_request.has_perm('cotisations.change_facture'):
return False, u"Vous n'avez pas le droit d'éditer les factures" return False, u"Vous n'avez pas le droit d'éditer les factures"
@ -144,11 +137,6 @@ class Facture(FieldPermissionModelMixin, models.Model):
else: else:
return True, None return True, None
def can_view_all(user_request, *args, **kwargs):
if not user_request.has_perm('cotisations.view_facture'):
return False, u"Vous n'avez pas le droit de voir les factures"
return True, None
def can_view(self, user_request, *args, **kwargs): def can_view(self, user_request, *args, **kwargs):
if not user_request.has_perm('cotisations.view_facture') and\ if not user_request.has_perm('cotisations.view_facture') and\
self.user != user_request: self.user != user_request:
@ -192,7 +180,7 @@ def facture_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 Vente(models.Model): class Vente(AclMixin, models.Model):
"""Objet vente, contient une quantité, une facture parente, un nom, """Objet vente, contient une quantité, une facture parente, un nom,
un prix. Peut-être relié à un objet cotisation, via le boolean un prix. Peut-être relié à un objet cotisation, via le boolean
iscotisation""" iscotisation"""
@ -277,14 +265,6 @@ class Vente(models.Model):
self.update_cotisation() self.update_cotisation()
super(Vente, self).save(*args, **kwargs) super(Vente, self).save(*args, **kwargs)
def get_instance(venteid, *args, **kwargs):
return Vente.objects.get(pk=venteid)
def can_create(user_request, *args, **kwargs):
return user_request.has_perm('cotisations.add_vente'), u"Vous n'avez pas le\
droit de créer des ventes"
return True, None
def can_edit(self, user_request, *args, **kwargs): def can_edit(self, user_request, *args, **kwargs):
if not user_request.has_perm('cotisations.change_vente'): if not user_request.has_perm('cotisations.change_vente'):
return False, u"Vous n'avez pas le droit d'éditer les ventes" return False, u"Vous n'avez pas le droit d'éditer les ventes"
@ -308,11 +288,6 @@ class Vente(models.Model):
else: else:
return True, None return True, None
def can_view_all(user_request, *args, **kwargs):
if not user_request.has_perm('cotisations.view_vente'):
return False, u"Vous n'avez pas le droit de voir les ventes"
return True, None
def can_view(self, user_request, *args, **kwargs): def can_view(self, user_request, *args, **kwargs):
if not user_request.has_perm('cotisations.view_vente') and\ if not user_request.has_perm('cotisations.view_vente') and\
self.facture.user != user_request: self.facture.user != user_request:
@ -402,9 +377,6 @@ class Article(AclMixin, models.Model):
"La durée est obligatoire si il s'agit d'une cotisation" "La durée est obligatoire si il s'agit d'une cotisation"
) )
def get_instance(articleid, *args, **kwargs):
return Article.objects.get(pk=articleid)
def __str__(self): def __str__(self):
return self.name return self.name
@ -420,9 +392,6 @@ class Banque(AclMixin, models.Model):
("view_banque", "Peut voir un objet banque"), ("view_banque", "Peut voir un objet banque"),
) )
def get_instance(banqueid, *args, **kwargs):
return Banque.objects.get(pk=banqueid)
def __str__(self): def __str__(self):
return self.name return self.name
@ -443,9 +412,6 @@ class Paiement(AclMixin, models.Model):
("view_paiement", "Peut voir un objet paiement"), ("view_paiement", "Peut voir un objet paiement"),
) )
def get_instance(paiementid, *args, **kwargs):
return Paiement.objects.get(pk=paiementid)
def __str__(self): def __str__(self):
return self.moyen return self.moyen
@ -460,7 +426,7 @@ class Paiement(AclMixin, models.Model):
super(Paiement, self).save(*args, **kwargs) super(Paiement, self).save(*args, **kwargs)
class Cotisation(models.Model): class Cotisation(AclMixin, models.Model):
"""Objet cotisation, debut et fin, relié en onetoone à une vente""" """Objet cotisation, debut et fin, relié en onetoone à une vente"""
PRETTY_NAME = "Cotisations" PRETTY_NAME = "Cotisations"
@ -485,14 +451,6 @@ class Cotisation(models.Model):
("change_all_cotisation", "Superdroit, peut modifier toutes les cotisations"), ("change_all_cotisation", "Superdroit, peut modifier toutes les cotisations"),
) )
def get_instance(cotisationid, *args, **kwargs):
return Cotisations.objects.get(pk=cotisationid)
def can_create(user_request, *args, **kwargs):
return user_request.has_perm('cotisations.add_cotisation'), u"Vous n'avez pas le\
droit de créer des cotisations"
return True, None
def can_edit(self, user_request, *args, **kwargs): def can_edit(self, user_request, *args, **kwargs):
if not user_request.has_perm('cotisations.change_cotisation'): if not user_request.has_perm('cotisations.change_cotisation'):
return False, u"Vous n'avez pas le droit d'éditer les cotisations" return False, u"Vous n'avez pas le droit d'éditer les cotisations"
@ -512,11 +470,6 @@ class Cotisation(models.Model):
else: else:
return True, None return True, None
def can_view_all(user_request, *args, **kwargs):
if not user_request.has_perm('cotisations.view_cotisation'):
return False, u"Vous n'avez pas le droit de voir les cotisations"
return True, None
def can_view(self, user_request, *args, **kwargs): def can_view(self, user_request, *args, **kwargs):
if not user_request.has_perm('cotisations.view_cotisation') and\ if not user_request.has_perm('cotisations.view_cotisation') and\
self.vente.facture.user != user_request: self.vente.facture.user != user_request:

View file

@ -65,12 +65,6 @@ class Machine(FieldPermissionModelMixin, models.Model):
("change_machine_user", "Peut changer le propriétaire d'une machine"), ("change_machine_user", "Peut changer le propriétaire d'une machine"),
) )
def get_instance(machineid, *args, **kwargs):
"""Récupère une instance
:param machineid: Instance id à trouver
:return: Une instance machine évidemment"""
return Machine.objects.get(pk=machineid)
@staticmethod @staticmethod
def can_change_user(user_request, *args, **kwargs): def can_change_user(user_request, *args, **kwargs):
"""Checks if an user is allowed to change the user who owns a """Checks if an user is allowed to change the user who owns a
@ -85,6 +79,15 @@ class Machine(FieldPermissionModelMixin, models.Model):
""" """
return user_request.has_perm('machines.change_machine_user'), "Vous ne pouvez pas modifier l'utilisateur de la machine." return user_request.has_perm('machines.change_machine_user'), "Vous ne pouvez pas modifier l'utilisateur de la machine."
def can_view_all(user_request, *args, **kwargs):
"""Vérifie qu'on peut bien afficher l'ensemble des machines,
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"""
if not user_request.has_perm('machines.view_machine'):
return False, u"Vous ne pouvez pas afficher l'ensemble des machines sans permission"
return True, None
def can_create(user_request, userid, *args, **kwargs): def can_create(user_request, userid, *args, **kwargs):
"""Vérifie qu'un user qui fait la requète peut bien créer la machine """Vérifie qu'un user qui fait la requète peut bien créer la machine
et n'a pas atteint son quota, et crée bien une machine à lui et n'a pas atteint son quota, et crée bien une machine à lui
@ -132,15 +135,6 @@ class Machine(FieldPermissionModelMixin, models.Model):
d'un autre user que vous sans droit" d'un autre user que vous sans droit"
return True, None return True, None
def can_view_all(user_request, *args, **kwargs):
"""Vérifie qu'on peut bien afficher l'ensemble des machines,
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"""
if not user_request.has_perm('machines.view_machine'):
return False, u"Vous ne pouvez pas afficher l'ensemble des machines sans permission"
return True, None
def can_view(self, user_request, *args, **kwargs): def can_view(self, user_request, *args, **kwargs):
"""Vérifie qu'on peut bien voir cette instance particulière (soit """Vérifie qu'on peut bien voir cette instance particulière (soit
machine de soi, soit droit particulier machine de soi, soit droit particulier
@ -185,13 +179,6 @@ class MachineType(AclMixin, models.Model):
machinetype""" machinetype"""
return Interface.objects.filter(type=self) return Interface.objects.filter(type=self)
def get_instance(machinetypeid, *args, **kwargs):
"""Récupère une instance
:param machinetypeid: Instance id à trouver
:return: Une instance machinetype évidemment"""
return MachineType.objects.get(pk=machinetypeid)
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.
@ -329,12 +316,6 @@ class IpType(AclMixin, models.Model):
self.clean() self.clean()
super(IpType, self).save(*args, **kwargs) super(IpType, self).save(*args, **kwargs)
def get_instance(iptypeid, *args, **kwargs):
"""Récupère une instance
:param iptypeid: Instance id à trouver
:return: Une instance iptype évidemment"""
return IpType.objects.get(pk=iptypeid)
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
@ -359,12 +340,6 @@ class Vlan(AclMixin, models.Model):
("view_vlan", "Peut voir un objet vlan"), ("view_vlan", "Peut voir un objet vlan"),
) )
def get_instance(vlanid, *args, **kwargs):
"""Récupère une instance
:param vlanid: Instance id à trouver
:return: Une instance vlan évidemment"""
return Vlan.objects.get(pk=vlanid)
def __str__(self): def __str__(self):
return self.name return self.name
@ -404,12 +379,6 @@ class Nas(AclMixin, models.Model):
("view_nas", "Peut voir un objet Nas"), ("view_nas", "Peut voir un objet Nas"),
) )
def get_instance(nasid, *args, **kwargs):
"""Récupère une instance
:param nasid: Instance id à trouver
:return: Une instance nas évidemment"""
return Nas.objects.get(pk=nasid)
def __str__(self): def __str__(self):
return self.name return self.name
@ -451,12 +420,6 @@ class SOA(AclMixin, models.Model):
("view_soa", "Peut voir un objet soa"), ("view_soa", "Peut voir un objet soa"),
) )
def get_instance(soaid, *args, **kwargs):
"""Récupère une instance
:param soaid: Instance id à trouver
:return: Une instance soa évidemment"""
return SOA.objects.get(pk=soaid)
def __str__(self): def __str__(self):
return str(self.name) return str(self.name)
@ -545,12 +508,6 @@ class Extension(AclMixin, models.Model):
entry += "@ IN AAAA " + str(self.origin_v6) entry += "@ IN AAAA " + str(self.origin_v6)
return entry return entry
def get_instance(extensionid, *args, **kwargs):
"""Récupère une instance
:param extensionid: Instance id à trouver
:return: Une instance extension évidemment"""
return Extension.objects.get(pk=extensionid)
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
@ -587,12 +544,6 @@ class Mx(AclMixin, models.Model):
fichiers de zones""" fichiers de zones"""
return "@ IN MX " + str(self.priority).ljust(3) + " " + str(self.name) return "@ IN MX " + str(self.priority).ljust(3) + " " + str(self.name)
def get_instance(mxid, *args, **kwargs):
"""Récupère une instance
:param mxid: Instance id à trouver
:return: Une instance mx évidemment"""
return Mx.objects.get(pk=mxid)
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)
@ -614,12 +565,6 @@ class Ns(AclMixin, models.Model):
"""Renvoie un enregistrement NS complet pour les filezones""" """Renvoie un enregistrement NS complet pour les filezones"""
return "@ IN NS " + str(self.ns) return "@ IN NS " + str(self.ns)
def get_instance(nsid, *args, **kwargs):
"""Récupère une instance
:param nsid: Instance id à trouver
:return: Une instance ns évidemment"""
return Ns.objects.get(pk=nsid)
def __str__(self): def __str__(self):
return str(self.zone) + ' ' + str(self.ns) return str(self.zone) + ' ' + str(self.ns)
@ -637,12 +582,6 @@ class Txt(AclMixin, models.Model):
("view_txt", "Peut voir un objet txt"), ("view_txt", "Peut voir un objet txt"),
) )
def get_instance(txtid, *args, **kwargs):
"""Récupère une instance
:param txtid: Instance id à trouver
:return: Une instance txt évidemment"""
return Txt.objects.get(pk=txtid)
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)
@ -701,12 +640,6 @@ class Srv(AclMixin, models.Model):
("view_soa", "Peut voir un objet soa"), ("view_soa", "Peut voir un objet soa"),
) )
def get_instance(srvid, *args, **kwargs):
"""Récupère une instance
:param srvid: Instance id à trouver
:return: Une instance srv évidemment"""
return Srv.objects.get(pk=srvid)
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) +\
@ -721,7 +654,7 @@ class Srv(AclMixin, models.Model):
str(self.port) + ' ' + str(self.target) + '.' str(self.port) + ' ' + str(self.target) + '.'
class Interface(FieldPermissionModelMixin,models.Model): class Interface(AclMixin, FieldPermissionModelMixin,models.Model):
""" Une interface. Objet clef de l'application machine : """ Une interface. Objet clef de l'application machine :
- une address mac unique. Possibilité de la rendre unique avec le - une address mac unique. Possibilité de la rendre unique avec le
typemachine typemachine
@ -879,12 +812,6 @@ class Interface(FieldPermissionModelMixin,models.Model):
correspondent pas") correspondent pas")
super(Interface, self).save(*args, **kwargs) super(Interface, self).save(*args, **kwargs)
def get_instance(interfaceid, *args, **kwargs):
"""Récupère une instance
:param interfaceid: Instance id à trouver
:return: Une instance interface évidemment"""
return Interface.objects.get(pk=interfaceid)
def can_create(user_request, machineid, *args, **kwargs): def can_create(user_request, machineid, *args, **kwargs):
"""Verifie que l'user a les bons droits infra pour créer """Verifie que l'user a les bons droits infra pour créer
une interface, ou bien que la machine appartient bien à l'user une interface, ou bien que la machine appartient bien à l'user
@ -936,16 +863,6 @@ class Interface(FieldPermissionModelMixin,models.Model):
d'un autre user que vous sans droit" d'un autre user que vous sans droit"
return True, None return True, None
def can_view_all(user_request, *args, **kwargs):
"""Vérifie qu'on peut bien afficher l'ensemble des interfaces,
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_interface'):
return False, u"Vous n'avez pas le droit de voir des machines autre\
que les vôtres"
return True, None
def can_view(self, user_request, *args, **kwargs): def can_view(self, user_request, *args, **kwargs):
"""Vérifie qu'on peut bien voir cette instance particulière avec """Vérifie qu'on peut bien voir cette instance particulière avec
droit view objet ou qu'elle appartient à l'user droit view objet ou qu'elle appartient à l'user
@ -984,7 +901,7 @@ class Interface(FieldPermissionModelMixin,models.Model):
return self.ipv4 and not self.has_private_ip() return self.ipv4 and not self.has_private_ip()
class Ipv6List(FieldPermissionModelMixin, models.Model): class Ipv6List(AclMixin, FieldPermissionModelMixin, models.Model):
PRETTY_NAME = 'Enregistrements Ipv6 des machines' PRETTY_NAME = 'Enregistrements Ipv6 des machines'
ipv6 = models.GenericIPAddressField( ipv6 = models.GenericIPAddressField(
@ -1000,12 +917,6 @@ class Ipv6List(FieldPermissionModelMixin, models.Model):
("change_ipv6list_slaac_ip", "Peut changer la valeur slaac sur une ipv6"), ("change_ipv6list_slaac_ip", "Peut changer la valeur slaac sur une ipv6"),
) )
def get_instance(ipv6listid, *args, **kwargs):
"""Récupère une instance
:param interfaceid: Instance id à trouver
:return: Une instance interface évidemment"""
return Ipv6List.objects.get(pk=ipv6listid)
def can_create(user_request, interfaceid, *args, **kwargs): def can_create(user_request, interfaceid, *args, **kwargs):
"""Verifie que l'user a les bons droits infra pour créer """Verifie que l'user a les bons droits infra pour créer
une ipv6, ou possède l'interface associée une ipv6, ou possède l'interface associée
@ -1050,16 +961,6 @@ class Ipv6List(FieldPermissionModelMixin, models.Model):
d'un autre user que vous sans droit" d'un autre user que vous sans droit"
return True, None return True, None
def can_view_all(user_request, *args, **kwargs):
"""Vérifie qu'on peut bien afficher l'ensemble des interfaces,
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_ipv6list'):
return False, u"Vous n'avez pas le droit de voir des machines autre\
que les vôtres"
return True, None
def can_view(self, user_request, *args, **kwargs): def can_view(self, user_request, *args, **kwargs):
"""Vérifie qu'on peut bien voir cette instance particulière avec """Vérifie qu'on peut bien voir cette instance particulière avec
droit view objet ou qu'elle appartient à l'user droit view objet ou qu'elle appartient à l'user
@ -1104,7 +1005,7 @@ class Ipv6List(FieldPermissionModelMixin, models.Model):
return str(self.ipv6) return str(self.ipv6)
class Domain(models.Model): class Domain(AclMixin, models.Model):
""" Objet domain. Enregistrement A et CNAME en même temps : permet de """ Objet domain. Enregistrement A et CNAME en même temps : permet de
stocker les alias et les nom de machines, suivant si interface_parent stocker les alias et les nom de machines, suivant si interface_parent
ou cname sont remplis""" ou cname sont remplis"""
@ -1197,12 +1098,6 @@ class Domain(models.Model):
else: else:
return self.cname.get_parent_interface() return self.cname.get_parent_interface()
def get_instance(domainid, *args, **kwargs):
"""Récupère une instance
:param domainid: Instance id à trouver
:return: Une instance domain évidemment"""
return Domain.objects.get(pk=domainid)
def can_create(user_request, interfaceid, *args, **kwargs): def can_create(user_request, interfaceid, *args, **kwargs):
"""Verifie que l'user a les bons droits infra pour créer """Verifie que l'user a les bons droits infra pour créer
un domain, ou possède l'interface associée un domain, ou possède l'interface associée
@ -1252,16 +1147,6 @@ class Domain(models.Model):
d'un autre user que vous sans droit" d'un autre user que vous sans droit"
return True, None return True, None
def can_view_all(user_request, *args, **kwargs):
"""Vérifie qu'on peut bien afficher l'ensemble des domain,
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_domain'):
return False, u"Vous ne pouvez pas supprimer un alias à une machine\
d'un autre user que vous sans droit"
return True, None
def can_view(self, user_request, *args, **kwargs): def can_view(self, user_request, *args, **kwargs):
"""Vérifie qu'on peut bien voir cette instance particulière avec """Vérifie qu'on peut bien voir cette instance particulière avec
droit view objet ou qu'elle appartient à l'user droit view objet ou qu'elle appartient à l'user
@ -1306,12 +1191,6 @@ class IpList(AclMixin, models.Model):
self.clean() self.clean()
super(IpList, self).save(*args, **kwargs) super(IpList, self).save(*args, **kwargs)
def get_instance(iplistid, *args, **kwargs):
"""Récupère une instance
:param iplistid: Instance id à trouver
:return: Une instance iplist évidemment"""
return IpList.objects.get(pk=iplistid)
def __str__(self): def __str__(self):
return self.ipv4 return self.ipv4
@ -1357,12 +1236,6 @@ class Service(AclMixin, models.Model):
def save(self, *args, **kwargs): def save(self, *args, **kwargs):
super(Service, self).save(*args, **kwargs) super(Service, self).save(*args, **kwargs)
def get_instance(serviceid, *args, **kwargs):
"""Récupère une instance
:param serviceid: Instance id à trouver
:return: Une instance service évidemment"""
return Service.objects.get(pk=serviceid)
def __str__(self): def __str__(self):
return str(self.service_type) return str(self.service_type)
@ -1403,12 +1276,6 @@ class Service_link(AclMixin, models.Model):
) < timezone.now() ) < timezone.now()
) )
def get_instance(servicelinkid, *args, **kwargs):
"""Récupère une instance
:param servicelinkid: Instance id à trouver
:return: Une instance servicelink évidemment"""
return ServiceLink.objects.get(pk=servicelinkid)
def __str__(self): def __str__(self):
return str(self.server) + " " + str(self.service) return str(self.server) + " " + str(self.service)
@ -1427,12 +1294,6 @@ class OuverturePortList(AclMixin, models.Model):
("view_ouvertureportlist", "Peut voir un objet ouvertureport"), ("view_ouvertureportlist", "Peut voir un objet ouvertureport"),
) )
def get_instance(ouvertureportlistid, *args, **kwargs):
"""Récupère une instance
:param ouvertureportlistid: Instance id à trouver
:return: Une instance ouvertureportlist évidemment"""
return OuverturePortList.objects.get(pk=ouvertureportlistid)
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
@ -1516,12 +1377,6 @@ class OuverturePort(AclMixin, models.Model):
default=OUT, default=OUT,
) )
def get_instance(ouvertureportid, *args, **kwargs):
"""Récupère une instance
:param ouvertureportid: Instance id à trouver
:return: Une instance ouvertureport évidemment"""
return OuverturePort.objects.get(pk=ouvertureportid)
def __str__(self): def __str__(self):
if self.begin == self.end: if self.begin == self.end:
return str(self.begin) return str(self.begin)

View file

@ -3,9 +3,7 @@
# se veut agnostique au réseau considéré, de manière à être installable en # se veut agnostique au réseau considéré, de manière à être installable en
# quelques clics. # quelques clics.
# #
# Copyright © 2017 Gabriel Détraz # Copyright © 2018 Gabriel Détraz
# Copyright © 2017 Goulven Kermarec
# Copyright © 2017 Augustin Lemesle
# #
# This program is free software; you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by
@ -30,6 +28,14 @@ class AclMixin(object):
def get_modulename(cls): def get_modulename(cls):
return str(cls.__module__).split('.')[0].lower() return str(cls.__module__).split('.')[0].lower()
@classmethod
def get_instance(cls, *args, **kwargs):
"""Récupère une instance
:param objectid: Instance id à trouver
:return: Une instance de la classe évidemment"""
object_id = kwargs.get(cls.get_classname() + 'id')
return cls.objects.get(pk=object_id)
@classmethod @classmethod
def can_create(cls, user_request, *args, **kwargs): def can_create(cls, user_request, *args, **kwargs):
"""Verifie que l'user a les bons droits infra pour créer """Verifie que l'user a les bons droits infra pour créer

View file

@ -67,9 +67,6 @@ class Stack(AclMixin, models.Model):
("view_stack", "Peut voir un objet stack"), ("view_stack", "Peut voir un objet stack"),
) )
def get_instance(stack_id, *args, **kwargs):
return Stack.objects.get(pk=stack_id)
def __str__(self): def __str__(self):
return " ".join([self.name, self.stack_id]) return " ".join([self.name, self.stack_id])
@ -105,9 +102,6 @@ class AccessPoint(AclMixin, Machine):
("view_accesspoint", "Peut voir une borne"), ("view_accesspoint", "Peut voir une borne"),
) )
def get_instance(ap_id, *args, **kwargs):
return AccessPoint.objects.get(pk=ap_id)
class Switch(AclMixin, Machine): class Switch(AclMixin, Machine):
""" Definition d'un switch. Contient un nombre de ports (number), """ Definition d'un switch. Contient un nombre de ports (number),
@ -146,9 +140,6 @@ class Switch(AclMixin, Machine):
("view_switch", "Peut voir un objet switch"), ("view_switch", "Peut voir un objet switch"),
) )
def get_instance(switch_id, *args, **kwargs):
return Switch.objects.get(pk=switch_id)
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"""
@ -210,9 +201,6 @@ class ModelSwitch(AclMixin, models.Model):
("view_modelswitch", "Peut voir un objet modelswitch"), ("view_modelswitch", "Peut voir un objet modelswitch"),
) )
def get_instance(model_switch_id, *args, **kwargs):
return ModelSwitch.objects.get(pk=model_switch_id)
def __str__(self): def __str__(self):
return str(self.constructor) + ' ' + self.reference return str(self.constructor) + ' ' + self.reference
@ -227,9 +215,6 @@ class ConstructorSwitch(AclMixin, models.Model):
("view_constructorswitch", "Peut voir un objet constructorswitch"), ("view_constructorswitch", "Peut voir un objet constructorswitch"),
) )
def get_instance(constructor_switch_id, *args, **kwargs):
return ConstructorSwitch.objects.get(pk=constructor_switch_id)
def __str__(self): def __str__(self):
return self.name return self.name
@ -363,9 +348,6 @@ class Room(AclMixin, models.Model):
("view_room", "Peut voir un objet chambre"), ("view_room", "Peut voir un objet chambre"),
) )
def get_instance(room_id, *args, **kwargs):
return Room.objects.get(pk=room_id)
def __str__(self): def __str__(self):
return self.name return self.name

View file

@ -990,9 +990,6 @@ class ServiceUser(AclMixin, AbstractBaseUser):
)]).values_list('dn', flat=True)) )]).values_list('dn', flat=True))
group.save() group.save()
def get_instance(userid, *args, **kwargs):
return ServiceUser.objects.get(pk=userid)
def __str__(self): def __str__(self):
return self.pseudo return self.pseudo
@ -1021,9 +1018,6 @@ class School(AclMixin, models.Model):
("view_school", "Peut voir un objet school"), ("view_school", "Peut voir un objet school"),
) )
def get_instance(schoolid, *args, **kwargs):
return School.objects.get(pk=schoolid)
def __str__(self): def __str__(self):
return self.name return self.name
@ -1058,9 +1052,6 @@ class ListRight(AclMixin, Group):
("view_listright", "Peut voir un objet Group/ListRight"), ("view_listright", "Peut voir un objet Group/ListRight"),
) )
def get_instance(listrightid, *args, **kwargs):
return ListRight.objects.get(pk=listrightid)
def __str__(self): def __str__(self):
return self.name return self.name
@ -1110,9 +1101,6 @@ class ListShell(AclMixin, models.Model):
("view_listshell", "Peut voir un objet shell quelqu'il soit"), ("view_listshell", "Peut voir un objet shell quelqu'il soit"),
) )
def get_instance(shellid, *args, **kwargs):
return ListShell.objects.get(pk=shellid)
def get_pretty_name(self): def get_pretty_name(self):
"""Return the canonical name of the shell""" """Return the canonical name of the shell"""
return self.shell.split("/")[-1] return self.shell.split("/")[-1]
@ -1236,9 +1224,6 @@ class Whitelist(AclMixin, models.Model):
def is_active(self): def is_active(self):
return self.date_end > timezone.now() return self.date_end > timezone.now()
def get_instance(whitelistid, *args, **kwargs):
return Whitelist.objects.get(pk=whitelistid)
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.