def render_GET(self, request):
     if not self.is_authorized(request):
         return ""
     if request.path == "/whitelist":
         return self.render_whitelist(request)
     if request.path != "/banhammer":
         request.setResponseCode(500)
         return "wrong url path"
     sqlstatement = (''
         'select users.profileid,enabled,data,users.gameid,console,users.userid '
         'from nas_logins '
         'inner join users '
         'on users.userid = nas_logins.userid '
         'inner join ( '
         '    select max(profileid) newestpid, userid, gameid, devname '
         '    from users '
         '    group by userid,gameid) '
         'ij on ij.userid = users.userid and '
         'users.profileid = ij.newestpid '
         'order by users.gameid '
         '') 
     dbconn = sqlite3.connect('gpcm.db')
     responsedata = ("<html><meta charset='utf-8'>\r\n"
         "<title>altwfc admin page</title>"
         '<a href="http://%20:%20@'+request.getHeader('host')+'">[CLICK HERE TO LOG OUT]</a>'
         "<br><br>"
         '<a href="http://'+request.getHeader('host')+'/whitelist">WhiteList</a>'
         "<table border='1'>" 
         "<tr><td>ingamesn or devname</td><td>gameid</td>"
         "<td>Enabled</td><td>newest dwc_pid</td>"
         "<td>gsbrcd</td><td>userid</td></tr>\r\n")
     for row in dbconn.cursor().execute(sqlstatement):
         dwc_pid = str(row[0])
         enabled = str(row[1])
         nasdata = collections.defaultdict(lambda: '', json.loads(row[2]))
         gameid = str(row[3])
         is_console = int(str(row[4]))
         userid = str(row[5])
         gsbrcd = str(nasdata['gsbrcd'])
         ingamesn = ''
         if 'ingamesn' in nasdata:
             ingamesn = str(nasdata['ingamesn'])
         elif 'devname' in nasdata:
             ingamesn = str(nasdata['devname'])
         if ingamesn:
             ingamesn = gs_utils.base64_decode(ingamesn)
             if is_console:
                 ingamesn = codecs.utf_16_be_decode(ingamesn)[0]
             else:
                 ingamesn = codecs.utf_16_le_decode(ingamesn)[0]
         else:
             ingamesn = '[NOT AVAILABLE]'
         responsedata += "<tr>"
         responsedata += "<td>"+ingamesn+"</td>"
         responsedata += "<td>"+gameid+"</td>"
         responsedata += "<td>"+enabled+"</td>"
         responsedata += "<td>"+dwc_pid+"</td>"
         responsedata += "<td>"+gsbrcd+"</td>"
         responsedata += "<td>"+userid+"</td>"
         if enabled == "1":
             responsedata += ("<td><form action='disableuser' method='POST'>"
             "<input type='hidden' name='userid' value='"+userid+"'>"
             "<input type='hidden' name='gameid' value='"+gameid+"'>"
             "<input type='hidden' name='ingamesn' value='"+ingamesn+"'>"
             "<input type='submit' value='Ban'></form></td></tr>")
         else:
             responsedata += ("<td><form action='enableuser' method='POST'>"
             "<input type='hidden' name='userid' value='"+userid+"'>"
             "<input type='hidden' name='gameid' value='"+gameid+"'>"
             "<input type='hidden' name='ingamesn' value='"+ingamesn+"'>"
             "<input type='submit' value='----- unban -----'></form></td></tr>")
     responsedata += "</table></html>" 
     dbconn.close()
     request.setHeader("Content-Type", "text/html; charset=utf-8")
     return responsedata.encode('utf-8')
 def render_GET(self, request):
     if not self.is_authorized(request):
         return ""
     if request.path == "/whitelist":
         return self.render_whitelist(request)
     if request.path != "/banhammer":
         request.setResponseCode(500)
         return "wrong url path"
     sqlstatement = (
         ''
         'select users.profileid,enabled,data,users.gameid,console,users.userid '
         'from nas_logins '
         'inner join users '
         'on users.userid = nas_logins.userid '
         'inner join ( '
         '    select max(profileid) newestpid, userid, gameid, devname '
         '    from users '
         '    group by userid,gameid) '
         'ij on ij.userid = users.userid and '
         'users.profileid = ij.newestpid '
         'order by users.gameid '
         '')
     dbconn = sqlite3.connect('gpcm.db')
     responsedata = ("<html><meta charset='utf-8'>\r\n"
                     "<title>altwfc admin page</title>"
                     '<a href="http://%20:%20@' +
                     request.getHeader('host') +
                     '">[CLICK HERE TO LOG OUT]</a>'
                     "<br><br>"
                     '<a href="http://' + request.getHeader('host') +
                     '/whitelist">WhiteList</a>'
                     "<table border='1'>"
                     "<tr><td>ingamesn or devname</td><td>gameid</td>"
                     "<td>Enabled</td><td>newest dwc_pid</td>"
                     "<td>gsbrcd</td><td>userid</td></tr>\r\n")
     for row in dbconn.cursor().execute(sqlstatement):
         dwc_pid = str(row[0])
         enabled = str(row[1])
         nasdata = collections.defaultdict(lambda: '', json.loads(row[2]))
         gameid = str(row[3])
         is_console = int(str(row[4]))
         userid = str(row[5])
         gsbrcd = str(nasdata['gsbrcd'])
         ingamesn = ''
         if 'ingamesn' in nasdata:
             ingamesn = str(nasdata['ingamesn'])
         elif 'devname' in nasdata:
             ingamesn = str(nasdata['devname'])
         if ingamesn:
             ingamesn = gs_utils.base64_decode(ingamesn)
             if is_console:
                 ingamesn = codecs.utf_16_be_decode(ingamesn)[0]
             else:
                 ingamesn = codecs.utf_16_le_decode(ingamesn)[0]
         else:
             ingamesn = '[NOT AVAILABLE]'
         responsedata += "<tr>"
         responsedata += "<td>" + ingamesn + "</td>"
         responsedata += "<td>" + gameid + "</td>"
         responsedata += "<td>" + enabled + "</td>"
         responsedata += "<td>" + dwc_pid + "</td>"
         responsedata += "<td>" + gsbrcd + "</td>"
         responsedata += "<td>" + userid + "</td>"
         if enabled == "1":
             responsedata += (
                 "<td><form action='disableuser' method='POST'>"
                 "<input type='hidden' name='userid' value='" + userid +
                 "'>"
                 "<input type='hidden' name='gameid' value='" + gameid +
                 "'>"
                 "<input type='hidden' name='ingamesn' value='" + ingamesn +
                 "'>"
                 "<input type='submit' value='Ban'></form></td></tr>")
         else:
             responsedata += (
                 "<td><form action='enableuser' method='POST'>"
                 "<input type='hidden' name='userid' value='" + userid +
                 "'>"
                 "<input type='hidden' name='gameid' value='" + gameid +
                 "'>"
                 "<input type='hidden' name='ingamesn' value='" + ingamesn +
                 "'>"
                 "<input type='submit' value='----- unban -----'></form></td></tr>"
             )
     responsedata += "</table></html>"
     dbconn.close()
     request.setHeader("Content-Type", "text/html; charset=utf-8")
     return responsedata.encode('utf-8')
Exemplo n.º 3
0
    def render_blacklist(self, request):
        sqlstatement = """
        SELECT users.profileid, enabled, data, users.gameid, console,
               users.userid
        FROM nas_logins
        INNER JOIN users
        ON users.userid = nas_logins.userid
        INNER JOIN (
            SELECT max(profileid) newestpid, userid, gameid, devname
            FROM users
            GROUP BY userid, gameid
        ) ij
        ON ij.userid = users.userid
        AND users.profileid = ij.newestpid
        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 = """
        <a href="http://%%20:%%20@%s">[CLICK HERE TO LOG OUT]</a>
        <br><br>
        <table border='1'>"
        <tr>
            <td>ingamesn or devname</td>
            <td>gameid</td>
            <td>Enabled</td>
            <td>newest dwc_pid</td>"
            <td>gsbrcd</td>
            <td>userid</td>
            <td>ipAddr</td>
        </tr>""" % request.getHeader('host')

        for row in dbconn.cursor().execute(sqlstatement):
            dwc_pid = str(row[0])
            enabled = str(row[1])
            nasdata = collections.defaultdict(lambda: '', json.loads(row[2]))
            gameid = str(row[3])
            is_console = int(str(row[4]))
            userid = str(row[5])
            gsbrcd = str(nasdata['gsbrcd'])
            ipaddr = str(nasdata['ipaddr'])
            ingamesn = ''
            if 'ingamesn' in nasdata:
                ingamesn = str(nasdata['ingamesn'])
            elif 'devname' in nasdata:
                ingamesn = str(nasdata['devname'])
            if ingamesn:
                ingamesn = gs_utils.base64_decode(ingamesn)
                if is_console:
                    ingamesn = codecs.utf_16_be_decode(ingamesn)[0]
                else:
                    ingamesn = codecs.utf_16_le_decode(ingamesn)[0]
            else:
                ingamesn = '[NOT AVAILABLE]'
            responsedata += """
            <tr>
                <td>%s</td>
                <td id="game">%s</td>
                <td>%s</td>
                <td>%s</td>
                <td>%s</td>
                <td>%s</td>
                <td>%s</td>
            """ % (ingamesn, gameid, enabled, dwc_pid, gsbrcd, userid, ipaddr)
            if gameid[:-1] + ":" + ipaddr in banned_list:
                responsedata += """
                    <td>
                    <form action='updatebanlist' method='POST'>
                        <input type='hidden' name='gameid' value='%s'>
                        <input type='hidden' name='ipaddr' value='%s'>
                        <input type='hidden' name='action' value='unban'>
                        <input type='submit' value='----- unban -----'>
                    </form>
                    </td>
                </tr>""" % (gameid, ipaddr)
            else:
                responsedata += """
                    <td>
                    <form action='updatebanlist' method='POST'>
                        <input type='hidden' name='gameid' value='%s'>
                        <input type='hidden' name='ipaddr' value='%s'>
                        <input type='hidden' name='action' value='ban'>
                        <input type='submit' value='Ban'>
                    </form>
                    </td>
                </tr>
                """ % (gameid, ipaddr)

        responsedata += "</table>"
        dbconn.close()
        request.setHeader("Content-Type", "text/html; charset=utf-8")
        return responsedata.encode('utf-8')
 def render_blacklist(self, request):
     sqlstatement = (''
         'select users.profileid,enabled,data,users.gameid,console,users.userid '
         'from nas_logins '
         'inner join users '
         'on users.userid = nas_logins.userid '
         'inner join ( '
         '    select max(profileid) newestpid, userid, gameid, devname '
         '    from users '
         '    group by userid,gameid) '
         'ij on ij.userid = users.userid and '
         'users.profileid = ij.newestpid '
         'order by users.gameid '
         '') 
     dbconn = sqlite3.connect('gpcm.db')
     banned_list = []
     for row in dbconn.cursor().execute("SELECT * FROM IP_BANNED"):
         banned_list.append(str(row[0]))
     responsedata = (""
         '<a href="http://%20:%20@'+request.getHeader('host')+'">[CLICK HERE TO LOG OUT]</a>'
         "<br><br>"
         "<table border='1'>" 
         "<tr><td>ingamesn or devname</td><td>gameid</td>"
         "<td>Enabled</td><td>newest dwc_pid</td>"
         "<td>gsbrcd</td><td>userid</td><td>ipAddr</td><td>macadr</td><td>cfc</td><td>csnum</td><td>Ban/Unban IP</td></tr>\r\n")
     for row in dbconn.cursor().execute(sqlstatement):
         dwc_pid = str(row[0])
         enabled = str(row[1])
         nasdata = collections.defaultdict(lambda: '', json.loads(row[2]))
         gameid = str(row[3])
         is_console = int(str(row[4]))
         userid = str(row[5])
         gsbrcd = str(nasdata['gsbrcd'])
         ipaddr = str(nasdata['ipaddr'])
         macadr = str(nasdata['macadr'])
         cfc = str(nasdata['cfc'])
         csnum = str(nasdata['csnum'])
         ingamesn = ''
         if 'ingamesn' in nasdata:
             ingamesn = str(nasdata['ingamesn'])
         elif 'devname' in nasdata:
             ingamesn = str(nasdata['devname'])
         if ingamesn:
             ingamesn = gs_utils.base64_decode(ingamesn)
             if is_console:
                 ingamesn = codecs.utf_16_be_decode(ingamesn)[0]
             else:
                 ingamesn = codecs.utf_16_le_decode(ingamesn)[0]
         else:
             ingamesn = '[NOT AVAILABLE]'
         responsedata += "<tr>"
         responsedata += "<td>"+ingamesn+"</td>"
         responsedata += "<td>"+gameid+"</td>"
         responsedata += "<td>"+enabled+"</td>"
         responsedata += "<td>"+dwc_pid+"</td>"
         responsedata += "<td>"+gsbrcd+"</td>"
         responsedata += "<td>"+userid+"</td>"
         responsedata += "<td>"+ipaddr+"</td>"
         responsedata += "<td>"+macadr+"</td>"
         responsedata += "<td>"+cfc+"</td>"
         responsedata +="<td>"+csnum+"</td>"
         if ipaddr in banned_list:
             responsedata += ("<td><form action='updatebanlist' method='POST'>"
             "<input type='hidden' name='gameid' value='"+gameid+"'>"
             "<input type='hidden' name='ipaddr' value='"+ipaddr+"'>"
             "<input type='hidden' name='action' value='unban'>"
             "<input type='submit' value='----- unban -----'></form></td></tr>")
         else:
             responsedata += ("<td><form action='updatebanlist' method='POST'>"
             "<input type='hidden' name='gameid' value='"+gameid+"'>"
             "<input type='hidden' name='ipaddr' value='"+ipaddr+"'>"
             "<input type='hidden' name='action' value='ban'>"
             "<input type='submit' value='Ban'></form></td></tr>")
     responsedata += "</table>" 
     dbconn.close()
     request.setHeader("Content-Type", "text/html; charset=utf-8")
     return responsedata.encode('utf-8')
    def render_blacklist(self, request):
        sqlstatement = """
        SELECT users.profileid, enabled, data, users.gameid, console,
               users.userid
        FROM nas_logins
        INNER JOIN users
        ON users.userid = nas_logins.userid
        INNER JOIN (
            SELECT max(profileid) newestpid, userid, gameid, devname
            FROM users
            GROUP BY userid, gameid
        ) ij
        ON ij.userid = users.userid
        AND users.profileid = ij.newestpid
        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 = """
        <a href="http://%%20:%%20@%s">[CLICK HERE TO LOG OUT]</a>
        <br><br>
        <table border='1'>"
        <tr>
            <td>ingamesn or devname</td>
            <td>gameid</td>
            <td>Enabled</td>
            <td>newest dwc_pid</td>"
            <td>gsbrcd</td>
            <td>userid</td>
            <td>ipAddr</td>
        </tr>""" % request.getHeader('host')

        for row in dbconn.cursor().execute(sqlstatement):
            dwc_pid = str(row[0])
            enabled = str(row[1])
            nasdata = collections.defaultdict(lambda: '', json.loads(row[2]))
            gameid = str(row[3])
            is_console = int(str(row[4]))
            userid = str(row[5])
            gsbrcd = str(nasdata['gsbrcd'])
            ipaddr = str(nasdata['ipaddr'])
            ingamesn = ''
            if 'ingamesn' in nasdata:
                ingamesn = str(nasdata['ingamesn'])
            elif 'devname' in nasdata:
                ingamesn = str(nasdata['devname'])
            if ingamesn:
                ingamesn = gs_utils.base64_decode(ingamesn)
                if is_console:
                    ingamesn = codecs.utf_16_be_decode(ingamesn)[0]
                else:
                    ingamesn = codecs.utf_16_le_decode(ingamesn)[0]
            else:
                ingamesn = '[NOT AVAILABLE]'
            responsedata += """
            <tr>
                <td>%s</td>
                <td>%s</td>
                <td>%s</td>
                <td>%s</td>
                <td>%s</td>
                <td>%s</td>
                <td>%s</td>
            """ % (ingamesn,
                   gameid,
                   enabled,
                   dwc_pid,
                   gsbrcd,
                   userid,
                   ipaddr)
            if gameid[:-1] + ":" + ipaddr in banned_list:
                responsedata += """
                    <td>
                    <form action='updatebanlist' method='POST'>
                        <input type='hidden' name='gameid' value='%s'>
                        <input type='hidden' name='ipaddr' value='%s'>
                        <input type='hidden' name='action' value='unban'>
                        <input type='submit' value='----- unban -----'>
                    </form>
                    </td>
                </tr>""" % (gameid, ipaddr)
            else:
                responsedata += """
                    <td>
                    <form action='updatebanlist' method='POST'>
                        <input type='hidden' name='gameid' value='%s'>
                        <input type='hidden' name='ipaddr' value='%s'>
                        <input type='hidden' name='action' value='ban'>
                        <input type='submit' value='Ban'>
                    </form>
                    </td>
                </tr>
                """ % (gameid, ipaddr)

        responsedata += "</table>"
        dbconn.close()
        request.setHeader("Content-Type", "text/html; charset=utf-8")
        return responsedata.encode('utf-8')
 def render_blacklist(self, request):
     sqlstatement = (
         ''
         'select users.profileid,enabled,data,users.gameid,console,users.userid '
         'from nas_logins '
         'inner join users '
         'on users.userid = nas_logins.userid '
         'inner join ( '
         '    select max(profileid) newestpid, userid, gameid, devname '
         '    from users '
         '    group by userid,gameid) '
         'ij on ij.userid = users.userid and '
         'users.profileid = ij.newestpid '
         '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 = (
         ""
         '<a href="http://%20:%20@' + request.getHeader('host') +
         '">[CLICK HERE TO LOG OUT]</a>'
         "<br><br>"
         "<table border='1'>"
         "<tr><td>ingamesn or devname</td><td>gameid</td>"
         "<td>Enabled</td><td>newest dwc_pid</td>"
         "<td>gsbrcd</td><td>userid</td><td>ipAddr</td></tr>\r\n")
     for row in dbconn.cursor().execute(sqlstatement):
         dwc_pid = str(row[0])
         enabled = str(row[1])
         nasdata = collections.defaultdict(lambda: '', json.loads(row[2]))
         gameid = str(row[3])
         is_console = int(str(row[4]))
         userid = str(row[5])
         gsbrcd = str(nasdata['gsbrcd'])
         ipaddr = str(nasdata['ipaddr'])
         ingamesn = ''
         if 'ingamesn' in nasdata:
             ingamesn = str(nasdata['ingamesn'])
         elif 'devname' in nasdata:
             ingamesn = str(nasdata['devname'])
         if ingamesn:
             ingamesn = gs_utils.base64_decode(ingamesn)
             if is_console:
                 ingamesn = codecs.utf_16_be_decode(ingamesn)[0]
             else:
                 ingamesn = codecs.utf_16_le_decode(ingamesn)[0]
         else:
             ingamesn = '[NOT AVAILABLE]'
         responsedata += "<tr>"
         responsedata += "<td>" + ingamesn + "</td>"
         responsedata += "<td>" + gameid + "</td>"
         responsedata += "<td>" + enabled + "</td>"
         responsedata += "<td>" + dwc_pid + "</td>"
         responsedata += "<td>" + gsbrcd + "</td>"
         responsedata += "<td>" + userid + "</td>"
         responsedata += "<td>" + ipaddr + "</td>"
         if gameid[:-1] + ":" + ipaddr in banned_list:
             responsedata += (
                 "<td><form action='updatebanlist' method='POST'>"
                 "<input type='hidden' name='gameid' value='" + gameid +
                 "'>"
                 "<input type='hidden' name='ipaddr' value='" + ipaddr +
                 "'>"
                 "<input type='hidden' name='action' value='unban'>"
                 "<input type='submit' value='----- unban -----'></form></td></tr>"
             )
         else:
             responsedata += (
                 "<td><form action='updatebanlist' method='POST'>"
                 "<input type='hidden' name='gameid' value='" + gameid +
                 "'>"
                 "<input type='hidden' name='ipaddr' value='" + ipaddr +
                 "'>"
                 "<input type='hidden' name='action' value='ban'>"
                 "<input type='submit' value='Ban'></form></td></tr>")
     responsedata += "</table>"
     dbconn.close()
     request.setHeader("Content-Type", "text/html; charset=utf-8")
     return responsedata.encode('utf-8')