diff --git a/code/modules/admin/DB ban/functions.dm b/code/modules/admin/DB ban/functions.dm index d5354dfa41..ae8c8c4865 100644 --- a/code/modules/admin/DB ban/functions.dm +++ b/code/modules/admin/DB ban/functions.dm @@ -263,7 +263,7 @@ 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, var/playerip = null, var/playercid = null, var/match = null) +/datum/admins/proc/DB_ban_panel(var/playerckey = null, var/adminckey = null, var/playerip = null, var/playercid = null, var/dbbantype = null, var/match = null) if(!usr.client) return @@ -318,122 +318,147 @@ datum/admins/proc/DB_ban_unban_by_id(var/id) output += "Ckey: " output += "Admin ckey: " output += "IP: " - output += "CID: " + output += "CID: " + output += "Ban type:" output += "

" - output += " Match(min. 3 characters to search)
" + output += " Match(min. 3 characters to search by key or ip, and 7 to search by cid)
" output += "" - output += "Please note that all jobban bans or unbans are in-effect the following round." + output += "Please note that all jobban bans or unbans are in-effect the following round.
" + output += "This search shows only last 100 bans." - if(adminckey || playerckey || playerip || playercid) - - 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 += "" + if(adminckey || playerckey || playerip || playercid || dbbantype) adminckey = ckey(adminckey) playerckey = ckey(playerckey) playerip = sql_sanitize_text(playerip) playercid = sql_sanitize_text(playercid) - var/adminsearch = "" - var/playersearch = "" - var/ipsearch = "" - var/cidsearch = "" - if(!match) - if(adminckey) - adminsearch = "AND a_ckey = '[adminckey]' " - if(playerckey) - playersearch = "AND ckey = '[playerckey]' " - if(playerip) - ipsearch = "AND ip = '[playerip]' " - if(playercid) - cidsearch = "AND computerid = '[playercid]' " - else - if(adminckey && lentext(adminckey) > 3) - adminsearch = "AND a_ckey LIKE '[adminckey]%' " - if(playerckey && lentext(playerckey) > 3) - playersearch = "AND ckey LIKE '[playerckey]%' " - if(playerip && lentext(playerip) > 3) - ipsearch = "AND ip LIKE '[playerip]%' " - if(playercid && lentext(playercid) > 3) - cidsearch = "AND computerid LIKE '[playercid]%' " + if(adminckey || playerckey || playerip || playercid || dbbantype) - 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, computerid FROM erro_ban WHERE 1 [playersearch] [adminsearch] [ipsearch] [cidsearch] ORDER BY bantime DESC") - select_query.Execute() + var/blcolor = "#ffeeee" //banned light + var/bdcolor = "#ffdddd" //banned dark + var/ulcolor = "#eeffee" //unbanned light + var/udcolor = "#ddffdd" //unbanned dark - 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/cid = select_query.item[15] - - 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 += "
TYPECKEYTIME APPLIEDADMINOPTIONS
[typedesc][ckey][bantime][ackey][(unbanned) ? "" : "Unban"]
" + output += "" + output += "" + output += "" + output += "" + output += "" + output += "" output += "" - output += "" - output += "" - output += "" - output += "" - output += "" - output += "" - output += "" - if(edits) + + var/adminsearch = "" + var/playersearch = "" + var/ipsearch = "" + var/cidsearch = "" + var/bantypesearch = "" + + if(!match) + if(adminckey) + adminsearch = "AND a_ckey = '[adminckey]' " + if(playerckey) + playersearch = "AND ckey = '[playerckey]' " + if(playerip) + ipsearch = "AND ip = '[playerip]' " + if(playercid) + cidsearch = "AND computerid = '[playercid]' " + else + if(adminckey && lentext(adminckey) > 3) + adminsearch = "AND a_ckey LIKE '[adminckey]%' " + if(playerckey && lentext(playerckey) > 3) + playersearch = "AND ckey LIKE '[playerckey]%' " + if(playerip && lentext(playerip) > 3) + ipsearch = "AND ip LIKE '[playerip]%' " + if(playercid && lentext(playercid) > 7) + cidsearch = "AND computerid LIKE '[playercid]%' " + + if(dbbantype) + bantypesearch = "AND bantype = " + + switch(dbbantype) + if(BANTYPE_TEMP) + bantypesearch += "'TEMPBAN' " + if(BANTYPE_JOB_PERMA) + bantypesearch += "'JOB_PERMABAN' " + if(BANTYPE_JOB_TEMP) + bantypesearch += "'JOB_TEMPBAN' " + else + bantypesearch += "'PERMABAN' " + + 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, computerid FROM erro_ban WHERE 1 [playersearch] [adminsearch] [ipsearch] [cidsearch] [bantypesearch] ORDER BY bantime DESC LIMIT 100") + 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/cid = select_query.item[15] + + 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 += "" output += "" output += "" - output += "" + output += "" output += "" - if(unbanned) - output += "" - output += "" + if(edits) + output += "" + output += "" + output += "" + output += "" + output += "" + output += "" + if(unbanned) + output += "" + output += "" + output += "" + output += "" + output += "" output += "" - output += "" - output += "" - output += "" - output += "
TYPECKEYTIME APPLIEDADMINOPTIONS
IP: [ip]CIP: [cid]
Reason: [(unbanned) ? "" : "(Edit)"] \"[reason]\"
EDITS[typedesc][ckey][bantime][ackey][(unbanned) ? "" : "Unban"]
IP: [ip]CIP: [cid]
[edits]Reason: [(unbanned) ? "" : "(Edit)"] \"[reason]\"
UNBANNED by admin [unbanckey] on [unbantime]
EDITS
[edits]
UNBANNED by admin [unbanckey] on [unbantime]
 
 
" + output += "" usr << browse(output,"window=lookupbans;size=900x700") \ No newline at end of file diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 0471d4b2e5..1f98e4ee3a 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -52,16 +52,18 @@ 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"] || href_list["dbsearchip"] || href_list["dbsearchcid"]) + else if(href_list["dbsearchckey"] || href_list["dbsearchadmin"] || href_list["dbsearchip"] || href_list["dbsearchcid"] || href_list["dbsearchbantype"]) var/adminckey = href_list["dbsearchadmin"] var/playerckey = href_list["dbsearchckey"] var/playerip = href_list["dbsearchip"] var/playercid = href_list["dbsearchcid"] + var/dbbantype = text2num(href_list["dbsearchbantype"]) var/match = 0 + if("dbmatch" in href_list) match = 1 - DB_ban_panel(playerckey, adminckey, playerip, playercid, match) + DB_ban_panel(playerckey, adminckey, playerip, playercid, dbbantype, match) return else if(href_list["dbbanedit"])