# Cruge Permissions And Menu

Sophia usa Cruge per autenticazione/RBAC, ma aggiunge policy applicative centralizzate. Nuove action, menu e pulsanti devono passare dai punti di abilitazione.

## Elementi ricorrenti

- `GetAbilitazioni($controller, $action)`
- `hasAnyRole(...)`
- `Yii::app()->user->isSuperAdmin`
- costanti `RUOLO_*`
- feature flag come `ABIL_MENU_*`
- catena `AbilitazioniFrmController` -> `AbilitazioniAppController` -> `AbilitazioniCliController`

## Regole operative

1. Identifica controller e action reali dopo `controllerMap`.
2. Aggiorna il layer corretto nella catena di abilitazione.
3. Collega menu, action e pulsanti griglia allo stesso criterio di permesso.
4. Evita check duplicati in view se esiste un punto centralizzato.
5. Verifica comportamento per super admin, ruolo applicativo e utente non autorizzato.

## Validazione

- Smoke UI per menu o pulsanti visibili/nascosti.
- Browser check se il flusso richiede click, Ajax o redirect.
- DB check se permessi o ruoli vivono in tabelle `frm_cruge_*` o equivalenti.
