From 478d74efc8ea6f01f66aa6151a3dc2230dc6fecf Mon Sep 17 00:00:00 2001 From: Vlad Stan Date: Fri, 20 Jan 2023 09:39:27 +0200 Subject: [PATCH] fix: separate `lnbits_deactivated_extensions` from `lnbits_disabled_extensions`` --- lnbits/app.py | 2 +- lnbits/commands.py | 2 +- lnbits/core/templates/core/install.html | 2 +- lnbits/core/views/api.py | 8 +++++--- lnbits/core/views/generic.py | 14 ++++++++------ lnbits/extension_manger.py | 12 ++++-------- lnbits/helpers.py | 6 +++++- lnbits/settings.py | 18 ++++++++++++++---- 8 files changed, 39 insertions(+), 25 deletions(-) diff --git a/lnbits/app.py b/lnbits/app.py index b3a04a79c..43d357fda 100644 --- a/lnbits/app.py +++ b/lnbits/app.py @@ -135,7 +135,7 @@ async def check_installed_extensions(app: FastAPI): installed = check_installed_extension(ext) if not installed: await restore_installed_extension(app, ext) - logger.warning(f"✔️ Successfully re-installed extension: {ext.id}") + logger.info(f"✔️ Successfully re-installed extension: {ext.id}") except: logger.warning(f"Failed to re-install extension: {ext.id}") diff --git a/lnbits/commands.py b/lnbits/commands.py index 752d5dc9a..4d58afb3b 100644 --- a/lnbits/commands.py +++ b/lnbits/commands.py @@ -88,4 +88,4 @@ async def db_versions(): async def load_disabled_extension_list() -> None: """Update list of extensions that have been explicitly disabled""" inactive_extensions = await get_inactive_extensions() - settings.lnbits_disabled_extensions += inactive_extensions + settings.lnbits_deactivated_extensions += inactive_extensions diff --git a/lnbits/core/templates/core/install.html b/lnbits/core/templates/core/install.html index 35be96d71..a038af906 100644 --- a/lnbits/core/templates/core/install.html +++ b/lnbits/core/templates/core/install.html @@ -90,7 +90,7 @@ Manage List[Extension]: +def get_valid_extensions() -> List[Extension]: return [ - extension - for extension in ExtensionManager(include_disabled_exts).extensions - if extension.is_valid + extension for extension in ExtensionManager().extensions if extension.is_valid ] diff --git a/lnbits/helpers.py b/lnbits/helpers.py index 641221abb..05ce20d53 100644 --- a/lnbits/helpers.py +++ b/lnbits/helpers.py @@ -108,7 +108,11 @@ def template_renderer(additional_folders: List = []) -> Jinja2Templates: t.env.globals["SITE_DESCRIPTION"] = settings.lnbits_site_description t.env.globals["LNBITS_THEME_OPTIONS"] = settings.lnbits_theme_options t.env.globals["LNBITS_VERSION"] = settings.lnbits_commit - t.env.globals["EXTENSIONS"] = get_valid_extensions() + t.env.globals["EXTENSIONS"] = [ + e + for e in get_valid_extensions() + if e.code not in settings.lnbits_deactivated_extensions + ] if settings.lnbits_custom_logo: t.env.globals["USE_CUSTOM_LOGO"] = settings.lnbits_custom_logo diff --git a/lnbits/settings.py b/lnbits/settings.py index cccab22be..5c1b017ce 100644 --- a/lnbits/settings.py +++ b/lnbits/settings.py @@ -44,10 +44,16 @@ class ExtensionsSettings(LNbitsSettings): lnbits_admin_extensions: List[str] = Field(default=[]) lnbits_disabled_extensions: List[str] = Field(default=[]) lnbits_extensions_manifests: List[str] = Field(default=[]) + + # required due to GitHUb rate-limit + lnbits_ext_github_token: str = Field(default="") + + +class InstalledExtensionsSettings(LNbitsSettings): + # installed extensions that have been deactivated + lnbits_deactivated_extensions: List[str] = Field(default=[]) + # upgraded extensions that require API redirects lnbits_upgraded_extensions: List[str] = Field(default=[]) - lnbits_ext_github_token: str = Field( - default="" - ) # required due to GitHUb rate-limit class ThemesSettings(LNbitsSettings): @@ -238,7 +244,11 @@ class SuperUserSettings(LNbitsSettings): class ReadOnlySettings( - EnvSettings, SaaSSettings, PersistenceSettings, SuperUserSettings + EnvSettings, + SaaSSettings, + PersistenceSettings, + SuperUserSettings, + InstalledExtensionsSettings, ): lnbits_admin_ui: bool = Field(default=False)