fix: create default wallet for auto created super_user

This commit is contained in:
Vlad Stan 2022-12-16 12:09:13 +02:00
parent d596992993
commit 1751831e57
2 changed files with 23 additions and 13 deletions

View file

@ -591,16 +591,7 @@ async def update_super_user(super_user: str):
return await get_super_settings()
async def init_admin_settings(super_user: str = None):
user = None
if super_user:
user = await get_account(super_user)
if not user:
account = await create_account()
super_user = account.id
editable_settings = EditableSetings.from_dict(settings.dict())
async def create_admin_settings(super_user: str, new_settings: dict):
sql = f"INSERT INTO settings (super_user, editable_settings) VALUES (?, ?)"
await db.execute(sql, (super_user, json.dumps(editable_settings.dict())))
await db.execute(sql, (super_user, json.dumps(new_settings)))
return await get_super_settings()

View file

@ -6,7 +6,7 @@ from typing import Dict, List, Optional, Tuple
from urllib.parse import parse_qs, urlparse
import httpx
from fastapi import Depends, WebSocket, WebSocketDisconnect
from fastapi import Depends, WebSocket
from lnurl import LnurlErrorResponse
from lnurl import decode as decode_lnurl # type: ignore
from loguru import logger
@ -23,6 +23,7 @@ from lnbits.helpers import url_for, urlsafe_short_hash
from lnbits.requestvars import g
from lnbits.settings import (
FAKE_WALLET,
EditableSetings,
get_wallet_class,
readonly_variables,
send_admin_user_to_saas,
@ -33,12 +34,15 @@ from lnbits.wallets.base import PaymentResponse, PaymentStatus
from . import db
from .crud import (
check_internal,
create_account,
create_admin_settings,
create_payment,
create_wallet,
delete_wallet_payment,
get_account,
get_super_settings,
get_wallet,
get_wallet_payment,
init_admin_settings,
update_payment_details,
update_payment_status,
update_super_user,
@ -460,6 +464,21 @@ def update_cached_settings(sets_dict: dict):
setattr(settings, "super_user", sets_dict["super_user"])
async def init_admin_settings(super_user: str = None):
account = None
if super_user:
account = await get_account(super_user)
if not account:
account = await create_account()
super_user = account.id
if not account.wallets or len(account.wallets) == 0:
await create_wallet(user_id=account.id)
editable_settings = EditableSetings.from_dict(settings.dict())
return await create_admin_settings(account.id, editable_settings.dict())
class WebsocketConnectionManager:
def __init__(self):
self.active_connections: List[WebSocket] = []