From ec361efc5a17f61c4e46e10784757bcf59743345 Mon Sep 17 00:00:00 2001 From: Kyle Warwick-Mathieu Date: Mon, 4 May 2015 02:31:37 -0400 Subject: [PATCH] Re-did admin page to support new ban system Sorry AdmiralCurtis but your fixes focussed a lot on the new logic and we couldn't really work with it. Sorry if we wasted your time Revert "Re-did admin page to support new ban system" This reverts commit c4cda866bfb4f4839e725edf1bd32339755cdeb1. Reapply Admin page changes. --- admin_page_server.py | 100 +++++++++++++++++++------------------------ 1 file changed, 44 insertions(+), 56 deletions(-) diff --git a/admin_page_server.py b/admin_page_server.py index 6ab53db..414d158 100644 --- a/admin_page_server.py +++ b/admin_page_server.py @@ -81,8 +81,8 @@ class AdminPage(resource.Resource): '' '' '

' - 'Blacklist ' - 'Whitelist ' + 'All Users | ' + 'Active Bans ' '

' ) return s @@ -114,56 +114,47 @@ class AdminPage(resource.Resource): request.write(error_message) return is_auth - def update_whitelist(self, request): + def update_banlist(self, request): address = request.getClientIP() dbconn = sqlite3.connect('gpcm.db') - userid = request.args['userid'][0].strip() gameid = request.args['gameid'][0].upper().strip() - macadr = request.args['macadr'][0].strip() - actiontype = request.args['actiontype'][0] - if not userid.isdigit() or not gameid.isalnum() or not macadr.isalnum(): + ipaddr = request.args['ipaddr'][0].strip() + actiontype = request.args['action'][0] + if not gameid.isalnum(): request.setResponseCode(500) - logger.log(logging.INFO,address+" Bad data "+userid+" "+gameid+" "+macadr) + logger.log(logging.INFO,address+" Bad data "+gameid+" "+ipaddr) return "Bad data" - if actiontype == 'add': - dbconn.cursor().execute('insert into whitelist values(?,?,?)',(userid,gameid,macadr)) - responsedata = "Added macadr=%s for gameid=%s, userid=%s" % (macadr,gameid,userid) + if actiontype == 'ban': + dbconn.cursor().execute('insert into banned values(?,?)',(gameid[:-1],ipaddr)) + responsedata = "Added gameid=%s, ipaddr=%s" % (gameid[:-1],ipaddr) else: - dbconn.cursor().execute('delete from whitelist where userid=? and gameid=? and macadr=?',(userid,gameid,macadr)) - responsedata = "Removed macadr=%s for gameid=%s, userid=%s" % (macadr,gameid,userid) + dbconn.cursor().execute('delete from banned where gameid=? and ipaddr=?',(gameid[:-1],ipaddr)) + responsedata = "Removed gameid=%s, ipaddr=%s" % (gameid[:-1],ipaddr) dbconn.commit() dbconn.close() logger.log(logging.INFO,address+" "+responsedata) request.setHeader("Content-Type", "text/html; charset=utf-8") - request.setHeader("Location", "/whitelist") + request.setHeader("Location", "/banhammer") request.setResponseCode(303) return responsedata - def render_whitelist(self, request): + def render_banlist(self, request): address = request.getClientIP() dbconn = sqlite3.connect('gpcm.db') - logger.log(logging.INFO,address+" Viewed whitelist") + logger.log(logging.INFO,address+" Viewed banlist") responsedata = ("" '[CLICK HERE TO LOG OUT]' - "
" - "userid:\r\n" - "gameid:\r\n" - "macadr:\r\n" - "\r\n" - "
\r\n" "" - "\r\n") - for row in dbconn.cursor().execute("select * from whitelist"): - userid = str(row[0]) - gameid = str(row[1]) - macadr = str(row[2]) - responsedata += ("" - "\r\n") + for row in dbconn.cursor().execute("select * from banned"): + gameid = str(row[0]) + ipaddr = str(row[1]) + responsedata += ("" + "\r\n") + "" + "\r\n" + "\r\n") responsedata += "
useridgameidmacadr
"+userid+""+gameid+""+macadr+"
" - "" + "
gameidipAddr
"+gameid+""+ipaddr+"" "" - "" - "\r\n" - "
" dbconn.close() request.setHeader("Content-Type", "text/html; charset=utf-8") @@ -189,13 +180,16 @@ class AdminPage(resource.Resource): 'order by users.gameid ' '') dbconn = sqlite3.connect('gpcm.db') + banned_list = [] + for row in dbconn.cursor().execute("SELECT * FROM BANNED"): + banned_list.append(str(row[0])+":"+str(row[1])) responsedata = ("" '[CLICK HERE TO LOG OUT]' "

" "" "" "" - "\r\n") + "\r\n") for row in dbconn.cursor().execute(sqlstatement): dwc_pid = str(row[0]) enabled = str(row[1]) @@ -204,7 +198,7 @@ class AdminPage(resource.Resource): is_console = int(str(row[4])) userid = str(row[5]) gsbrcd = str(nasdata['gsbrcd']) - ipaddr = str (nasdata['ipaddr']) + ipaddr = str(nasdata['ipaddr']) ingamesn = '' if 'ingamesn' in nasdata: ingamesn = str(nasdata['ingamesn']) @@ -226,20 +220,18 @@ class AdminPage(resource.Resource): responsedata += "" responsedata += "" responsedata += "" - if enabled == "1": - responsedata += ("") - else: - responsedata += ("") + else: + responsedata += ("") responsedata += "
ingamesn or devnamegameidEnablednewest dwc_pidgsbrcduseridIP
gsbrcduseridipAddr
"+gsbrcd+""+userid+""+ipaddr+"
" - "" + if gameid[:-1]+":"+ipaddr in banned_list: + responsedata += ("
" "" - "" - "" - "
" - "" - "" - "" "" + "" "
" + "" + "" + "" + "
" dbconn.close() request.setHeader("Content-Type", "text/html; charset=utf-8") @@ -284,11 +276,11 @@ class AdminPage(resource.Resource): title = None response = '' - if request.path == "/whitelist": - title = 'AltWfc Whitelist' - response = self.render_whitelist(request) + if request.path == "/banlist": + title = 'AltWfc Banned Users' + response = self.render_banlist(request) elif request.path == "/banhammer": - title = 'AltWfc Blacklist' + title = 'AltWfc Users' response = self.render_blacklist(request) return self.get_header(title) + response + self.get_footer() @@ -300,12 +292,8 @@ class AdminPage(resource.Resource): if not self.is_authorized(request): return "" - if request.path == "/updatewhitelist": - return self.update_whitelist(request) - elif request.path == "/enableuser": - return self.enable_disable_user(request, True) - elif request.path == "/disableuser": - return self.enable_disable_user(request, False) + if request.path == "/updatebanlist": + return self.update_banlist(request) else: return self.get_header() + self.get_footer()