Log details obfuscated to not leak info
This commit is contained in:
@@ -5,14 +5,17 @@ from datetime import datetime, timedelta, timezone
|
||||
import json
|
||||
from uuid import uuid4
|
||||
|
||||
from fastapi import APIRouter, HTTPException
|
||||
from fastapi import APIRouter, HTTPException, Request
|
||||
from pydantic import BaseModel
|
||||
|
||||
from backend.app.core.config import settings
|
||||
from backend.app.database import get_connection, hash_password
|
||||
from backend.app.services.email_service import get_smtp_settings, save_smtp_settings, send_test_email
|
||||
from backend.app.core.errors import public_error, redacted_error, request_id
|
||||
import logging
|
||||
|
||||
router = APIRouter()
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class SetupRequest(BaseModel):
|
||||
@@ -92,7 +95,7 @@ def save_configuration(payload: SetupRequest):
|
||||
|
||||
|
||||
@router.post('/test-mail')
|
||||
def test_mail(payload: TestMailRequest | None = None):
|
||||
def test_mail(request: Request, payload: TestMailRequest | None = None):
|
||||
if has_administrator():
|
||||
raise HTTPException(status_code=409, detail='LinkLog is already configured')
|
||||
pending = get_pending_setup()
|
||||
@@ -119,7 +122,8 @@ def test_mail(payload: TestMailRequest | None = None):
|
||||
try:
|
||||
send_test_email(payload.email if payload and payload.email else pending['email'])
|
||||
except Exception as error:
|
||||
raise HTTPException(status_code=503, detail=f'SMTP test mail could not be sent: {error}') from error
|
||||
logger.error('SMTP test mail failed request_id=%s error=%s', request_id(request), redacted_error(error))
|
||||
raise HTTPException(status_code=503, detail=public_error(request, 'SMTP test mail could not be sent.')) from error
|
||||
|
||||
sends = int(rate.get('sends', 0)) + 1
|
||||
updated_rate = {'sends': sends, 'last_sent': now.isoformat()}
|
||||
|
||||
Reference in New Issue
Block a user