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()
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" }
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"}
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"}
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('/')
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 }
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('/')
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 !"
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}
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)
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 {}))
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 {}) )
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 )
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)
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 {}))
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 {}) )
def get_owner(self): return user.get_by_username(self.get_owner_name())
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()
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"}
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" }
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" }
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" }
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()
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"}