From ac0ddde9977ae607b654b4bf572538ea4087373c Mon Sep 17 00:00:00 2001 From: ZomgPonies Date: Fri, 6 Sep 2013 08:58:57 -0400 Subject: [PATCH] Updated DB ban code --- code/modules/admin/DB ban/functions.dm | 133 ++++++++++++++++++++++++- code/modules/admin/topic.dm | 19 ++-- 2 files changed, 138 insertions(+), 14 deletions(-) diff --git a/code/modules/admin/DB ban/functions.dm b/code/modules/admin/DB ban/functions.dm index ad60ecf4960..f67191ebeed 100644 --- a/code/modules/admin/DB ban/functions.dm +++ b/code/modules/admin/DB ban/functions.dm @@ -260,7 +260,8 @@ datum/admins/proc/DB_ban_unban_by_id(var/id) holder.DB_ban_panel() -/datum/admins/proc/DB_ban_panel(var/playerckey = null, var/adminckey = null) +/datum/admins/proc/DB_ban_panel(var/playerckey = null, var/adminckey = null, var/playerip = null, var/pban = null, var/tban = null, var/jpban = null, var/jtban = null) + if(!usr.client) return @@ -312,11 +313,19 @@ datum/admins/proc/DB_ban_unban_by_id(var/id) output += "" output += "Ckey: " output += "Admin ckey: " + output += "IP address:
" + output += "Permban: " + output += "Tempban: " + output += "PermJOBban: " + output += "TempJOBban: " output += "" output += "" output += "Please note that all jobban bans or unbans are in-effect the following round." - if(adminckey || playerckey) + + + + if(adminckey || playerckey || playerip || pban || tban || jpban || jtban) var/blcolor = "#ffeeee" //banned light var/bdcolor = "#ffdddd" //banned dark @@ -334,14 +343,32 @@ datum/admins/proc/DB_ban_unban_by_id(var/id) adminckey = ckey(adminckey) playerckey = ckey(playerckey) + var/adminsearch = "" var/playersearch = "" + var/playeripsearch = "" + var/pbansearch = "" + var/tbansearch = "" + var/jpbansearch = "" + var/jtbansearch = "" if(adminckey) adminsearch = "AND a_ckey = '[adminckey]' " if(playerckey) playersearch = "AND ckey = '[playerckey]' " + if(playerip) + playeripsearch = "AND ip = '[playerip]' " + if(pban != null) + pbansearch = "AND bantype = 'PERMABAN'" + if(tban != null) + tbansearch = "AND bantype = 'TEMPBAN'" + if(jpban != null) + jpbansearch = "AND bantype = 'JOB_PERMABAN'" + if(jtban != null) + jtbansearch = "AND bantype = 'JOB_TEMPBAN'" - var/DBQuery/select_query = dbcon.NewQuery("SELECT id, bantime, bantype, reason, job, duration, expiration_time, ckey, a_ckey, unbanned, unbanned_ckey, unbanned_datetime, edits FROM erro_ban WHERE 1 [playersearch] [adminsearch] ORDER BY bantime DESC") + + + var/DBQuery/select_query = dbcon.NewQuery("SELECT id, bantime, bantype, reason, job, duration, expiration_time, ckey, a_ckey, unbanned, unbanned_ckey, unbanned_datetime, edits, ip FROM erro_ban WHERE 1 [pbansearch] [tbansearch] [jpbansearch] [jtbansearch] [playersearch] [adminsearch] [playeripsearch] ORDER BY bantime DESC") select_query.Execute() while(select_query.NextRow()) @@ -358,6 +385,7 @@ datum/admins/proc/DB_ban_unban_by_id(var/id) var/unbanckey = select_query.item[11] var/unbantime = select_query.item[12] var/edits = select_query.item[13] + var/ip = select_query.item[14] var/lcolor = blcolor var/dcolor = bdcolor @@ -385,6 +413,7 @@ datum/admins/proc/DB_ban_unban_by_id(var/id) output += "" output += "" output += "Reason: [(unbanned) ? "" : "(Edit)"] \"[reason]\"" + output += "IP: [ip] " output += "" if(edits) output += "" @@ -403,4 +432,102 @@ datum/admins/proc/DB_ban_unban_by_id(var/id) output += "" + + + + else + + var/DBQuery/select_query = dbcon.NewQuery("SELECT bantype, COUNT(*) FROM erro_ban GROUP BY bantype") + select_query.Execute() + + while(select_query.NextRow()) + var/bantype = select_query.item[1] + var/count = select_query.item[2] + + + output +="
" + output += "[bantype]:[count] " + output += "" + output += "" + +/* + var/blcolor = "#ffeeee" //banned light + var/bdcolor = "#ffdddd" //banned dark + var/ulcolor = "#eeffee" //unbanned light + var/udcolor = "#ddffdd" //unbanned dark + + output += "" + output += "" + output += "" + output += "" + output += "" + output += "" + output += "" + output += "" + + + var/DBQuery/select_query = dbcon.NewQuery("SELECT id, bantime, bantype, reason, job, duration, expiration_time, ckey, a_ckey, unbanned, unbanned_ckey, unbanned_datetime, edits, ip FROM erro_ban ORDER BY bantime DESC") + select_query.Execute() + + while(select_query.NextRow()) + var/banid = select_query.item[1] + var/bantime = select_query.item[2] + var/bantype = select_query.item[3] + var/reason = select_query.item[4] + var/job = select_query.item[5] + var/duration = select_query.item[6] + var/expiration = select_query.item[7] + var/ckey = select_query.item[8] + var/ackey = select_query.item[9] + var/unbanned = select_query.item[10] + var/unbanckey = select_query.item[11] + var/unbantime = select_query.item[12] + var/edits = select_query.item[13] + var/ip = select_query.item[14] + + var/lcolor = blcolor + var/dcolor = bdcolor + if(unbanned) + lcolor = ulcolor + dcolor = udcolor + + var/typedesc ="" + switch(bantype) + if("PERMABAN") + typedesc = "PERMABAN" + if("TEMPBAN") + typedesc = "TEMPBAN
([duration] minutes [(unbanned) ? "" : "(Edit))"]
Expires [expiration]
" + if("JOB_PERMABAN") + typedesc = "JOBBAN
([job])" + if("JOB_TEMPBAN") + typedesc = "TEMP JOBBAN
([job])
([duration] minutes
Expires [expiration]" + + output += "
" + output += "" + output += "" + output += "" + output += "" + output += "" + output += "" + output += "" + output += "" + output += "" + output += "" + if(edits) + output += "" + output += "" + output += "" + output += "" + output += "" + output += "" + if(unbanned) + output += "" + output += "" + output += "" + output += "" + output += "" + output += "" + + output += "
TYPECKEYTIME APPLIEDADMINOPTIONS
[typedesc][ckey][bantime][ackey][(unbanned) ? "" : "Unban"]
Reason: [(unbanned) ? "" : "(Edit)"] \"[reason]\"IP: [ip]
EDITS
[edits]
UNBANNED by admin [unbanckey] on [unbantime]
 
" +*/ usr << browse(output,"window=lookupbans;size=900x500") \ No newline at end of file diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 803f2b12545..15337fd53d4 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -48,20 +48,17 @@ log_admin("[key_name(usr)] has spawned vox raiders.") if(!src.makeVoxRaiders()) usr << "\red Unfortunately there weren't enough candidates available." - else if(href_list["dbsearchckey"] || href_list["dbsearchadmin"]) + + else if(href_list["dbsearchckey"] || href_list["dbsearchadmin"] || href_list["dbsearchip"] || href_list["dbpban"] || href_list["dbtban"] || href_list["dbjpban"] || href_list["dbjtban"]) var/adminckey = href_list["dbsearchadmin"] var/playerckey = href_list["dbsearchckey"] + var/playerip = href_list["dbsearchip"] + var/pban = href_list["dbpban"] + var/tban = href_list["dbtban"] + var/jpban = href_list["dbjpban"] + var/jtban = href_list["dbjpban"] - DB_ban_panel(playerckey, adminckey) - return - - else if(href_list["dbbanedit"]) - var/banedit = href_list["dbbanedit"] - var/banid = text2num(href_list["dbbanid"]) - if(!banedit || !banid) - return - - DB_ban_edit(banid, banedit) + DB_ban_panel(playerckey, adminckey, playerip, pban, tban, jpban, jtban) return else if(href_list["dbbanaddtype"])