chore: temp commit (does not work); don't want to lose changes
This commit is contained in:
parent
d15782521d
commit
0d4954c01a
4 changed files with 59 additions and 138 deletions
|
|
@ -8,18 +8,16 @@ from loguru import logger
|
|||
|
||||
from lnbits import bolt11
|
||||
from lnbits.db import COCKROACH, POSTGRES, Connection
|
||||
from lnbits.settings import readonly_variables, settings
|
||||
from lnbits.settings import (
|
||||
AdminSettings,
|
||||
EditableSetings,
|
||||
SuperSettings,
|
||||
readonly_variables,
|
||||
settings,
|
||||
)
|
||||
|
||||
from . import db
|
||||
from .models import (
|
||||
AdminSettings,
|
||||
BalanceCheck,
|
||||
Payment,
|
||||
SuperSettings,
|
||||
UpdateSettings,
|
||||
User,
|
||||
Wallet,
|
||||
)
|
||||
from .models import BalanceCheck, Payment, User, Wallet
|
||||
|
||||
# accounts
|
||||
# --------
|
||||
|
|
@ -603,7 +601,7 @@ async def delete_admin_settings():
|
|||
await db.execute("DELETE FROM settings")
|
||||
|
||||
|
||||
async def update_admin_settings(data: UpdateSettings):
|
||||
async def update_admin_settings(data: EditableSetings):
|
||||
q, values = get_q_and_values(data)
|
||||
await db.execute(f"UPDATE settings SET {q}", (values,)) # type: ignore
|
||||
|
||||
|
|
|
|||
|
|
@ -199,91 +199,3 @@ class BalanceCheck(BaseModel):
|
|||
@classmethod
|
||||
def from_row(cls, row: Row):
|
||||
return cls(wallet=row["wallet"], service=row["service"], url=row["url"])
|
||||
|
||||
|
||||
# admin
|
||||
# --------
|
||||
class UpdateSettings(BaseModel, extra=Extra.forbid):
|
||||
@validator(
|
||||
"lnbits_admin_users",
|
||||
"lnbits_allowed_users",
|
||||
"lnbits_theme_options",
|
||||
"lnbits_disabled_extensions",
|
||||
"lnbits_admin_extensions",
|
||||
pre=True,
|
||||
)
|
||||
def validate(cls, val):
|
||||
if type(val) == str:
|
||||
val = val.split(",") if val else []
|
||||
return val
|
||||
|
||||
lnbits_backend_wallet_class: str = Query(None)
|
||||
lnbits_admin_users: List[str] = Query(None)
|
||||
lnbits_allowed_users: List[str] = Query(None)
|
||||
lnbits_admin_extensions: List[str] = Query(None)
|
||||
lnbits_disabled_extensions: List[str] = Query(None)
|
||||
lnbits_theme_options: List[str] = Query(None)
|
||||
lnbits_force_https: bool = Query(None)
|
||||
lnbits_reserve_fee_min: int = Query(None, ge=0)
|
||||
lnbits_reserve_fee_percent: float = Query(None, ge=0)
|
||||
lnbits_service_fee: float = Query(None, ge=0)
|
||||
lnbits_hide_api: bool = Query(None)
|
||||
lnbits_site_title: str = Query(None)
|
||||
lnbits_site_tagline: str = Query(None)
|
||||
lnbits_site_description: str = Query(None)
|
||||
lnbits_default_wallet_name: str = Query(None)
|
||||
lnbits_denomination: str = Query(None)
|
||||
lnbits_custom_logo: str = Query(None)
|
||||
lnbits_ad_space: str = Query(None)
|
||||
lnbits_ad_space_title: str = Query(None)
|
||||
lnbits_ad_space_enabled: bool = Query(None)
|
||||
|
||||
# funding sources
|
||||
fake_wallet_secret: str = Query(None)
|
||||
lnbits_endpoint: str = Query(None)
|
||||
lnbits_key: str = Query(None)
|
||||
cliche_endpoint: str = Query(None)
|
||||
corelightning_rpc: str = Query(None)
|
||||
eclair_url: str = Query(None)
|
||||
eclair_pass: str = Query(None)
|
||||
lnd_rest_endpoint: str = Query(None)
|
||||
lnd_rest_cert: str = Query(None)
|
||||
lnd_rest_macaroon: str = Query(None)
|
||||
lnd_rest_macaroon_encrypted: str = Query(None)
|
||||
lnd_cert: str = Query(None)
|
||||
lnd_admin_macaroon: str = Query(None)
|
||||
lnd_invoice_macaroon: str = Query(None)
|
||||
lnd_grpc_endpoint: str = Query(None)
|
||||
lnd_grpc_cert: str = Query(None)
|
||||
lnd_grpc_port: int = Query(None, ge=0)
|
||||
lnd_grpc_admin_macaroon: str = Query(None)
|
||||
lnd_grpc_invoice_macaroon: str = Query(None)
|
||||
lnd_grpc_macaroon: str = Query(None)
|
||||
lnd_grpc_macaroon_encrypted: str = Query(None)
|
||||
lnpay_api_endpoint: str = Query(None)
|
||||
lnpay_api_key: str = Query(None)
|
||||
lnpay_wallet_key: str = Query(None)
|
||||
lntxbot_api_endpoint: str = Query(None)
|
||||
lntxbot_key: str = Query(None)
|
||||
opennode_api_endpoint: str = Query(None)
|
||||
opennode_key: str = Query(None)
|
||||
spark_url: str = Query(None)
|
||||
spark_token: str = Query(None)
|
||||
lntips_api_endpoint: str = Query(None)
|
||||
lntips_api_key: str = Query(None)
|
||||
lntips_admin_key: str = Query(None)
|
||||
lntips_invoice_key: str = Query(None)
|
||||
|
||||
boltz_mempool_space_url: str = Query(None)
|
||||
boltz_mempool_space_url_ws: str = Query(None)
|
||||
boltz_network: str = Query(None)
|
||||
boltz_url: str = Query(None)
|
||||
|
||||
|
||||
class SuperSettings(UpdateSettings):
|
||||
super_user: str
|
||||
|
||||
|
||||
class AdminSettings(UpdateSettings):
|
||||
super_user: bool
|
||||
lnbits_allowed_funding_sources: Optional[List[str]]
|
||||
|
|
|
|||
|
|
@ -6,10 +6,11 @@ from fastapi.params import Depends
|
|||
from starlette.exceptions import HTTPException
|
||||
|
||||
from lnbits.core.crud import get_wallet
|
||||
from lnbits.core.models import AdminSettings, UpdateSettings, User
|
||||
from lnbits.core.models import User
|
||||
from lnbits.core.services import update_wallet_balance
|
||||
from lnbits.decorators import check_admin
|
||||
from lnbits.server import server_restart
|
||||
from lnbits.settings import AdminSettings, EditableSetings
|
||||
|
||||
from .. import core_app
|
||||
from ..crud import delete_admin_settings, get_admin_settings, update_admin_settings
|
||||
|
|
@ -58,7 +59,7 @@ async def api_topup_balance(
|
|||
status_code=HTTPStatus.OK,
|
||||
dependencies=[Depends(check_admin)],
|
||||
)
|
||||
async def api_update_settings(data: UpdateSettings):
|
||||
async def api_update_settings(data: EditableSetings):
|
||||
await update_admin_settings(data)
|
||||
return {"status": "Success"}
|
||||
|
||||
|
|
|
|||
|
|
@ -9,8 +9,6 @@ import httpx
|
|||
from loguru import logger
|
||||
from pydantic import BaseSettings, Field, validator
|
||||
|
||||
# from .core.crud import create_admin_settings, get_super_settings
|
||||
|
||||
|
||||
def list_parse_fallback(v):
|
||||
try:
|
||||
|
|
@ -40,24 +38,7 @@ readonly_variables = [
|
|||
]
|
||||
|
||||
|
||||
class Settings(BaseSettings):
|
||||
|
||||
lnbits_admin_ui: bool = Field(default=False)
|
||||
|
||||
# .env
|
||||
debug: bool = Field(default=False)
|
||||
host: str = Field(default="127.0.0.1")
|
||||
port: int = Field(default=5000)
|
||||
forwarded_allow_ips: str = Field(default="*")
|
||||
lnbits_path: str = Field(default=".")
|
||||
lnbits_commit: str = Field(default="unknown")
|
||||
super_user: str = Field(default="")
|
||||
|
||||
# saas
|
||||
lnbits_saas_callback: Optional[str] = Field(default=None)
|
||||
lnbits_saas_secret: Optional[str] = Field(default=None)
|
||||
lnbits_saas_instance_id: Optional[str] = Field(default=None)
|
||||
|
||||
class EditableSetings(BaseSettings):
|
||||
# users
|
||||
lnbits_admin_users: List[str] = Field(default=[])
|
||||
lnbits_allowed_users: List[str] = Field(default=[])
|
||||
|
|
@ -80,8 +61,6 @@ class Settings(BaseSettings):
|
|||
lnbits_ad_space_enabled: bool = Field(default=False)
|
||||
|
||||
# ops
|
||||
lnbits_data_folder: str = Field(default="./data")
|
||||
lnbits_database_url: str = Field(default=None)
|
||||
lnbits_force_https: bool = Field(default=False)
|
||||
lnbits_reserve_fee_min: int = Field(default=2000)
|
||||
lnbits_reserve_fee_percent: float = Field(default=1.0)
|
||||
|
|
@ -91,20 +70,6 @@ class Settings(BaseSettings):
|
|||
|
||||
# funding sources
|
||||
lnbits_backend_wallet_class: str = Field(default="VoidWallet")
|
||||
lnbits_allowed_funding_sources: List[str] = Field(
|
||||
default=[
|
||||
"VoidWallet",
|
||||
"FakeWallet",
|
||||
"CLightningWallet",
|
||||
"LndRestWallet",
|
||||
"LndWallet",
|
||||
"LntxbotWallet",
|
||||
"LNPayWallet",
|
||||
"LNbitsWallet",
|
||||
"OpenNodeWallet",
|
||||
"LnTipsWallet",
|
||||
]
|
||||
)
|
||||
fake_wallet_secret: str = Field(default="ToTheMoon1")
|
||||
lnbits_endpoint: str = Field(default="https://legend.lnbits.com")
|
||||
lnbits_key: Optional[str] = Field(default=None)
|
||||
|
|
@ -146,13 +111,36 @@ class Settings(BaseSettings):
|
|||
boltz_mempool_space_url: str = Field(default="https://mempool.space")
|
||||
boltz_mempool_space_url_ws: str = Field(default="wss://mempool.space")
|
||||
|
||||
|
||||
class ReadOnlySettings(BaseSettings):
|
||||
lnbits_admin_ui: bool = Field(default=False)
|
||||
|
||||
# .env
|
||||
debug: bool = Field(default=False)
|
||||
host: str = Field(default="127.0.0.1")
|
||||
port: int = Field(default=5000)
|
||||
forwarded_allow_ips: str = Field(default="*")
|
||||
lnbits_path: str = Field(default=".")
|
||||
lnbits_commit: str = Field(default="unknown")
|
||||
|
||||
# saas
|
||||
lnbits_saas_callback: Optional[str] = Field(default=None)
|
||||
lnbits_saas_secret: Optional[str] = Field(default=None)
|
||||
lnbits_saas_instance_id: Optional[str] = Field(default=None)
|
||||
|
||||
# ops
|
||||
lnbits_data_folder: str = Field(default="./data")
|
||||
lnbits_database_url: str = Field(default=None)
|
||||
|
||||
|
||||
class Settings(EditableSetings, ReadOnlySettings):
|
||||
@validator(
|
||||
"lnbits_admin_users",
|
||||
"lnbits_allowed_users",
|
||||
"lnbits_theme_options",
|
||||
"lnbits_admin_extensions",
|
||||
"lnbits_disabled_extensions",
|
||||
"lnbits_allowed_funding_sources",
|
||||
"lnbits_allowed_funding_sources", # ????
|
||||
pre=True,
|
||||
)
|
||||
def validate(cls, val):
|
||||
|
|
@ -172,6 +160,28 @@ class Settings(BaseSettings):
|
|||
json_loads = list_parse_fallback
|
||||
|
||||
|
||||
class SuperSettings(EditableSetings):
|
||||
super_user: str
|
||||
|
||||
|
||||
class AdminSettings(EditableSetings):
|
||||
super_user: bool
|
||||
lnbits_allowed_funding_sources: List[str] = Field(
|
||||
default=[
|
||||
"VoidWallet",
|
||||
"FakeWallet",
|
||||
"CLightningWallet",
|
||||
"LndRestWallet",
|
||||
"LndWallet",
|
||||
"LntxbotWallet",
|
||||
"LNPayWallet",
|
||||
"LNbitsWallet",
|
||||
"OpenNodeWallet",
|
||||
"LnTipsWallet",
|
||||
]
|
||||
)
|
||||
|
||||
|
||||
settings = Settings()
|
||||
|
||||
settings.lnbits_path = str(path.dirname(path.realpath(__file__)))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue