Login beim Start, API-Key wird gespeichert; README: PAC-Proxy als Bremse

Erik (07.09.2026): "zuerst soll ein Loginfenster kommen und nach dem Login soll der Apikey
gespeichert werden."

- plugin.py: ohne gespeicherten Key zeigt initGui 1,5 s nach dem QGIS-Start den
  Anmeldedialog (singleShot, damit der Dialog den Start nicht blockiert); mit Key wie
  bisher direkt die Verfahrensliste.
- Nach erfolgreichem Login werden api_key (userauth) UND mail in QSettings gemerkt, die
  Meldung nennt den angemeldeten Nutzer und die Dauerhaftigkeit. Das Passwort wird nie
  gespeichert.
- README: Login-Verhalten; Abschnitt zum PAC-Proxy, der jede QGIS-Anfrage ~10 s kostet
  (gemessen 07.09.2026: Server antwortet in 0,35 s, alle Antworten 200/204).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Erik
2026-09-07 19:37:32 +02:00
co-authored by Claude Opus 4.8
parent 637a3762ad
commit dc960ddca4
2 changed files with 29 additions and 5 deletions
+12 -5
View File
@@ -115,8 +115,9 @@ class VlnKartenPlugin:
self._set_logged_out_ui()
# Gespeicherten API-Key aus früherer Sitzung wiederverwenden;
# die Verfahrensliste erst nach dem QGIS-Start abrufen.
# Gespeicherten API-Key aus früherer Sitzung wiederverwenden; sonst gleich beim Start
# anmelden (Erik, 07.09.2026: „zuerst ein Loginfenster, danach den API-Key speichern").
# Beides erst NACH dem QGIS-Start (singleShot), sonst blockiert der Dialog das Laden.
settings = QSettings()
settings.beginGroup(SETTINGS_GROUP)
api_key = settings.value("api_key", "")
@@ -125,6 +126,8 @@ class VlnKartenPlugin:
if api_key:
self.client = KartenApiClient(api_key=api_key, mail=mail)
QTimer.singleShot(0, self.populate_verfahren)
else:
QTimer.singleShot(1500, self.run_login)
def unload(self):
for signal in (self.iface.projectRead, self.iface.newProjectCreated):
@@ -165,17 +168,21 @@ class VlnKartenPlugin:
return
self.client = client
# Nach dem Login wird der API-Key (userauth) gespeichert und in jeder weiteren Sitzung
# wiederverwendet — das Passwort selbst speichert das Plugin nie. Ablage: QSettings
# („vln_karten/api_key"), zurücksetzen über „Abmelden".
settings = QSettings()
settings.beginGroup(SETTINGS_GROUP)
settings.setValue("api_key", client.api_key)
settings.setValue("mail", client.mail or dialog.mail())
settings.endGroup()
self.iface.messageBar().pushMessage(
"VLN Karten",
"Anmeldung erfolgreich — die Zugangsdaten werden für künftige "
"QGIS-Sitzungen gemerkt.",
"Angemeldet als %s — der API-Key ist gespeichert und gilt auch nach einem "
"QGIS-Neustart." % (client.mail or dialog.mail()),
level=Qgis.Success,
duration=5,
duration=6,
)
self.populate_verfahren()