mirror of
https://gitlab2.federez.net/re2o/re2o
synced 2024-12-26 08:53:46 +00:00
Rapid fix, regen dhcp et mac-ip quand modification de l'accès internet
This commit is contained in:
parent
91a5a01930
commit
7d7759a7c1
3 changed files with 36 additions and 3 deletions
|
@ -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')
|
||||||
|
|
|
@ -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):
|
||||||
|
|
|
@ -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…
Reference in a new issue