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")
评论列表
文章目录