diff --git a/code/modules/admin/DB ban/functions.dm b/code/modules/admin/DB ban/functions.dm index 50f229ceaf..d5354dfa41 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) +/datum/admins/proc/DB_ban_panel(var/playerckey = null, var/adminckey = null, var/playerip = null, var/playercid = null, var/match = null) if(!usr.client) return @@ -285,18 +285,18 @@ datum/admins/proc/DB_ban_unban_by_id(var/id) output += "
Add custom ban: (ONLY use this if you can't ban through any other method)" output += "" output += "" - output += "" - output += "" - output += "" - output += "" - output += "" - output += "" + output += "" + output += "" + output += "" + output += "" output += "
Ban type:Ban type:Ckey:
IP: Computer id:
Duration: Job:Ckey:
IP: CID:
Duration: Job:
" - output += "Search: " - output += "" - output += "Ckey: " - output += "Admin ckey: " - output += "" + output += "" + output += "" + output += "" + output += "" + output += "
Search:" + output += "
Ckey: Admin ckey:
IP: CID:
" + output += "

" + output += " Match(min. 3 characters to search)
" output += "
" output += "Please note that all jobban bans or unbans are in-effect the following round." - if(adminckey || playerckey) + if(adminckey || playerckey || playerip || playercid) var/blcolor = "#ffeeee" //banned light var/bdcolor = "#ffdddd" //banned dark @@ -339,14 +342,33 @@ datum/admins/proc/DB_ban_unban_by_id(var/id) adminckey = ckey(adminckey) playerckey = ckey(playerckey) + playerip = sql_sanitize_text(playerip) + playercid = sql_sanitize_text(playercid) + var/adminsearch = "" var/playersearch = "" - if(adminckey) - adminsearch = "AND a_ckey = '[adminckey]' " - if(playerckey) - playersearch = "AND ckey = '[playerckey]' " + 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]%' " - 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, computerid FROM erro_ban WHERE 1 [playersearch] [adminsearch] [ipsearch] [cidsearch] ORDER BY bantime DESC") select_query.Execute() while(select_query.NextRow()) @@ -363,6 +385,8 @@ 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/cid = select_query.item[15] var/lcolor = blcolor var/dcolor = bdcolor @@ -388,6 +412,10 @@ datum/admins/proc/DB_ban_unban_by_id(var/id) output += "[ackey]" output += "[(unbanned) ? "" : "Unban"]" output += "" + output += "" + output += "IP: [ip]" + output += "CIP: [cid]" + output += "" output += "" output += "Reason: [(unbanned) ? "" : "(Edit)"] \"[reason]\"" output += "" @@ -408,4 +436,4 @@ datum/admins/proc/DB_ban_unban_by_id(var/id) output += "" - usr << browse(output,"window=lookupbans;size=900x500") \ No newline at end of file + 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 c9d3306797..0471d4b2e5 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -52,11 +52,16 @@ 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["dbsearchcid"]) var/adminckey = href_list["dbsearchadmin"] var/playerckey = href_list["dbsearchckey"] + var/playerip = href_list["dbsearchip"] + var/playercid = href_list["dbsearchcid"] + var/match = 0 + if("dbmatch" in href_list) + match = 1 - DB_ban_panel(playerckey, adminckey) + DB_ban_panel(playerckey, adminckey, playerip, playercid, match) return else if(href_list["dbbanedit"])