Add page visibility by group with centralized matrix
Introduce a Page Visibility Matrix that controls which pages each user
group can access, enforced in both frontend and backend:
Frontend:
- Create frontend/src/config/pageVisibility.js with PAGE_VISIBILITY
matrix and canAccessPage() / getAccessiblePages() helpers
- NavDrawer: replace inline requiredGroups with canAccessPage() filter
- App.js: replace per-page isInGroup()/isAdmin() checks with generic
route guard in setCurrentPage; remove VALID_PAGES constant
- localStorage validation: verify persisted page is accessible on load
Backend (page-level access enforcement):
- jiraTickets.js: add router-level requireGroup('Admin','Standard_User')
- archerTemplates.js: add router-level requireGroup('Admin','Standard_User')
- VCL multi-vertical already had requireGroup('Admin','Leadership')
Visibility matrix:
- Home, Knowledge Base: all groups
- Triage, Compliance, Exports: Admin, Standard_User, Leadership
- CCP Metrics: Admin, Leadership
- Jira, Archer Templates: Admin, Standard_User
- Admin Panel: Admin only
- Read_Only sees only Home and Knowledge Base
This commit is contained in:
@@ -20,6 +20,10 @@ const SECTION_MAX_LENGTH = 10000;
|
||||
function createArcherTemplatesRouter() {
|
||||
const router = express.Router();
|
||||
|
||||
// All Archer template routes require authentication and Admin or Standard_User group (page-level access)
|
||||
router.use(requireAuth());
|
||||
router.use(requireGroup('Admin', 'Standard_User'));
|
||||
|
||||
// --- Hierarchy endpoints (MUST be defined before /:id to avoid route conflicts) ---
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user