fix(tradein/ui): вход в «Команду» из v2-навигации + понятный 401 (#2556) #2570
No reviewers
Labels
No labels
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
Fable 5 ревью
feedback/max
generative
GG-форсайт
needs-discussion
needs-human
observability
pause-bots
performance
priority/p0
priority/p1
priority/p2
priority/p3
scope/backend
scope/db
scope/devops
scope/frontend
scope/qa
scrapers
security
site-finder
stage/1
stage/2
status/blocked
status/done
status/needs-analysis
status/needs-fix
status/qa
status/ready
status/review
status/wip
tech-debt
tradein
ux
week ревью 1
wontfix
вторичка
ИРД
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#2570
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "fix/tradein-team-nav-and-401"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Два дефекта, найденные live-проверкой прода после мержа #2565.
1. В раздел «Команда» нельзя было попасть кликом. Пункт добавили в
Topbar.tsx, а/trade-in/редиректит на/v2, где используется другой навигационный компонент —v2/TopNav.tsx. Проверено живьём: в навигации v2 только Оценка / Продажи в доме / Аналоги / Аналитика / Предыдущие оценки. Дашборд существовал, но был достижим лишь по прямому URL.Фикс: пункт «Команда» в user-меню рядом с «Выйти», не таб. Обоснование: табы v2 переключают секции одной страницы (
SectionOverlay), а/team— отдельный роут; таб потребовал бы ломать модель «число табов = число секций». Гейт двойной, как вTopbar:isPathAllowed(..., "/api/v1/team")иrole === admin|manager— иначе legacyanalyst(paths: ["/**"]) прошёл бы path-фильтр.2. На
/teamбез сессии — «Не удалось выполнить запрос». Пользователь, прошедший только Caddy basic_auth, получает/me200 (legacy-роль) → RouteGuard пропускает → team-API отдаёт 401valid session required→ невнятная красная плашка. Поведение бэкенда корректное (team-API намеренно принимает только сессию), чинился UI.Фикс: 401 обрабатывается отдельно от 403 — в prod авто-редирект на
/login?next=/team(паттерн RouteGuard: эффект вне рендера,return nullпока не сработал), в dev — экран «Войдите в систему» с кнопкой (авто-редирект мешал бы локальной разработке). Петли нет:/loginне гейтится RouteGuard,sanitizeNextпринимает/team.tsc --noEmit+ lint + build чисто. Post-deploy: проверить пункт в дропдаунe под admin/manager и редирект на/loginбез сессии.