feat: Erneut verbinden statt loeschen und neu anlegen
Um eine Verbindung aufzufrischen – etwa nachdem man im Control Panel weitere Konten verknuepft hat – haette man sie bisher erst loeschen muessen. Dabei gehen die Kontozuordnungen mit verloren, also genau das, was man behalten will; ein zweiter Verbindungsversuch haette sonst einen doppelten Eintrag erzeugt. Jetzt frischt das Verbinden derselben Bank den bestehenden Eintrag auf: neue Sitzung, neue Konten, bestehende Zuordnungen bleiben. Der Warntext beim Trennen sagt ausserdem, dass Trennen dafuer gar nicht noetig ist. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -146,11 +146,24 @@ def starte_verbindung(db: Session, user: User, aspsp_name: str, land: str,
|
||||
raise BankFehler("Es ist noch keine Bank-Anwendung hinterlegt.")
|
||||
|
||||
state = secrets.token_urlsafe(24)
|
||||
verbindung = BankConnection(
|
||||
owner_id=user.id, aspsp_name=aspsp_name, aspsp_country=land.upper(),
|
||||
pending_state=state,
|
||||
# Dieselbe Bank erneut verbinden frischt den bestehenden Eintrag auf, statt
|
||||
# einen zweiten anzulegen. Sonst müsste man vorher löschen – und dabei
|
||||
# gingen die Kontozuordnungen mit verloren, obwohl man sie behalten will.
|
||||
verbindung = (
|
||||
db.query(BankConnection)
|
||||
.filter(BankConnection.owner_id == user.id,
|
||||
BankConnection.aspsp_name == aspsp_name,
|
||||
BankConnection.aspsp_country == land.upper())
|
||||
.order_by(BankConnection.id.desc())
|
||||
.first()
|
||||
)
|
||||
db.add(verbindung)
|
||||
if verbindung is None:
|
||||
verbindung = BankConnection(
|
||||
owner_id=user.id, aspsp_name=aspsp_name, aspsp_country=land.upper(),
|
||||
)
|
||||
db.add(verbindung)
|
||||
verbindung.pending_state = state
|
||||
verbindung.last_error = None
|
||||
db.flush()
|
||||
|
||||
antwort = _client(db, user).starte_autorisierung(
|
||||
|
||||
Reference in New Issue
Block a user