feat: dont reset superuser on delete settings endpoint (#3065)
Co-authored-by: dni ⚡ <office@dnilabs.com>
This commit is contained in:
parent
f74fcea35b
commit
7bea591879
4 changed files with 23 additions and 5 deletions
|
|
@ -43,6 +43,7 @@ from .settings import (
|
||||||
delete_admin_settings,
|
delete_admin_settings,
|
||||||
get_admin_settings,
|
get_admin_settings,
|
||||||
get_super_settings,
|
get_super_settings,
|
||||||
|
reset_core_settings,
|
||||||
update_admin_settings,
|
update_admin_settings,
|
||||||
update_super_user,
|
update_super_user,
|
||||||
)
|
)
|
||||||
|
|
@ -129,6 +130,7 @@ __all__ = [
|
||||||
"get_super_settings",
|
"get_super_settings",
|
||||||
"update_admin_settings",
|
"update_admin_settings",
|
||||||
"update_super_user",
|
"update_super_user",
|
||||||
|
"reset_core_settings",
|
||||||
# tinyurl
|
# tinyurl
|
||||||
"create_tinyurl",
|
"create_tinyurl",
|
||||||
"delete_tinyurl",
|
"delete_tinyurl",
|
||||||
|
|
|
||||||
|
|
@ -61,7 +61,23 @@ async def update_super_user(super_user: str) -> SuperSettings:
|
||||||
|
|
||||||
|
|
||||||
async def delete_admin_settings(tag: Optional[str] = "core") -> None:
|
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:
|
async def create_admin_settings(super_user: str, new_settings: dict) -> SuperSettings:
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ from lnbits.settings import AdminSettings, Settings, UpdateSettings, settings
|
||||||
from lnbits.tasks import invoice_listeners
|
from lnbits.tasks import invoice_listeners
|
||||||
|
|
||||||
from .. import core_app_extra
|
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")
|
admin_router = APIRouter(tags=["Admin UI"], prefix="/admin")
|
||||||
file_upload = File(...)
|
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)
|
@admin_router.delete("/api/v1/settings", status_code=HTTPStatus.OK)
|
||||||
async def api_delete_settings(user: User = Depends(check_super_user)) -> None:
|
async def api_delete_settings(user: User = Depends(check_super_user)) -> None:
|
||||||
enqueue_notification(NotificationType.settings_update, {"username": user.username})
|
enqueue_notification(NotificationType.settings_update, {"username": user.username})
|
||||||
await delete_admin_settings()
|
await reset_core_settings()
|
||||||
server_restart.set()
|
server_restart.set()
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -546,10 +546,10 @@ window.AdminPageLogic = {
|
||||||
Quasar.Notify.create({
|
Quasar.Notify.create({
|
||||||
type: 'positive',
|
type: 'positive',
|
||||||
message:
|
message:
|
||||||
'Success! Restored settings to defaults, restart required!',
|
'Success! Restored settings to defaults. Restarting...',
|
||||||
icon: null
|
icon: null
|
||||||
})
|
})
|
||||||
this.needsRestart = true
|
this.$q.localStorage.clear()
|
||||||
})
|
})
|
||||||
.catch(LNbits.utils.notifyApiError)
|
.catch(LNbits.utils.notifyApiError)
|
||||||
})
|
})
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue