Exemplo n.º 1
0
def run(scope, action, argv):
    if scope == 'user':
        user.cache_all()
        if action == 'list':
            for un in user._USER_CACHE.keys():
                print(un)
        elif action == 'add':
            username = argv[0] if len(argv) > 0 else raw_input('Username: '******'Shadowsocks Key: ')
            u = user.User(username, password)
            u.sskey = sskey
            u.write()
        elif action == 'del':
            for un in argv:
                os.remove(user.user_filename(un))
        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.open(username)
            u.sskey = sskey
            u.write()
    elif scope == 'sys':
        if action == 'update':
            import ssmgr
            ssmgr.update_and_restart()
Exemplo n.º 2
0
def passwd():
    password = get_salted_password()
    
    u = current_user
    if (u.id == 0): u = user.open(request.forms.get('username'))
    
    u.salted_password = password
    u.write()
    return redirect('/')
Exemplo n.º 3
0
 def func_wrapper(*args, **kwargs):
     global current_user
     username = request.get_cookie('ssl_un')
     password = request.get_cookie('ssl_pw')
     logined = username and password
     if logined:
         current_user = user.open(username)
         logined = current_user and current_user.salted_password == password
     if not logined:
         response.set_cookie('ssl_un', '', expires=0)
         response.set_cookie('ssl_pw', '', expires=0)
         return redirect('/login')
     return func(*args, **kwargs)
Exemplo n.º 4
0
def suspend(suspend, username):
    if (current_user.id != 0):
        return redirect('/')
    
    u = user.open(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._USER_CACHE if current_user.id == 0 else {})
    )
Exemplo n.º 5
0
def do_login():
    username = request.forms.get('username')
    password = get_salted_password()
    
    current_user = user.open(username)
    logined = current_user and current_user.salted_password == password
    
    if logined:
        response.set_cookie('ssl_un', username)
        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.º 6
0
def sskey():
    sskey = request.forms.get('sskey')
    
    u = current_user
    if (u.id == 0): u = user.open(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._USER_CACHE if current_user.id == 0 else {})
    )