Automatic handling of majorly-colliding CIDs (#17414)

This commit is contained in:
AffectedArc07
2022-02-17 12:33:36 +01:00
committed by GitHub
parent 37cba8b915
commit a9b042dc09
3 changed files with 18 additions and 0 deletions
@@ -13,6 +13,8 @@
var/list/ckey_rank_map = list()
/// Assoc list of admin ranks and their colours. key: rank | value: rank colour
var/list/rank_colour_map = list()
/// Assoc list of CIDs which shouldnt be banned due to mass collisions
var/list/common_cid_map = list()
/datum/configuration_section/admin_configuration/load_data(list/data)
// Use the load wrappers here. That way the default isnt made 'null' if you comment out the config line
@@ -38,6 +40,12 @@
for(var/list/kvset in data["admin_rank_colour_map"])
rank_colour_map[kvset["name"]] = kvset["colour"]
// Load common CIDs
if(islist(data["common_cid_map"]))
common_cid_map.Cut()
for(var/list/kvset in data["common_cid_map"])
common_cid_map[kvset["cid"]] = kvset["reason"]
// For the person who asks "Why not put admin datum generation in this step?", well I will tell you why
// Admins can be reloaded at runtime when DB edits are made and such, and I dont want an entire config reload to be part of this
// Separation makes sense. That and in prod we use the DB anyways.
+6
View File
@@ -112,6 +112,12 @@
to_chat(usr, "<span class='danger'>You cannot apply this ban type on yourself.</span>")
return
// Check validity of the CID. Some have a lot of collisions due to bad industry practices (thanks walmart)
if(computerid && (computerid in GLOB.configuration.admin.common_cid_map))
to_chat(usr, "<span class='notice'>You attempted to apply a ban that includes the CID [computerid]. This CID has been ignored for the following reason: [GLOB.configuration.admin.common_cid_map[computerid]]</span>")
// Cancel it out. DO NOT USE NULL HERE. IT MAKES THE DB CRY. USE AN EMPTY STRING.
computerid = ""
var/who
for(var/client/C in GLOB.clients)
if(!who)
+4
View File
@@ -91,6 +91,10 @@ admin_rank_colour_map = [
{name = "PR Reviewer", colour = "#c27c0e"},
{name = "Mentor", colour = "#f1c40f"},
]
# Map of common CIDs that should not be banned, plus their reasons
common_cid_map = [
{cid = "3923664137", reason = "Mass-Match related to Walmart branded prebuilt PCs"}
]
################################################################