app.py 文件源码

python
阅读 17 收藏 0 点赞 0 评论 0

项目:toshi-admin-service 作者: toshiapp 项目源码 文件源码
def post_admin_add_remove(request, current_user, action):
    if 'toshi_id' in request.form:
        toshi_id = request.form.get('toshi_id')
        if not toshi_id:
            SanicException("Bad Arguments", status_code=400)
    elif 'username' in request.form:
        username = request.form.get('username')
        if not username:
            raise SanicException("Bad Arguments", status_code=400)
        if username[0] == '@':
            username = username[1:]
            if not username:
                raise SanicException("Bad Arguments", status_code=400)
        async with app.configs['mainnet'].db.id.acquire() as con:
            user = await con.fetchrow("SELECT * FROM users WHERE username = $1", username)
            if user is None and username.startswith("0x"):
                user = await con.fetchrow("SELECT * FROM users WHERE toshi_id = $1", username)
        if user is None:
            raise SanicException("User not found", status_code=400)
        toshi_id = user['toshi_id']
    else:
        SanicException("Bad Arguments", status_code=400)

    if action == 'add':
        print('adding admin: {}'.format(toshi_id))
        async with app.pool.acquire() as con:
            await con.execute("INSERT INTO admins VALUES ($1) ON CONFLICT DO NOTHING", toshi_id)
    elif action == 'remove':
        print('removing admin: {}'.format(toshi_id))
        async with app.pool.acquire() as con:
            await con.execute("DELETE FROM admins WHERE toshi_id = $1", toshi_id)
            await con.execute("DELETE FROM sessions WHERE toshi_id = $1", toshi_id)
    else:
        raise SanicException("Not Found", status_code=404)

    if 'Referer' in request.headers:
        return redirect(request.headers['Referer'])
    return redirect("/config")
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号