В SaaS и B2B-сервисах один пользователь может работать с несколькими компаниями. Если переключение ломается, он видит не те данные или вообще теряет доступ.
В чем проблема
Ошибка появляется из-за неправильного tenant_id в сессии, кеша текущей организации, неполной проверки ролей, неверной фильтрации запросов или frontend-состояния.
Что проверяю
- Какие компании привязаны к пользователю.
- Где хранится текущая компания.
- Все ли запросы фильтруются по tenant_id.
- Сбрасывается ли кеш после переключения.
- Не смешиваются ли роли в разных организациях.
Как исправляю
Я проверяю переключение как критичный security-сценарий: пользователь должен видеть только данные выбранной компании.
- Воспроизвожу переключение на тестовом пользователе.
- Проверяю session/current tenant.
- Исправляю backend-фильтры.
- Синхронизирую frontend-состояние.
- Тестирую роли и прямые ссылки.
Что получает заказчик
- Пользователь переключается между компаниями.
- Данные разных организаций не смешиваются.
- Роли работают отдельно для каждой компании.
- Снижается риск утечки чужих данных.
Что нужно для старта
- Тестовый пользователь с несколькими компаниями.
- Описание ролей.
- Доступ к backend/frontend.
- Пример экрана, где переключение не работает.
Вопросы и ответы
Можно ли хранить company_id только на frontend?
Нет. Backend обязан проверять доступ к каждой компании.
Почему после переключения остаются старые данные?
Часто виноват кеш, глобальное состояние или запросы без tenant_id.
Нужна похожая задача?
Напишите, что именно сломалось или что нужно запустить. Я разберу симптомы, проверю техническую причину и предложу понятный план работ с адекватными сроками.