diff --git a/code/modules/admin/holder2.dm b/code/modules/admin/holder2.dm index 82b60ca933..59d432574d 100644 --- a/code/modules/admin/holder2.dm +++ b/code/modules/admin/holder2.dm @@ -27,6 +27,14 @@ GLOBAL_PROTECT(href_token) var/deadmined /datum/admins/New(datum/admin_rank/R, ckey, force_active = FALSE) + if(IsAdminAdvancedProcCall()) + var/msg = " has tried to elevate permissions!" + message_admins("[key_name_admin(usr)][msg]") + log_admin("[key_name(usr)][msg]") + if (!target) //only del if this is a true creation (and not just a New() proc call), other wise trialmins/coders could abuse this to deadmin other admins + QDEL_IN(src, 0) + CRASH("Admin proc call creation of admin datum") + return if(!ckey) QDEL_IN(src, 0) throw EXCEPTION("Admin datum created without a ckey") @@ -48,8 +56,20 @@ GLOBAL_PROTECT(href_token) else deactivate() +/datum/admins/Destroy() + if(IsAdminAdvancedProcCall()) + var/msg = " has tried to elevate permissions!" + message_admins("[key_name_admin(usr)][msg]") + log_admin("[key_name(usr)][msg]") + return QDEL_HINT_LETMELIVE + . = ..() /datum/admins/proc/activate() + if(IsAdminAdvancedProcCall()) + var/msg = " has tried to elevate permissions!" + message_admins("[key_name_admin(usr)][msg]") + log_admin("[key_name(usr)][msg]") + return GLOB.deadmins -= target GLOB.admin_datums[target] = src deadmined = FALSE @@ -58,6 +78,11 @@ GLOBAL_PROTECT(href_token) /datum/admins/proc/deactivate() + if(IsAdminAdvancedProcCall()) + var/msg = " has tried to elevate permissions!" + message_admins("[key_name_admin(usr)][msg]") + log_admin("[key_name(usr)][msg]") + return GLOB.deadmins[target] = src GLOB.admin_datums -= target deadmined = TRUE @@ -70,14 +95,14 @@ GLOBAL_PROTECT(href_token) if(IsAdminAdvancedProcCall()) var/msg = " has tried to elevate permissions!" message_admins("[key_name_admin(usr)][msg]") - log_admin_private("[key_name(usr)][msg]") + log_admin("[key_name(usr)][msg]") return if(istype(C)) if(C.ckey != target) var/msg = " has attempted to associate with [target]'s admin datum" message_admins("[key_name_admin(C)][msg]") - log_admin_private("[key_name(C)][msg]") + log_admin("[key_name(C)][msg]") return if (deadmined) activate() @@ -88,6 +113,11 @@ GLOBAL_PROTECT(href_token) GLOB.admins |= C /datum/admins/proc/disassociate() + if(IsAdminAdvancedProcCall()) + var/msg = " has tried to elevate permissions!" + message_admins("[key_name_admin(usr)][msg]") + log_admin("[key_name(usr)][msg]") + return if(owner) GLOB.admins -= owner owner.remove_admin_verbs() @@ -173,4 +203,4 @@ you will have to do something like if(client.rights & R_ADMIN) yourself. return "admin_token=[RawHrefToken(forceGlobal)]" /proc/HrefTokenFormField(forceGlobal = FALSE) - return "" \ No newline at end of file + return ""