fix(RHCLOUD-50619): Consolidate nav to single block, drop permission checks - #1055
Conversation
…checks Chrome's loosePermissionsKessel checks permissions against resourceType 'tenant' but RBAC binds roles to the default workspace, causing all checks to return ALLOWED_FALSE. This hides Configure Events and Event Log for all users on stage where platform.chrome.kessel is true. Replace the dual v1/v2 nav blocks with a single ungated block with no permission checks. The app already handles unauthorized access at the page level — Configure Events and Event Log show a forbidden state when the API returns non-200. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan provides up to 12 included reviews per hour; 11 remain after this review. Summary by CodeRabbit
WalkthroughThe frontend navigation replaces separate V1 and V2 Notifications entries with one expandable entry. It includes four normalized routes and removes feature-flag, Kessel, and route-level permission conditions. ChangesNotifications navigation
Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk: 🔵 Low · up to The navigation changes are mergeable with explicit owner follow-up to confirm that Notification Preferences still enforces authorization for direct navigation; otherwise, unauthorized users could potentially access that page. Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Chromatic Build
|
E2E test failures — expected, self-resolving on mergeThe 4 failing tests in The e2e tests run against stage Chrome, which serves the deployed nav config. After PR #1052 was merged and deployed, the v2 nav block became active on stage ( The tests correctly expect all 4 nav items to be visible — they're failing because the deployed config hides 2 of them. Once this PR is merged and deployed, the nav permission checks are removed and all 4 items will be visible again, resolving the test failures. |
Summary
frontend.yamlinto a single ungated blockloosePermissionsandloosePermissionsKesselroute-level permission checksfeatureFlag/isKesselEnabledsection-level gatesWhy
Chrome's
loosePermissionsKesselvisibility function checks Kessel permissions againstresourceType: 'tenant', but RBAC places role bindings on the default workspace. This causes allloosePermissionsKesselchecks to returnALLOWED_FALSE, hiding Configure Events and Event Log for all users on stage (whereplatform.chrome.kesselistrue).The root cause is in Chrome's
VisibilitySingleton.ts— tracked in RHCLOUD-50619. Until that's resolved at the API/Chrome level, we drop the nav permission checks entirely and rely on the app's existing page-level unauthorized screens (Configure Events and Event Log already show a "You do not have access" forbidden state when the API returns non-200).Test plan
🤖 Generated with Claude Code