mirror of
https://github.com/lnbits/lnbits-legend.git
synced 2025-03-10 00:09:22 +01:00
feat: remember last active wallet (#2189)
* feat: store last active wallet as a cookie * fix: param check
This commit is contained in:
parent
81b70acf5f
commit
4e55ea18e5
1 changed files with 10 additions and 3 deletions
|
@ -1,10 +1,10 @@
|
||||||
import asyncio
|
import asyncio
|
||||||
from http import HTTPStatus
|
from http import HTTPStatus
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import List, Optional
|
from typing import Annotated, List, Optional, Union
|
||||||
from urllib.parse import urlparse
|
from urllib.parse import urlparse
|
||||||
|
|
||||||
from fastapi import Depends, Query, Request, status
|
from fastapi import Cookie, Depends, Query, Request, status
|
||||||
from fastapi.exceptions import HTTPException
|
from fastapi.exceptions import HTTPException
|
||||||
from fastapi.responses import FileResponse, HTMLResponse, JSONResponse, RedirectResponse
|
from fastapi.responses import FileResponse, HTMLResponse, JSONResponse, RedirectResponse
|
||||||
from fastapi.routing import APIRouter
|
from fastapi.routing import APIRouter
|
||||||
|
@ -165,6 +165,7 @@ async def extensions_install(
|
||||||
)
|
)
|
||||||
async def wallet(
|
async def wallet(
|
||||||
request: Request,
|
request: Request,
|
||||||
|
lnbits_last_active_wallet: Annotated[Union[str, None], Cookie()] = None,
|
||||||
user: User = Depends(check_user_exists),
|
user: User = Depends(check_user_exists),
|
||||||
wal: Optional[UUID4] = Query(None),
|
wal: Optional[UUID4] = Query(None),
|
||||||
):
|
):
|
||||||
|
@ -174,6 +175,8 @@ async def wallet(
|
||||||
wallet = await create_wallet(user_id=user.id)
|
wallet = await create_wallet(user_id=user.id)
|
||||||
user = await get_user(user_id=user.id) or user
|
user = await get_user(user_id=user.id) or user
|
||||||
wallet_id = wallet.id
|
wallet_id = wallet.id
|
||||||
|
elif lnbits_last_active_wallet and user.get_wallet(lnbits_last_active_wallet):
|
||||||
|
wallet_id = lnbits_last_active_wallet
|
||||||
else:
|
else:
|
||||||
wallet_id = user.wallets[0].id
|
wallet_id = user.wallets[0].id
|
||||||
|
|
||||||
|
@ -183,7 +186,7 @@ async def wallet(
|
||||||
"error.html", {"request": request, "err": "Wallet not found"}
|
"error.html", {"request": request, "err": "Wallet not found"}
|
||||||
)
|
)
|
||||||
|
|
||||||
return template_renderer().TemplateResponse(
|
resp = template_renderer().TemplateResponse(
|
||||||
"core/wallet.html",
|
"core/wallet.html",
|
||||||
{
|
{
|
||||||
"request": request,
|
"request": request,
|
||||||
|
@ -194,6 +197,10 @@ async def wallet(
|
||||||
"web_manifest": f"/manifest/{user.id}.webmanifest",
|
"web_manifest": f"/manifest/{user.id}.webmanifest",
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
resp.set_cookie(
|
||||||
|
"lnbits_last_active_wallet", wallet_id, samesite="none", secure=True
|
||||||
|
)
|
||||||
|
return resp
|
||||||
|
|
||||||
|
|
||||||
@generic_router.get(
|
@generic_router.get(
|
||||||
|
|
Loading…
Add table
Reference in a new issue