diff --git a/services/tenant/app/api/tenants.py b/services/tenant/app/api/tenants.py index 0598be5b..e0f445b8 100644 --- a/services/tenant/app/api/tenants.py +++ b/services/tenant/app/api/tenants.py @@ -177,6 +177,28 @@ async def get_user_tenants( ) try: + # For demo sessions, use session-specific filtering to prevent cross-session data leakage + if is_demo_user: + demo_session_id = current_user.get("demo_session_id") + demo_account_type = current_user.get("demo_account_type", "professional") + + if demo_session_id: + # Get only tenants for this specific demo session + tenants = await tenant_service.get_virtual_tenants_for_session(demo_session_id, demo_account_type) + logger.debug( + "Get demo session tenants successful", + user_id=user_id, + demo_session_id=demo_session_id, + tenant_count=len(tenants) + ) + return tenants + else: + logger.warning( + "Demo user without session ID - falling back to regular user tenants", + user_id=actual_user_id + ) + + # Regular users or demo fallback: get tenants by ownership and membership tenants = await tenant_service.get_user_tenants(actual_user_id) logger.debug(