Adds the ability to allow specific ckeys to bypass the panic bunker for a given round

This commit is contained in:
deathride58
2019-02-27 07:46:34 -05:00
parent 22e3145901
commit 4e00f59d82
4 changed files with 32 additions and 1 deletions

View File

@@ -6,6 +6,8 @@ GLOBAL_LIST_EMPTY(deadmins) //all ckeys who have used the de-admin verb.
GLOBAL_LIST_EMPTY(directory) //all ckeys with associated client GLOBAL_LIST_EMPTY(directory) //all ckeys with associated client
GLOBAL_LIST_EMPTY(stealthminID) //reference list with IDs that store ckeys, for stealthmins GLOBAL_LIST_EMPTY(stealthminID) //reference list with IDs that store ckeys, for stealthmins
GLOBAL_LIST_EMPTY(bunker_passthrough)
//Since it didn't really belong in any other category, I'm putting this here //Since it didn't really belong in any other category, I'm putting this here
//This is for procs to replace all the goddamn 'in world's that are chilling around the code //This is for procs to replace all the goddamn 'in world's that are chilling around the code

View File

@@ -70,6 +70,8 @@ GLOBAL_LIST_INIT(admin_verbs_admin, world.AVerbsAdmin())
/client/proc/cmd_admin_pm_context, /*right-click adminPM interface*/ /client/proc/cmd_admin_pm_context, /*right-click adminPM interface*/
/client/proc/cmd_admin_pm_panel, /*admin-pm list*/ /client/proc/cmd_admin_pm_panel, /*admin-pm list*/
/client/proc/panicbunker, /client/proc/panicbunker,
/client/proc/addbunkerbypass,
/client/proc/revokebunkerbypass,
/client/proc/stop_sounds, /client/proc/stop_sounds,
/client/proc/hide_verbs, /*hides all our adminverbs*/ /client/proc/hide_verbs, /*hides all our adminverbs*/
/client/proc/hide_most_verbs, /*hides all our hideable adminverbs*/ /client/proc/hide_most_verbs, /*hides all our hideable adminverbs*/
@@ -233,6 +235,8 @@ GLOBAL_LIST_INIT(admin_verbs_hideable, list(
/proc/release, /proc/release,
/client/proc/reload_admins, /client/proc/reload_admins,
/client/proc/panicbunker, /client/proc/panicbunker,
/client/proc/addbunkerbypass,
/client/proc/revokebunkerbypass,
/client/proc/admin_change_sec_level, /client/proc/admin_change_sec_level,
/client/proc/toggle_nuke, /client/proc/toggle_nuke,
/client/proc/cmd_display_del_log, /client/proc/cmd_display_del_log,

View File

@@ -13,3 +13,28 @@
if (new_pb && !SSdbcore.Connect()) if (new_pb && !SSdbcore.Connect())
message_admins("The Database is not connected! Panic bunker will not work until the connection is reestablished.") message_admins("The Database is not connected! Panic bunker will not work until the connection is reestablished.")
SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Toggle Panic Bunker", "[new_pb ? "Enabled" : "Disabled"]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Toggle Panic Bunker", "[new_pb ? "Enabled" : "Disabled"]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/addbunkerbypass(ckeytobypass as text)
set category = "Special Verbs"
set name = "Add PB Bypass"
set desc = "Allows a given ckey to connect despite the panic bunker for a given round."
if(!CONFIG_GET(flag/sql_enabled))
to_chat(usr, "<span class='adminnotice'>The Database is not enabled!</span>")
return
GLOB.bunker_passthrough |= ckeytobypass
log_admin("[key_name(usr)] has added [ckeytobypass] to the current round's bunker bypass list.")
message_admins("[key_name(usr)] has added [ckeytobypass] to the current round's bunker bypass list.")
/client/proc/revokebunkerbypass(ckeytobypass as text)
set category = "Special Verbs"
set name = "Revoke PB Bypass"
set desc = "Revoke's a ckey's permission to bypass the panic bunker for a given round."
if(!CONFIG_GET(flag/sql_enabled))
to_chat(usr, "<span class='adminnotice'>The Database is not enabled!</span>")
return
GLOB.bunker_passthrough -= ckeytobypass
log_admin("[key_name(usr)] has removed [ckeytobypass] from the current round's bunker bypass list.")
message_admins("[key_name(usr)] has removed [ckeytobypass] from the current round's bunker bypass list.")

View File

@@ -499,7 +499,7 @@ GLOBAL_LIST_EMPTY(external_rsc_urls)
qdel(query_client_in_db) qdel(query_client_in_db)
return return
if(!query_client_in_db.NextRow()) if(!query_client_in_db.NextRow())
if (CONFIG_GET(flag/panic_bunker) && !holder && !GLOB.deadmins[ckey]) if (CONFIG_GET(flag/panic_bunker) && !holder && !GLOB.deadmins[ckey] && !ckey in GLOB.bunker_passthrough)
log_access("Failed Login: [key] - New account attempting to connect during panic bunker") log_access("Failed Login: [key] - New account attempting to connect during panic bunker")
message_admins("<span class='adminnotice'>Failed Login: [key] - New account attempting to connect during panic bunker</span>") message_admins("<span class='adminnotice'>Failed Login: [key] - New account attempting to connect during panic bunker</span>")
to_chat(src, "<span class='notice'>You must first join the Discord to verify your account before joining this server.<br>To do so, read the rules and post a request in the #station-access-requests channel under the \"Main server\" category in the Discord server linked here: <a href='https://discord.gg/E6SQuhz'>https://discord.gg/E6SQuhz</a></span>") //CIT CHANGE - makes the panic bunker disconnect message point to the discord to_chat(src, "<span class='notice'>You must first join the Discord to verify your account before joining this server.<br>To do so, read the rules and post a request in the #station-access-requests channel under the \"Main server\" category in the Discord server linked here: <a href='https://discord.gg/E6SQuhz'>https://discord.gg/E6SQuhz</a></span>") //CIT CHANGE - makes the panic bunker disconnect message point to the discord