intra_max_chatbot/admin/routes/bot_users.py
2026-03-26 00:34:03 +03:00

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(
request=request,
name="bot_users/list.html",
context={
"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)