Fix: Echte Umlaute statt Umschreibungen (gültig, für, prüfen)

Dieser Commit ist enthalten in:
Claude Dev
2026-03-25 00:04:42 +01:00
Ursprung af08fa6b4d
Commit 7351a74217
2 geänderte Dateien mit 7 neuen und 7 gelöschten Zeilen

Datei anzeigen

@@ -1,4 +1,4 @@
"""Auth-Router: Magic Link Login fuer Globe.""" """Auth-Router: Magic Link Login für Globe."""
import logging import logging
from datetime import datetime, timedelta, timezone from datetime import datetime, timedelta, timezone
@@ -23,7 +23,7 @@ async def request_magic_link(req: LoginRequest, db=Depends(get_db)):
"""Sendet Magic Link per E-Mail.""" """Sendet Magic Link per E-Mail."""
email = req.email.lower().strip() email = req.email.lower().strip()
# User pruefen # User prüfen
cursor = await db.execute( cursor = await db.execute(
"SELECT id, username, email, is_active, globe_access FROM users WHERE LOWER(email) = ?", "SELECT id, username, email, is_active, globe_access FROM users WHERE LOWER(email) = ?",
(email,), (email,),
@@ -60,7 +60,7 @@ async def request_magic_link(req: LoginRequest, db=Depends(get_db)):
@router.get("/verify") @router.get("/verify")
async def verify_token(token: str, db=Depends(get_db)): async def verify_token(token: str, db=Depends(get_db)):
"""Verifiziert Magic Link Token, gibt JWT zurueck.""" """Verifiziert Magic Link Token, gibt JWT zurück."""
cursor = await db.execute( cursor = await db.execute(
"""SELECT ml.user_id, ml.expires_at, ml.is_used, """SELECT ml.user_id, ml.expires_at, ml.is_used,
u.username, u.email, u.is_active, u.globe_access, u.role u.username, u.email, u.is_active, u.globe_access, u.role
@@ -70,7 +70,7 @@ async def verify_token(token: str, db=Depends(get_db)):
) )
row = await cursor.fetchone() row = await cursor.fetchone()
if not row: if not row:
raise HTTPException(status_code=400, detail="Ungueltiger Link.") raise HTTPException(status_code=400, detail="Ungültiger Link.")
if row["is_used"]: if row["is_used"]:
raise HTTPException(status_code=400, detail="Link wurde bereits verwendet.") raise HTTPException(status_code=400, detail="Link wurde bereits verwendet.")
if datetime.fromisoformat(row["expires_at"]) < datetime.now(timezone.utc): if datetime.fromisoformat(row["expires_at"]) < datetime.now(timezone.utc):

Datei anzeigen

@@ -1,4 +1,4 @@
"""E-Mail-Versand fuer Globe Magic Links.""" """E-Mail-Versand für Globe Magic Links."""
import logging import logging
import aiosmtplib import aiosmtplib
from email.mime.text import MIMEText from email.mime.text import MIMEText
@@ -23,7 +23,7 @@ async def send_magic_link_email(to_email: str, link: str):
<a href="{link}" style="color: #00ff88; word-break: break-all; font-size: 11px;">{link}</a> <a href="{link}" style="color: #00ff88; word-break: break-all; font-size: 11px;">{link}</a>
</p> </p>
<p style="font-size: 11px; color: rgba(255,255,255,0.3); margin-top: 24px;"> <p style="font-size: 11px; color: rgba(255,255,255,0.3); margin-top: 24px;">
Dieser Link ist 10 Minuten gueltig. Falls du diese Anfrage nicht gesendet hast, ignoriere diese E-Mail. Dieser Link ist 10 Minuten gültig. Falls du diese Anfrage nicht gesendet hast, ignoriere diese E-Mail.
</p> </p>
</div> </div>
""" """
@@ -32,7 +32,7 @@ async def send_magic_link_email(to_email: str, link: str):
msg["From"] = f"{SMTP_FROM_NAME} <{SMTP_FROM_EMAIL}>" msg["From"] = f"{SMTP_FROM_NAME} <{SMTP_FROM_EMAIL}>"
msg["To"] = to_email msg["To"] = to_email
msg["Subject"] = "AegisSight Globe — Anmelde-Link" msg["Subject"] = "AegisSight Globe — Anmelde-Link"
msg.attach(MIMEText(f"Dein Globe-Anmeldelink:\n\n{link}\n\nGueltig fuer 10 Minuten.", "plain")) msg.attach(MIMEText(f"Dein Globe-Anmeldelink:\n\n{link}\n\nGültig für 10 Minuten.", "plain"))
msg.attach(MIMEText(html, "html")) msg.attach(MIMEText(html, "html"))
try: try: