263 lines
5 KiB
Python
263 lines
5 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
|
|
)
|