Browse Source

Rapid fix, regen dhcp et mac-ip quand modification de l'accès internet

granuban
Gabriel Detraz 8 years ago
committed by root
parent
commit
73513c0bb7
  1. 13
      cotisations/models.py
  2. 8
      machines/models.py
  3. 18
      users/models.py

13
cotisations/models.py

@ -30,6 +30,8 @@ from django.core.validators import MinValueValidator
from django.utils import timezone from django.utils import timezone
from machines.models import regen
class Facture(models.Model): class Facture(models.Model):
PRETTY_NAME = "Factures émises" PRETTY_NAME = "Factures émises"
@ -180,3 +182,14 @@ class Cotisation(models.Model):
def __str__(self): def __str__(self):
return str(self.vente) return str(self.vente)
@receiver(post_save, sender=Cotisation)
def cotisation_post_save(sender, **kwargs):
regen('dns')
regen('dhcp')
regen('mac_ip_list')
@receiver(post_delete, sender=Cotisation)
def vente_post_delete(sender, **kwargs):
cotisation = kwargs['instance']
if not cotisation.vente.facture.user.has_access():
regen('mac_ip_list')

8
machines/models.py

@ -320,8 +320,9 @@ class Service(models.Model):
def regen(service): def regen(service):
""" Fonction externe pour régérération d'un service, prend un objet service en arg""" """ Fonction externe pour régérération d'un service, prend un objet service en arg"""
obj, created = Service.objects.get_or_create(service_type=service) obj = Service.objects.filter(service_type=service)
obj.ask_regen() if obj:
obj[0].ask_regen()
return return
class Service_link(models.Model): class Service_link(models.Model):
@ -360,6 +361,9 @@ def machine_post_delete(sender, **kwargs):
machine = kwargs['instance'] machine = kwargs['instance']
user = machine.user user = machine.user
user.ldap_sync(base=False, access_refresh=False, mac_refresh=True) user.ldap_sync(base=False, access_refresh=False, mac_refresh=True)
regen('dns')
regen('dhcp')
regen('mac_ip_list')
@receiver(post_save, sender=Interface) @receiver(post_save, sender=Interface)
def interface_post_save(sender, **kwargs): def interface_post_save(sender, **kwargs):

18
users/models.py

@ -46,7 +46,7 @@ from django.contrib.auth.models import AbstractBaseUser, BaseUserManager
from django.core.validators import MinLengthValidator from django.core.validators import MinLengthValidator
from topologie.models import Room from topologie.models import Room
from cotisations.models import Cotisation, Facture, Paiement, Vente from cotisations.models import Cotisation, Facture, Paiement, Vente
from machines.models import Interface, Machine from machines.models import Interface, Machine, regen
from preferences.models import GeneralOption, AssoOption, OptionalUser from preferences.models import GeneralOption, AssoOption, OptionalUser
now = timezone.now() now = timezone.now()
@ -640,11 +640,18 @@ def ban_post_save(sender, **kwargs):
user.ldap_sync(base=False, access_refresh=True, mac_refresh=False) user.ldap_sync(base=False, access_refresh=True, mac_refresh=False)
if is_created: if is_created:
ban.notif_ban() ban.notif_ban()
regen('dhcp')
regen('mac_ip_list')
if user.has_access():
regen('dhcp')
regen('mac_ip_list')
@receiver(post_delete, sender=Ban) @receiver(post_delete, sender=Ban)
def ban_post_delete(sender, **kwargs): def ban_post_delete(sender, **kwargs):
user = kwargs['instance'].user user = kwargs['instance'].user
user.ldap_sync(base=False, access_refresh=True, mac_refresh=False) user.ldap_sync(base=False, access_refresh=True, mac_refresh=False)
regen('dhcp')
regen('mac_ip_list')
class Whitelist(models.Model): class Whitelist(models.Model):
PRETTY_NAME = "Liste des accès gracieux" PRETTY_NAME = "Liste des accès gracieux"
@ -662,11 +669,20 @@ def whitelist_post_save(sender, **kwargs):
whitelist = kwargs['instance'] whitelist = kwargs['instance']
user = whitelist.user user = whitelist.user
user.ldap_sync(base=False, access_refresh=True, mac_refresh=False) user.ldap_sync(base=False, access_refresh=True, mac_refresh=False)
is_created = kwargs['created']
if is_created:
regen('dhcp')
regen('mac_ip_list')
if user.has_access():
regen('dhcp')
regen('mac_ip_list')
@receiver(post_delete, sender=Whitelist) @receiver(post_delete, sender=Whitelist)
def whitelist_post_delete(sender, **kwargs): def whitelist_post_delete(sender, **kwargs):
user = kwargs['instance'].user user = kwargs['instance'].user
user.ldap_sync(base=False, access_refresh=True, mac_refresh=False) user.ldap_sync(base=False, access_refresh=True, mac_refresh=False)
regen('dhcp')
regen('mac_ip_list')
class Request(models.Model): class Request(models.Model):
PASSWD = 'PW' PASSWD = 'PW'

Loading…
Cancel
Save