- Permission entity : remplace le guard `ROLE_USER` par `core.permissions.view`
sur GetCollection/Get. Le catalogue complet des permissions RBAC etait
accessible a tout utilisateur authentifie. Ajoute la permission manquante
dans CoreModule::permissions() et inverse les tests standardUser*
(attendent maintenant un 403 pour un user sans la permission).
- UserRbacProcessor::restoreAbsentCollections() : force
PersistentCollection::initialize() avant de lire le snapshot. Pour une
association fetch=LAZY (ex: User::$sites), le snapshot est vide tant que
la collection n'est pas materialisee, ce qui faisait vider silencieusement
tous les sites d'un user sur un PATCH ne contenant pas la cle `sites`.
- admin/audit-log.vue : ajoute un catch sur loadEntries() qui reset
entries/totalItems pour ne pas afficher de donnees stale si le fetch echoue
(reseau coupe, 403 inopinee...). Le toast d'erreur reste gere par useApi.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>