diff --git a/lnbits/core/crud/__init__.py b/lnbits/core/crud/__init__.py index c39526dd3..ea9bcf936 100644 --- a/lnbits/core/crud/__init__.py +++ b/lnbits/core/crud/__init__.py @@ -43,6 +43,7 @@ from .settings import ( delete_admin_settings, get_admin_settings, get_super_settings, + reset_core_settings, update_admin_settings, update_super_user, ) @@ -129,6 +130,7 @@ __all__ = [ "get_super_settings", "update_admin_settings", "update_super_user", + "reset_core_settings", # tinyurl "create_tinyurl", "delete_tinyurl", diff --git a/lnbits/core/crud/settings.py b/lnbits/core/crud/settings.py index 026eec89d..504ec0bf5 100644 --- a/lnbits/core/crud/settings.py +++ b/lnbits/core/crud/settings.py @@ -61,7 +61,23 @@ async def update_super_user(super_user: str) -> SuperSettings: async def delete_admin_settings(tag: Optional[str] = "core") -> None: - await db.execute("DELETE FROM settings WHERE tag = :tag", {"tag": tag}) + await db.execute( + "DELETE FROM system_settings WHERE tag = :tag", + {"tag": tag}, + ) + + +async def reset_core_settings() -> None: + await db.execute( + """ + DELETE FROM system_settings WHERE tag = 'core' + AND id NOT IN ( + 'super_user', + 'lnbits_webpush_pubkey', + 'lnbits_webpush_privkey' + ) + """, + ) async def create_admin_settings(super_user: str, new_settings: dict) -> SuperSettings: diff --git a/lnbits/core/views/admin_api.py b/lnbits/core/views/admin_api.py index 51adcc567..af35a414e 100644 --- a/lnbits/core/views/admin_api.py +++ b/lnbits/core/views/admin_api.py @@ -29,7 +29,7 @@ from lnbits.settings import AdminSettings, Settings, UpdateSettings, settings from lnbits.tasks import invoice_listeners from .. import core_app_extra -from ..crud import delete_admin_settings, get_admin_settings, update_admin_settings +from ..crud import get_admin_settings, reset_core_settings, update_admin_settings admin_router = APIRouter(tags=["Admin UI"], prefix="/admin") file_upload = File(...) @@ -113,7 +113,7 @@ async def api_reset_settings(field_name: str): @admin_router.delete("/api/v1/settings", status_code=HTTPStatus.OK) async def api_delete_settings(user: User = Depends(check_super_user)) -> None: enqueue_notification(NotificationType.settings_update, {"username": user.username}) - await delete_admin_settings() + await reset_core_settings() server_restart.set() diff --git a/lnbits/static/js/admin.js b/lnbits/static/js/admin.js index e1d87b736..d60675211 100644 --- a/lnbits/static/js/admin.js +++ b/lnbits/static/js/admin.js @@ -546,10 +546,10 @@ window.AdminPageLogic = { Quasar.Notify.create({ type: 'positive', message: - 'Success! Restored settings to defaults, restart required!', + 'Success! Restored settings to defaults. Restarting...', icon: null }) - this.needsRestart = true + this.$q.localStorage.clear() }) .catch(LNbits.utils.notifyApiError) })