diff --git a/code/modules/admin/DB_ban/functions.dm b/code/modules/admin/DB_ban/functions.dm
index 5139ea8480..5047b31641 100644
--- a/code/modules/admin/DB_ban/functions.dm
+++ b/code/modules/admin/DB_ban/functions.dm
@@ -337,7 +337,7 @@
holder.DB_ban_panel()
-/datum/admins/proc/DB_ban_panel(playerckey = null, adminckey = null, page = 0)
+/datum/admins/proc/DB_ban_panel(playerckey, adminckey, ip, cid, page = 0)
if(!usr.client)
return
@@ -394,25 +394,29 @@
output += ""
output += HrefTokenFormField()
output += "Ckey: "
- output += "Admin ckey: "
+ output += "Admin ckey:
"
+ output += "IP: "
+ output += "CID: "
output += ""
output += ""
output += "Please note that all jobban bans or unbans are in-effect the following round."
- if(adminckey || playerckey)
- playerckey = sanitizeSQL(ckey(playerckey))
- adminckey = sanitizeSQL(ckey(adminckey))
- var/playersearch = ""
- var/adminsearch = ""
+ if(adminckey || playerckey || ip || cid)
+ var/list/searchlist = list()
if(playerckey)
- playersearch = "AND ckey = '[playerckey]' "
+ searchlist += "ckey = '[sanitizeSQL(ckey(playerckey))]'"
if(adminckey)
- adminsearch = "AND a_ckey = '[adminckey]' "
+ searchlist += "a_ckey = '[sanitizeSQL(ckey(adminckey))]'"
+ if(ip)
+ searchlist += "ip = INET_ATON('[sanitizeSQL(ip)]')"
+ if(cid)
+ searchlist += "computerid = '[sanitizeSQL(cid)]'"
+ var/search = searchlist.Join(" AND ")
var/bancount = 0
var/bansperpage = 15
var/pagecount = 0
page = text2num(page)
- var/datum/DBQuery/query_count_bans = SSdbcore.NewQuery("SELECT COUNT(id) FROM [format_table_name("ban")] WHERE 1 [playersearch] [adminsearch]")
+ var/datum/DBQuery/query_count_bans = SSdbcore.NewQuery("SELECT COUNT(id) FROM [format_table_name("ban")] WHERE [search]")
if(!query_count_bans.warn_execute())
return
if(query_count_bans.NextRow())
@@ -438,7 +442,7 @@
output += "