Exemplo n.º 1
0
def doaddpc(req):
    req.default_response()
    validcode = True
    try:
        id, digit = req.form["user"].value.split("-")
        id = int(id)
        if digit != database.gen_usercode(id):
            validcode = False
    except:
        validcode = False
    if validcode:
        user = req.form["user"].value
        cu = database.cx.cursor()
        cu.execute("select name from costumers where id=%d;" % id)
        a = cu.fetchone()
        cu.close()
        if a:
            username = a[0]
            if len(username) > 23:
                tmp = ""
                for x in username.split():
                    if len(tmp + x) <= 20:
                        tmp += x + " "
                if tmp == "":
                    username = username[:20]
                else:
                    username = tmp.strip()
                username += "..."
        else:
            validcode = False
    if not validcode:
        username = "******"
        user = ""
    try:
        ts = h2ts(req.form["end"].value, req.form["start"].value)
        if not ts is None:
            if validcode:
                cu.execute(
                    "update costumers set total_use=total_use+%d where id=%d;"
                    % (int(round((ts - time.time()) / 60.0)), id)
                )
                database.cx.commit()
                cu.close()
            cfgloader.do_iptables(req.form["computer"].value, True)
            pcs[req.form["computer"].value] = [username, req.form["start"].value, req.form["end"].value, user, ts]
    except:
        pass
    req.wfile.write(
        """<html>
<head>
<title>pycyber</title>
<script language="javascript" type="text/javascript"><!--
window.close();
--></script>
</head>
</html>"""
    )
Exemplo n.º 2
0
def kill(id):
  ip = cfgloader.cfg['ips'][id]
  try:
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.settimeout(1.5)
    sock.connect((ip, config.shutdownport))
    data = sock.recv(1024)
    sock.sendall(data)
    sock.close()
  except:
    import main
    main.addalert(gettext("Couldn't send shutdown command to <b>%s</b>. Please check if the computer is on and if the network cable is correctly plugged.") % id)
  cfgloader.do_iptables(id, False)
  deathcheck.add(ip, id)
Exemplo n.º 3
0
def dochange(req):
    id = req.form["id"].value
    if req.form.has_key("change"):
        newid = req.form["computer"].value
        if newid != id:
            pcs[newid] = pcs[id]
            pcs.pop(id)
            id = newid
        pcs[id][2] = req.form["end"].value
        pcs[id][4] = h2ts(pcs[id][2], pcs[id][1])
    else:
        credit = round((pcs[id][4] - time.time()) / 60.0)
        try:
            userid = int(pcs[id][3].split("-")[0])
        except:
            pass
        else:
            if credit > 0:
                cu = database.cx.cursor()
                cu.execute(
                    "update costumers set credit=credit+%d,total_use=total_use-%d where id=%d;"
                    % (credit, credit, userid)
                )
                database.cx.commit()
                cu.close()
        pcs.pop(id)
        if req.form.has_key("shutdown"):
            pckiller.kill(id)
        else:
            cfgloader.do_iptables(id, False)
    req.wfile.write(
        """<html>
<head>
<title>pycyber</title>
<script language="javascript" type="text/javascript"><!--
window.close();
--></script>
</head>
</html>"""
    )