41 lines
1.3 KiB
Python
41 lines
1.3 KiB
Python
from fastapi import APIRouter, Depends, Form, Request
|
|
from fastapi.responses import HTMLResponse, RedirectResponse
|
|
|
|
from admin.auth import require_admin
|
|
from admin.templates_env import templates
|
|
from database.queries.bot_users import get_all_bot_users, unblock_bot_user
|
|
from database.queries.organizations import get_all_organizations
|
|
|
|
router = APIRouter(prefix="/bot-users", dependencies=[Depends(require_admin)])
|
|
|
|
|
|
@router.get("", response_class=HTMLResponse)
|
|
async def list_bot_users(
|
|
request: Request,
|
|
is_authorized: int | None = None,
|
|
is_blocked: int | None = None,
|
|
org_id: int | None = None,
|
|
):
|
|
users = await get_all_bot_users(
|
|
is_authorized=is_authorized,
|
|
is_blocked=is_blocked,
|
|
org_id=org_id,
|
|
)
|
|
orgs = await get_all_organizations()
|
|
return templates.TemplateResponse(
|
|
"bot_users/list.html",
|
|
{
|
|
"request": request,
|
|
"users": users,
|
|
"orgs": orgs,
|
|
"filter_authorized": is_authorized,
|
|
"filter_blocked": is_blocked,
|
|
"filter_org_id": org_id,
|
|
},
|
|
)
|
|
|
|
|
|
@router.post("/{user_id}/unblock")
|
|
async def unblock_user(user_id: int, org_id: int = Form(...)):
|
|
await unblock_bot_user(user_id=user_id, org_id=org_id)
|
|
return RedirectResponse("/admin/bot-users", status_code=303)
|