Exemplo n.º 1
0
def run(scope, action, argv):
    if scope == 'user':
        if   action == 'list':
            print("id\tusername\tsuspended\tport\tsskey")
            for u in user.get_all():
                print('\t'.join(( str(item) for item in 
                    (u.id, u.username, 'True' if u.suspended else 'False', config.user_port(u.id), u.sskey)
                )))
        elif action == 'add':
            username = argv[0] if len(argv) > 0 else raw_input('Username: '******'Shadowsocks Key: ')
            u = user.User()
            u.username = username
            u.set_password(password)
            u.sskey = sskey
            u.create()
            u.write()
        elif action == 'del':
            user.delete_users(*argv)
        elif action in ['suspend', 'unsuspend']:
            user.batch_update(*argv, suspended=(1 if action == 'suspend' else 0))
        elif action == 'passwd':
            username = argv[0] if len(argv) > 0 else raw_input('Username: '******'sskey':
            username = argv[0] if len(argv) > 0 else raw_input('Username: '******'Shadowsocks Key: ')
            u = user.get_by_username(username)
            u.sskey = sskey
            u.write()
        else:
            print_help()
    elif scope == 'sys':
        if   action == 'update':
            import ssmgr
            ssmgr.update_and_restart()
            
            try:
                import os
                with open(config.TMP_ROOT + "/ssland.web.pid", 'r') as f:
                    pid = int(f.read())
                    os.kill(pid, 0)
                    from utils import get_stdout
                    get_stdout(["./web.py", "-d", "restart"])
            except:
                pass
        else:
            print_help()
    else:
        print_help()
Exemplo n.º 2
0
def admin_user_limit():
    username, limit = [request.forms.get(n) for n in ('username', 'limit')]
    limit = json.loads(limit)
    u = user.get_by_username(username)
    u.set_meta("limit", limit)
    u.write()
    return { "status": "ok" }
Exemplo n.º 3
0
def admin_user_limit():
    username, limit = [request.forms.get(n) for n in ('username', 'limit')]
    limit = json.loads(limit)
    u = user.get_by_username(username)
    u.set_meta("limit", limit)
    u.write()
    return {"status": "ok"}
Exemplo n.º 4
0
def admin_user_passwd():
    username, password = [
        request.forms.get(n) for n in ('username', 'password')
    ]
    u = user.get_by_username(username)
    u.salted_password = password
    u.write()
    return {"status": "ok"}
Exemplo n.º 5
0
def passwd():
    password = get_salted_password()
    
    u = current_user
    if (u.id == config.USER_ADMIN): u = user.get_by_username(request.forms.get('username'))
    
    u.salted_password = password
    u.write()
    return redirect('/')
Exemplo n.º 6
0
def admin_user_suspend():
    username, suspend, reason = [request.forms.get(n) for n in ('username', 'suspend', 'reason')]
    
    u = user.get_by_username(username)
    u.suspended = suspend == "1"
    if reason:
        datestr = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
        u.set_meta("limiter_log", "%s: %s"%(datestr, reason))
    u.write()
    return { "username": username, "suspended": u.suspended }
Exemplo n.º 7
0
def passwd():
    password = get_salted_password()

    u = current_user
    if (u.id == config.USER_ADMIN):
        u = user.get_by_username(request.forms.get('username'))

    u.salted_password = password
    u.write()
    return redirect('/')
Exemplo n.º 8
0
def find_user():
    if request.method=="GET":
        return render_template("find_user.html")
    elif request.method=="POST":
        form=request.form
        u=form["username"]
        check = user.get_by_username(u)
        if check != None:
          return "Tim thay  " + str(u)
        else:    
            return "Tai khoan khong ton tai !"
Exemplo n.º 9
0
def admin_user_suspend():
    username, suspend, reason = [
        request.forms.get(n) for n in ('username', 'suspend', 'reason')
    ]

    u = user.get_by_username(username)
    u.suspended = suspend == "1"
    if reason:
        datestr = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
        u.set_meta("limiter_log", "%s: %s" % (datestr, reason))
    u.write()
    return {"username": username, "suspended": u.suspended}
Exemplo n.º 10
0
def get_profile(username):
    my_profile = get_by_username(username)

    # If the job does not exist, return a 400
    if my_profile is None:
        abort(400)
    returnObj = {
        "firstname": my_profile["firstname"],
        "lastname": my_profile["lastname"],
        "email": my_profile["email"],
        "phone": my_profile["phone"],
        "account": my_profile["account"]
    }
    return jsonify(returnObj)
Exemplo n.º 11
0
def suspend(suspend, username):
    if (current_user.id != config.USER_ADMIN):
        return redirect('/')

    u = user.get_by_username(username)
    u.suspended = suspend != "0"
    u.write()

    msg = 'User %s status changed. Please click [Update SSConfig].' % username
    return template(
        'home',
        config=config,
        user=current_user,
        message=msg,
        users=(user.get_all() if current_user.id == config.USER_ADMIN else {}))
Exemplo n.º 12
0
def suspend(suspend, username):
    if (current_user.id != config.USER_ADMIN):
        return redirect('/')
    
    u = user.get_by_username(username)
    u.suspended = suspend != "0"
    u.write()
    
    msg = 'User %s status changed. Please click [Update SSConfig].' % username
    return template(
        'home', 
        config=config, 
        user=current_user,
        message=msg, 
        users=(user.get_all() if current_user.id == config.USER_ADMIN else {})
    )
Exemplo n.º 13
0
def do_login():
    username = request.forms.get('username')
    password = get_salted_password()
    
    current_user = user.get_by_username(username)
    logined = current_user and current_user.salted_password == password
    
    if logined:
        response.set_cookie('ssl_uid', str(current_user.id))
        response.set_cookie('ssl_pw', password)
        return redirect('/')
    
    return template('login', 
        username=username, 
        message='User not found.' if not current_user else 'Password is incorrect.', 
        salt=config.USER_SALT
    )
Exemplo n.º 14
0
def do_login():
    username = request.forms.get('username')
    password = get_salted_password()

    current_user = user.get_by_username(username)
    logined = current_user and current_user.salted_password == password

    if logined:
        response.set_cookie('ssl_uid', str(current_user.id))
        response.set_cookie('ssl_pw', password)
        return redirect('/')

    return template('login',
                    username=username,
                    message='User not found.'
                    if not current_user else 'Password is incorrect.',
                    salt=config.USER_SALT)
Exemplo n.º 15
0
def sskey():
    sskey = request.forms.get('sskey')

    u = current_user
    if (u.id == config.USER_ADMIN):
        u = user.get_by_username(request.forms.get('username'))

    u.sskey = sskey
    u.write()

    import cron
    cd = cron.start()
    if cd <= 0.5:
        msg = "Your Shadowsocks key is changed!"
    else:
        msg = "The Shadowsocks key will be changed in %.2f sec" % cd

    return template(
        'home',
        config=config,
        user=current_user,
        message=msg,
        users=(user.get_all() if current_user.id == config.USER_ADMIN else {}))
Exemplo n.º 16
0
def sskey():
    sskey = request.forms.get('sskey')
    
    u = current_user
    if (u.id == config.USER_ADMIN): u = user.get_by_username(request.forms.get('username'))
    
    u.sskey = sskey
    u.write()
    
    import cron;
    cd = cron.start()
    if cd <= 0.5:
        msg = "Your Shadowsocks key is changed!"
    else:
        msg = "The Shadowsocks key will be changed in %.2f sec" % cd
    
    return template(
        'home', 
        config=config, 
        user=current_user,
        message=msg, 
        users=(user.get_all() if current_user.id == config.USER_ADMIN else {})
    )
Exemplo n.º 17
0
 def get_owner(self):
     return user.get_by_username(self.get_owner_name())
Exemplo n.º 18
0
def run(scope, action, argv):
    if scope == 'user':
        if   action == 'list':
            print("id\tusername\tsuspended\tport\tsskey")
            for u in user.get_all():
                print('\t'.join(( str(item) for item in 
                    (u.id, u.username, 'True' if u.suspended else 'False', u.get_port(), u.sskey)
                )))
        elif action == 'add':
            username = argv[0] if len(argv) > 0 else raw_input('Username: '******'Shadowsocks Key: ')
            u = user.User()
            u.username = username
            u.set_password(password)
            u.sskey = sskey
            u.create()
            u.write()
        elif action == 'del':
            user.delete_users(*argv)
        elif action in ['suspend', 'unsuspend']:
            user.batch_update(*argv, suspended=(1 if action == 'suspend' else 0))
        elif action == 'passwd':
            username = argv[0] if len(argv) > 0 else raw_input('Username: '******'sskey':
            username = argv[0] if len(argv) > 0 else raw_input('Username: '******'Shadowsocks Key: ')
            u = user.get_by_username(username)
            u.sskey = sskey
            u.write()
        else:
            print_help()
    elif scope == 'sys':
        if   action == 'update':
            ssmgr.update_and_restart()
            get_stdout(["./web.py", "-d", "restart"])
        elif action == 'init':
            # RUN THIS WHEN SYSTEM BOOTS ONLY !
            traffic.update_iptables()
            get_stdout(["./web.py", "-d", "restart"])
            ssmgr.update_and_restart()
        else:
            print_help()
    elif scope == 'tx' or scope == 'traffic':
        if   action == 'query':
            un = {}
            uid = -1
            for u in user.get_all():
                un[u.id] = u.username
                if len(argv) > 0 and u.username == argv[0] :
                    uid = u.id
            for r in traffic.query(uid=uid,sum=traffic.QS_DAY):
                print("%s\t%s\t%s"%(un[r[0]], r[3], sizeof_fmt(r[2])))
        elif action == 'update':
            traffic.stat()
        else:
            print_help()
    else:
        print_help()
Exemplo n.º 19
0
def admin_user_port():
    username, port = [request.forms.get(n) for n in ('username', 'value')]
    u = user.get_by_username(username)
    u.set_port(port)
    u.write()
    return {"status": "ok"}
Exemplo n.º 20
0
def admin_user_port():
    username, port = [request.forms.get(n) for n in ('username', 'value')]
    u = user.get_by_username(username)
    u.set_port(port)
    u.write()
    return { "status": "ok" }
Exemplo n.º 21
0
def admin_user_sskey():
    username, sskey = [request.forms.get(n) for n in ('username', 'value')]
    u = user.get_by_username(username)
    u.sskey = sskey
    u.write()
    return { "status": "ok" }
Exemplo n.º 22
0
def admin_user_passwd():
    username, password = [request.forms.get(n) for n in ('username', 'password')]
    u = user.get_by_username(username)
    u.salted_password = password
    u.write()
    return { "status": "ok" }
Exemplo n.º 23
0
def run(scope, action, argv):
    if scope == 'user':
        if action == 'list':
            print("id\tusername\tsuspended\tport\tsskey")
            for u in user.get_all():
                print('\t'.join(
                    (str(item) for item in (u.id, u.username,
                                            'True' if u.suspended else 'False',
                                            u.get_port(), u.sskey))))
        elif action == 'add':
            username = argv[0] if len(argv) > 0 else raw_input('Username: '******'Shadowsocks Key: ')
            u = user.User()
            u.username = username
            u.set_password(password)
            u.sskey = sskey
            u.create()
            u.write()
        elif action == 'del':
            user.delete_users(*argv)
        elif action in ['suspend', 'unsuspend']:
            user.batch_update(*argv,
                              suspended=(1 if action == 'suspend' else 0))
        elif action == 'passwd':
            username = argv[0] if len(argv) > 0 else raw_input('Username: '******'sskey':
            username = argv[0] if len(argv) > 0 else raw_input('Username: '******'Shadowsocks Key: ')
            u = user.get_by_username(username)
            u.sskey = sskey
            u.write()
        else:
            print_help()
    elif scope == 'sys':
        if action == 'update':
            ssmgr.update_and_restart()
            get_stdout(["./web.py", "-d", "restart"])
        elif action == 'init':
            # RUN THIS WHEN SYSTEM BOOTS ONLY !
            traffic.update_iptables()
            get_stdout(["./web.py", "-d", "restart"])
            ssmgr.update_and_restart()
        else:
            print_help()
    elif scope == 'tx' or scope == 'traffic':
        if action == 'query':
            un = {}
            uid = -1
            for u in user.get_all():
                un[u.id] = u.username
                if len(argv) > 0 and u.username == argv[0]:
                    uid = u.id
            for r in traffic.query(uid=uid, sum=traffic.QS_DAY):
                print("%s\t%s\t%s" % (un[r[0]], r[3], sizeof_fmt(r[2])))
        elif action == 'update':
            traffic.stat()
        else:
            print_help()
    else:
        print_help()
Exemplo n.º 24
0
def admin_user_sskey():
    username, sskey = [request.forms.get(n) for n in ('username', 'value')]
    u = user.get_by_username(username)
    u.sskey = sskey
    u.write()
    return {"status": "ok"}