feat: v4.0.2 — qualité & robustesse (session expiry UX, validation, mobile, tests)
- Session expiry: redirects ajoutent ?expired=1 → bannière "Session expired" sur login - Page titles: titre vide → 'Untitled' par défaut (au lieu de chaîne vide) - Error handling: try/catch dans create_page avec message user-friendly (500) - Mobile responsive: sidebar slide-in, modales centrées, landing page adaptative - 10 nouveaux tests de non-régression: landing, register, 404, validation, duplicate - 143 tests passent (133 + 10)
This commit is contained in:
@@ -27,7 +27,7 @@ def _get_user_or_redirect(request: Request):
|
||||
return {"id": 1, "login": "admin", "full_name": "Admin", "is_admin": True}
|
||||
except Exception:
|
||||
pass
|
||||
return RedirectResponse("/auth/login?provider=local", status_code=302)
|
||||
return RedirectResponse("/auth/login?provider=local&expired=1", status_code=302)
|
||||
return user
|
||||
|
||||
|
||||
@@ -1285,7 +1285,7 @@ async def workspaces_page(request: Request):
|
||||
sidebar = _sidebar_data(request, [], include_workspace=False)
|
||||
user = SessionManager.decode_session(request.cookies.get("flowdeck_session", ""))
|
||||
if not user:
|
||||
return RedirectResponse("/auth/login?provider=local", status_code=302)
|
||||
return RedirectResponse("/auth/login?provider=local&expired=1", status_code=302)
|
||||
ctx = {**sidebar, "user": user}
|
||||
# Pass active workspace for breadcrumb nav menu (null on workspaces home)
|
||||
ws = _get_active_workspace(request, user_id=_get_user_id(request))
|
||||
|
||||
Reference in New Issue
Block a user