mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-31 12:01:47 +00:00
All ui_act procs should call parent by default. All procs should preserve the value of the parent proc when it's TRUTHY and pass it down the call stack. No UI should be interactible when its flags or state indicate it should not be, except when explicity overriden by child procs intentionally disregarding parent return values to achieve a specific goal.
75 lines
2.5 KiB
Plaintext
75 lines
2.5 KiB
Plaintext
/datum/computer_file/program/ntnetmonitor
|
|
filename = "wirecarp"
|
|
filedesc = "WireCarp"
|
|
program_icon_state = "comm_monitor"
|
|
extended_desc = "This program monitors stationwide NTNet network, provides access to logging systems, and allows for configuration changes"
|
|
size = 12
|
|
requires_ntnet = TRUE
|
|
required_access = ACCESS_NETWORK //NETWORK CONTROL IS A MORE SECURE PROGRAM.
|
|
available_on_ntnet = TRUE
|
|
tgui_id = "NtosNetMonitor"
|
|
|
|
/datum/computer_file/program/ntnetmonitor/ui_act(action, params)
|
|
. = ..()
|
|
if(.)
|
|
return
|
|
switch(action)
|
|
if("resetIDS")
|
|
if(SSnetworks.station_network)
|
|
SSnetworks.station_network.resetIDS()
|
|
return TRUE
|
|
if("toggleIDS")
|
|
if(SSnetworks.station_network)
|
|
SSnetworks.station_network.toggleIDS()
|
|
return TRUE
|
|
if("toggleWireless")
|
|
if(!SSnetworks.station_network)
|
|
return
|
|
|
|
// NTNet is disabled. Enabling can be done without user prompt
|
|
if(SSnetworks.station_network.setting_disabled)
|
|
SSnetworks.station_network.setting_disabled = FALSE
|
|
return TRUE
|
|
|
|
SSnetworks.station_network.setting_disabled = TRUE
|
|
return TRUE
|
|
if("purgelogs")
|
|
if(SSnetworks.station_network)
|
|
SSnetworks.station_network.purge_logs()
|
|
return TRUE
|
|
if("updatemaxlogs")
|
|
var/logcount = params["new_number"]
|
|
if(SSnetworks.station_network)
|
|
SSnetworks.station_network.update_max_log_count(logcount)
|
|
return TRUE
|
|
if("toggle_function")
|
|
if(!SSnetworks.station_network)
|
|
return
|
|
SSnetworks.station_network.toggle_function(text2num(params["id"]))
|
|
return TRUE
|
|
|
|
/datum/computer_file/program/ntnetmonitor/ui_data(mob/user)
|
|
if(!SSnetworks.station_network)
|
|
return
|
|
var/list/data = get_header_data()
|
|
|
|
data["ntnetstatus"] = SSnetworks.station_network.check_function()
|
|
data["ntnetrelays"] = SSnetworks.station_network.relays.len
|
|
data["idsstatus"] = SSnetworks.station_network.intrusion_detection_enabled
|
|
data["idsalarm"] = SSnetworks.station_network.intrusion_detection_alarm
|
|
|
|
data["config_softwaredownload"] = SSnetworks.station_network.setting_softwaredownload
|
|
data["config_peertopeer"] = SSnetworks.station_network.setting_peertopeer
|
|
data["config_communication"] = SSnetworks.station_network.setting_communication
|
|
data["config_systemcontrol"] = SSnetworks.station_network.setting_systemcontrol
|
|
|
|
data["ntnetlogs"] = list()
|
|
data["minlogs"] = MIN_NTNET_LOGS
|
|
data["maxlogs"] = MAX_NTNET_LOGS
|
|
|
|
for(var/i in SSnetworks.station_network.logs)
|
|
data["ntnetlogs"] += list(list("entry" = i))
|
|
data["ntnetmaxlogs"] = SSnetworks.station_network.setting_maxlogcount
|
|
|
|
return data
|