Skip to content

Service MenuGuard

simone.tiberti edited this page Apr 23, 2026 · 2 revisions

MenuGuard

Guard CanActivateChild che protegge le rotte verificando che il percorso corrente sia tra quelli concessi dal token backend. In caso negativo reindirizza a /forbidden.

Applicato automaticamente da toRoutes() — non è necessario configurarlo manualmente.


Comportamento

  1. /forbidden, /not-found e /error sono sempre consentiti (loop prevention)
  2. Attende il completamento del bootstrap con await system.bootstrap() — la promise è già avviata da SystemService, il guard si aggancia alla stessa promise senza avviarne una nuova
  3. Se layoutState() === 'error' (bootstrap fallito) → redirect /error
  4. Confronta sia l'URL concreto che il path template (con placeholder :param), permettendo rotte come /users/:id
  5. La root / è considerata consentita se '' o '/' è tra gli endpoint del token
  6. Non consentito → redirect /forbidden

Funzionamento della verifica

URL richiesto: /users/42
                    ↓
Path template: /users/:id
                    ↓
Confronto contro allowedEndpoints da paths
                    ↓
Consentito → true   /   Non consentito → redirect /forbidden

Configurazione automatica

toRoutes(APP_ROUTES) genera automaticamente:

{
  path: '',
  component: MainLayoutComponent,
  canActivateChild: [MenuGuard],
  children: [
    // tutte le rotte di APP_ROUTES
    { path: 'error',     component: ErrorPage },
    { path: 'forbidden', component: ForbiddenPage },
    { path: '**',        component: NotFoundPage },
  ]
}

Vedi anche

Clone this wiki locally