OSM-Verknüpfung: In-App-Hilfe „Konto erstellen" (umgebungsabhängig)

- /osm-auth/status liefert signup_url + sandbox-Flag (Sandbox-URL auf Staging,
  echte OSM in Prod).
- Settings-OSM-Karte: ausklappbare Hilfe "Noch kein OSM-Konto? Was ist das?"
  mit Erklärung, 3-Schritt-Anleitung, Sandbox-Testphasen-Hinweis und
  "Kostenloses OSM-Konto erstellen"-Link zur richtigen Instanz.
This commit is contained in:
rene 2026-06-03 22:04:42 +02:00
parent b4cafc0363
commit 684ffa3b46
7 changed files with 45 additions and 21 deletions

View file

@ -157,10 +157,16 @@ async def status(user=Depends(get_current_user)):
"SELECT osm_name, osm_uid, linked_at FROM user_osm WHERE user_id=?",
(user["id"],)
).fetchone()
if not row:
return {"linked": False}
return {"linked": True, "osm_name": row["osm_name"],
"osm_uid": row["osm_uid"], "linked_at": row["linked_at"]}
# Registrierungs-URL umgebungsabhängig: Sandbox auf Staging, echte OSM in Prod.
base = {
"linked": bool(row),
"signup_url": OSM_OAUTH_BASE + "/user/new",
"sandbox": "dev.openstreetmap" in OSM_OAUTH_BASE,
"configured": bool(CLIENT_ID),
}
if row:
base.update(osm_name=row["osm_name"], osm_uid=row["osm_uid"], linked_at=row["linked_at"])
return base
# ------------------------------------------------------------------