|
|
|
|
@ -46,6 +46,9 @@ YOUTUBE_JOBS_DIR = Path(tempfile.gettempdir()) / "pysonnerie-youtube-jobs"
@@ -46,6 +46,9 @@ YOUTUBE_JOBS_DIR = Path(tempfile.gettempdir()) / "pysonnerie-youtube-jobs"
|
|
|
|
|
_YOUTUBE_JOBS_LOCK = threading.Lock() |
|
|
|
|
_YOUTUBE_JOBS: dict[str, dict[str, object]] = {} |
|
|
|
|
|
|
|
|
|
AUTH_HTTP_ERRORS = ("Erreur HTTP 401", "Erreur HTTP 403") |
|
|
|
|
BACKEND_UNAVAILABLE_ERRORS = ("Backend inaccessible", "Echec du controle de sante") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def _backend_client() -> BackendClient | None: |
|
|
|
|
backend_url = session.get("backend_url") |
|
|
|
|
@ -330,10 +333,17 @@ def login() -> str | Response:
@@ -330,10 +333,17 @@ def login() -> str | Response:
|
|
|
|
|
try: |
|
|
|
|
client.health() |
|
|
|
|
client.list_triggers() |
|
|
|
|
except BackendApiError: |
|
|
|
|
except BackendApiError as exc: |
|
|
|
|
error_text = str(exc) |
|
|
|
|
if any(code in error_text for code in AUTH_HTTP_ERRORS): |
|
|
|
|
login_error = "Identifiant ou mot de passe incorrect." |
|
|
|
|
elif any(code in error_text for code in BACKEND_UNAVAILABLE_ERRORS): |
|
|
|
|
login_error = "Impossible de se connecter au service pour le moment. Vérifiez que le backend est demarré puis réessayez." |
|
|
|
|
else: |
|
|
|
|
login_error = "Connexion impossible pour le moment. Réessayez dans quelques instants." |
|
|
|
|
return render_template( |
|
|
|
|
"login.html", |
|
|
|
|
login_error="Impossible de se connecter au service pour le moment. Vérifiez que le backend est demarré puis réessayez.", |
|
|
|
|
login_error=login_error, |
|
|
|
|
attempted_username=username, |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|