Rewrite server: FastAPI + auth (users/roles/tokens) + admin WebUI + server-authoritative covers/metadata
This commit is contained in:
+16
-3
@@ -22,7 +22,7 @@ from PySide6.QtWidgets import (
|
||||
QTabWidget, QTableWidget, QTableWidgetItem, QVBoxLayout, QWidget, QGroupBox,
|
||||
)
|
||||
|
||||
from . import config, covers, info, ingest, iso_reader, launcher, matcher, namer, pipeline, ps1, psp, queue, saves, scanner, sources, store, style, theme, transfers
|
||||
from . import config, covers, info, ingest, iso_reader, launcher, matcher, namer, pipeline, ps1, psp, queue, saves, scanner, server_client, sources, store, style, theme, transfers
|
||||
from .db import get_connection, init_db
|
||||
|
||||
log = logging.getLogger("gui")
|
||||
@@ -1200,7 +1200,8 @@ class SettingsPage(QWidget):
|
||||
# -- Store ----------------------------------------------------------- #
|
||||
box, form = self._group("Store")
|
||||
self.store_server_edit = self._line_row(form, "Server URL", store_server_url)
|
||||
self.store_token_edit = self._secret_row(form, "API token", store_token)
|
||||
self.store_user_edit = self._line_row(form, "Server username", server_client.username())
|
||||
self.store_pass_edit = self._secret_row(form, "Server password", "")
|
||||
self.archive_edit = self._line_row(form, "Archive.org item", store_archive_id)
|
||||
self.archive_sig_edit = self._secret_row(form, "Archive.org logged-in-sig", store_archive_sig)
|
||||
self.archive_user_edit = self._secret_row(form, "Archive.org logged-in-user", store_archive_user)
|
||||
@@ -1430,7 +1431,7 @@ class SettingsPage(QWidget):
|
||||
return self.store_server_edit.text().strip()
|
||||
|
||||
def store_token(self):
|
||||
return self.store_token_edit.text().strip()
|
||||
return server_client.token()
|
||||
|
||||
def archive_item(self):
|
||||
return self.archive_edit.text().strip()
|
||||
@@ -1480,6 +1481,18 @@ class SettingsPage(QWidget):
|
||||
def _save(self):
|
||||
sources.save({key: edit.text() for key, edit in self.fields.items()})
|
||||
covers.clear_miss_cache()
|
||||
# Log in to the content server (stores a per-user API token).
|
||||
url = self.store_server_edit.text().strip()
|
||||
user = self.store_user_edit.text().strip()
|
||||
pw = self.store_pass_edit.text()
|
||||
if url and user and pw:
|
||||
try:
|
||||
server_client.login(url, user, pw)
|
||||
except Exception as exc: # noqa: BLE001
|
||||
QMessageBox.warning(self, "Server login failed",
|
||||
f"Could not log in to the server:\n{exc}")
|
||||
elif url and not user:
|
||||
server_client.logout()
|
||||
s = QSettings("psppt", "psppt")
|
||||
s.setValue("auto_scan", self.auto_scan.isChecked())
|
||||
s.setValue("scan_workers", self.workers_spin.value())
|
||||
|
||||
Reference in New Issue
Block a user