Some checks failed
CI / lint (push) Waiting to run
CI / tests (3.10) (push) Blocked by required conditions
CI / tests (3.9) (push) Blocked by required conditions
CI / lint (pull_request) Has been cancelled
/ release (push) Has been cancelled
CI / tests (3.10) (pull_request) Has been cancelled
CI / tests (3.9) (pull_request) Has been cancelled
/ pullrequest (push) Has been cancelled
LNbits 1.4 changed check_super_user to return Account (no wallets) instead of User (with wallets). This broke the template rendering because LNbits.map.user() requires the wallets property. Switch to check_user_exists (returns User with wallets) and manually check user.super_user for access control. This follows the same pattern used by LNbits core admin pages. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
27 lines
923 B
Python
27 lines
923 B
Python
# Description: DCA Admin page endpoints.
|
|
|
|
from http import HTTPStatus
|
|
|
|
from fastapi import APIRouter, Depends, HTTPException, Request
|
|
from fastapi.responses import HTMLResponse
|
|
from lnbits.core.models import User
|
|
from lnbits.decorators import check_user_exists
|
|
from lnbits.helpers import template_renderer
|
|
|
|
satmachineadmin_generic_router = APIRouter()
|
|
|
|
|
|
def satmachineadmin_renderer():
|
|
return template_renderer(["satmachineadmin/templates"])
|
|
|
|
|
|
# DCA Admin page - Requires superuser access
|
|
@satmachineadmin_generic_router.get("/", response_class=HTMLResponse)
|
|
async def index(req: Request, user: User = Depends(check_user_exists)):
|
|
if not user.super_user:
|
|
raise HTTPException(
|
|
HTTPStatus.FORBIDDEN, "User not authorized. No super user privileges."
|
|
)
|
|
return satmachineadmin_renderer().TemplateResponse(
|
|
"satmachineadmin/index.html", {"request": req, "user": user.json()}
|
|
)
|