fix: retain demo sessions across seed resets
This commit is contained in:
@@ -28,6 +28,16 @@ def get_current_user(request: Request, db: Session = Depends(get_db)) -> Current
|
|||||||
payload: SessionPayload | None = read_session_token(token) if token else None
|
payload: SessionPayload | None = read_session_token(token) if token else None
|
||||||
if payload is None or payload.role not in _VALID_ROLES:
|
if payload is None or payload.role not in _VALID_ROLES:
|
||||||
raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Not authenticated")
|
raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Not authenticated")
|
||||||
|
# Demo reset deliberately rebuilds the deterministic users table. Retaining the
|
||||||
|
# signed demo session until the reset endpoint clears its cookie keeps existing demo
|
||||||
|
# workflows stable; operational sessions are always checked against the live record.
|
||||||
|
if settings.mobilityops_demo_mode:
|
||||||
|
demo_role: Role = payload.role # type: ignore[assignment]
|
||||||
|
return CurrentUser(
|
||||||
|
public_ref=payload.public_ref,
|
||||||
|
display_name=payload.display_name,
|
||||||
|
role=demo_role,
|
||||||
|
)
|
||||||
user = db.get(User, payload.user_id)
|
user = db.get(User, payload.user_id)
|
||||||
if (
|
if (
|
||||||
user is None
|
user is None
|
||||||
|
|||||||
Reference in New Issue
Block a user