88 lines
3.2 KiB
Python
88 lines
3.2 KiB
Python
from django.dispatch import Signal
|
|
from .models import Device, Wifi, DeviceLog, UserLog, WifiLog
|
|
from django.contrib.auth.models import User
|
|
|
|
siglog = Signal(providing_args=["id", "user", "action", "oldvalue", "newvalue"])
|
|
|
|
# Device Signals
|
|
|
|
def sigDevice(device_id, user, action, oldvalue=None, newvalue=None):
|
|
siglog.send(sender=Device, id=device_id, user=user, action=action, oldvalue=oldvalue, newvalue=newvalue)
|
|
|
|
def sigDeleteDevice(device_id, user):
|
|
sigDevice(device_id, user, DeviceLog.REMOVE)
|
|
|
|
def sigAddDevice(device_id, user):
|
|
sigDevice(device_id, user, DeviceLog.ADD)
|
|
|
|
def sigRenameDevice(device_id, user, oldname, newname):
|
|
sigDevice(device_id, user, DeviceLog.NAME, oldname, newname)
|
|
|
|
def sigNetDevice(device_id, user, oldnet, newnet):
|
|
sigDevice(device_id, user, DeviceLog.NET, oldnet, newnet)
|
|
|
|
def sigWifiDevice(device_id, user, oldwifis, newwifis):
|
|
for old in oldwifis:
|
|
if old not in newwifis:
|
|
sigDevice(device_id, user, DeviceLog.WIFI, str(old))
|
|
for new in newwifis:
|
|
if new not in oldwifis:
|
|
sigDevice(device_id, user, DeviceLog.WIFI, None, str(new))
|
|
|
|
def sigRebootDevice(device_id, user, newstate):
|
|
sigDevice(device_id, user, DeviceLog.REBOOT, str(not newstate), str(newstate))
|
|
|
|
def sigUpdateDevice(device_id, user, newstate):
|
|
sigDevice(device_id, user, DeviceLog.UPDATE, str(not newstate), str(newstate))
|
|
|
|
def sigOrgaDevice(device_id, user, oldorga, neworga):
|
|
sigDevice(device_id, user, DeviceLog.ORGA, oldorga, neworga)
|
|
|
|
# User Signals
|
|
|
|
def sigUser(target, source, action, oldvalue=None, newvalue=None):
|
|
siglog.send(sender=User, id=target, user=source, action=action, oldvalue=oldvalue, newvalue=newvalue)
|
|
|
|
def sigAddUser(newuser, source):
|
|
sigUser(newuser, source, UserLog.ADD)
|
|
|
|
def sigDeleteUser(target, source):
|
|
sigUser(target, source, UserLog.REMOVE)
|
|
|
|
def sigRenameUser(target, source, oldname, newname):
|
|
sigUser(target, source, UserLog.NAME, oldname, newname)
|
|
|
|
def sigMailUser(target, source, oldmail, newmail):
|
|
sigUser(target, source, UserLog.MAIL, oldmail, newmail)
|
|
|
|
def sigStaffUser(target, source, newstatus):
|
|
sigUser(target, source, UserLog.STAFF, str(not newstatus), str(newstatus))
|
|
|
|
def sigSuperUser(target, source, newstatus):
|
|
sigUser(target, source, UserLog.SUPERUSER, str(not newstatus), str(newstatus))
|
|
|
|
def sigOrgaUser(target, source, oldorga, neworga):
|
|
sigUser(target, source, UserLog.ORGA, ", ".join(str(x) for x in oldorga), ", ".join(str(x) for x in neworga))
|
|
|
|
# WiFi Signals
|
|
|
|
def sigWifi(wifi, user, action, oldvalue=None, newvalue=None):
|
|
siglog.send(sender=Wifi, id=wifi, user=user, action=action, oldvalue=oldvalue, newvalue=newvalue)
|
|
|
|
def sigAddWifi(wifi, user):
|
|
sigWifi(wifi, user, WifiLog.ADD)
|
|
|
|
def sigDeleteWifi(wifi, user):
|
|
sigWifi(wifi, user, WifiLog.REMOVE)
|
|
|
|
def sigRenameWifi(wifi, user, oldname, newname):
|
|
sigWifi(wifi, user, WifiLog.NAME, oldname, newname)
|
|
|
|
def sigSSIDWifi(wifi, user, oldssid, newssid):
|
|
sigWifi(wifi, user, WifiLog.SSID, oldssid, newssid)
|
|
|
|
def sigKeyWifi(wifi, user, oldkey, newkey):
|
|
sigWifi(wifi, user, WifiLog.KEY, oldkey, newkey)
|
|
|
|
def sigOrgaWifi(wifi, user, oldorga, neworga):
|
|
sigWifi(wifi, user, WifiLog.ORGA, oldorga, neworga)
|