Symptom (QA Viewer Role - Opportunities 2.3 + 2.4)
In Viewer role, the Opportunities table still:
- Lets users click rows / commitments (no viewer action available, so click does nothing useful).
- Renders the per-row checkboxes + "Select all" checkbox as interactive.
Viewer role has no purchase/plan actions, so these UI affordances are misleading.
Acceptance
- For Viewer role only: hide (or render as disabled) the per-row + Select-all checkboxes on the Opportunities table.
- Row clicks remain inert (or trigger view-only inspection).
- Admin/operator roles unchanged.
- A frontend test covers the Viewer-role render path.
Files likely involved
frontend/src/recommendations.ts -- gate the checkbox-column render + row click handler on currentUser.role !== 'viewer' (or however roles are exposed).
- Confirm the role accessor (likely already exists for the Plans / Purchases pages).
Source
QA Viewer Role - Opportunities 2.3 + 2.4 (exploratory testing 2026-05-27).
Symptom (QA Viewer Role - Opportunities 2.3 + 2.4)
In Viewer role, the Opportunities table still:
Viewer role has no purchase/plan actions, so these UI affordances are misleading.
Acceptance
Files likely involved
frontend/src/recommendations.ts-- gate the checkbox-column render + row click handler oncurrentUser.role !== 'viewer'(or however roles are exposed).Source
QA Viewer Role - Opportunities 2.3 + 2.4 (exploratory testing 2026-05-27).