refactor: build dynamically readonly_variables

This commit is contained in:
Vlad Stan 2022-12-09 13:37:36 +02:00
parent d6d42250a9
commit 6d1db80bb3

View file

@ -22,24 +22,6 @@ def list_parse_fallback(v):
return []
# todo: remove
readonly_variables = [
"host",
"port",
"debug",
"lnbits_data_folder",
"lnbits_database_url",
"lnbits_allowed_funding_sources",
"lnbits_saas_secret",
"lnbits_saas_callback",
"lnbits_saas_instance_id",
"lnbits_admin_ui",
"lnbits_commit",
"lnbits_path",
"forwarded_allow_ips",
]
class LNbitsSetings(BaseSettings):
def validate(cls, val):
if type(val) == str:
@ -248,6 +230,10 @@ class ReadOnlySettings(LNbitsSetings):
def validate_readonly_settings(cls, val):
return super().validate(cls, val)
@classmethod
def readonly_fields(cls):
return [f for f in inspect.signature(cls).parameters if not f.startswith("_")]
class Settings(EditableSetings, ReadOnlySettings):
@classmethod
@ -265,6 +251,8 @@ class AdminSettings(EditableSetings):
lnbits_allowed_funding_sources: Optional[List[str]]
readonly_variables = ReadOnlySettings.readonly_fields()
settings = Settings()
settings.lnbits_path = str(path.dirname(path.realpath(__file__)))