---
suivi: 1925
date: 2026-10-15
sujet: Permission Foncier vue complète
chantier: module-foncier
type: evolution
statut: poussé
hash: 91eae8646
fichiers:
  - config/feature_permissions.php
  - database/migrations/2026_10_15_183000_add_foncier_vue_complete_permission.php
  - app/Services/Foncier/FoncierParcelleVisibiliteService.php
  - app/Models/Scopes/FoncierParcelleVisibiliteScope.php
  - app/Services/PermissionService.php
  - app/Http/Controllers/Foncier/ProspectionController.php
  - resources/js/Pages/Foncier/Prospection/Index.vue
  - database/data/journal_mises_a_jour_post_2026_06_12.php
  - tests/Unit/ParcelleVueComplete1925Test.php
  - public/build/manifest.json
  - docs/suivi/SUIVI_1925_foncier_vue_complete.md
---

# SUIVI #1925 — vue complète administrable

## PROMPT ENVOYÉ

Remplacer les groupes de contournement écrits en dur de la visibilité parcelle par une permission administrable « Foncier — vue complète ». L'initialiser avec exactement ces groupes. La modification reste aux règles actuelles. Le badge de la liste suit la permission. Ne pas ajouter GS_GEMME_PDG dans le code.

## Fiches lues

- #1514 : la visibilité parcelle est responsable, parcelle non attribuée, dossier habilité, et trois groupes. Les dossiers ont une autre liste. Le bandeau prospection ne suit pas le contournement parcelle : il ment pour certains groupes.
- #1910 : le responsable est la lecture « qui suit ». Une parcelle non attribuée est visible.
- #1911 : une parcelle sans responsable reste visible par qui a la lecture foncier.
- #1918 : modifier une parcelle non attribuée est refusé. Le contournement de modification ne s'applique qu'une fois un responsable posé.

## SYNTHÈSE

Permission `foncier.vue_complete`, type Lecture, libellé « Foncier — vue complète ». Description : « Voir toutes les parcelles et dossiers fonciers, quel que soit le responsable. »

Groupes posés à la migration, et seulement ceux-là :

- GS_DIRECTION_GENERALE
- GS_ADMIN_ERP
- GS_HECTARE_DIRECTION

La lecture (scope, fiche, liste, carte, export) teste les groupes rattachés à cette permission. Le raccourci qui donne tout le catalogue n'est pas utilisé : un groupe absent de la permission ne voit pas les parcelles des autres. Le semeur n'ajoute pas non plus ce droit au groupe qui reçoit d'ordinaire tout le catalogue.

Responsable, parcelle non attribuée, dossier habilité : inchangés. Les dossiers fonciers restent sur leur liste de contournement propre (direction, présidence, administration, DSI). La brancher sur cette permission changerait qui voit les dossiers. Ce n'est pas fait.

La modification et l'usage passent encore par la même liste de trois groupes, plus le responsable et l'autorisation de modification. Une parcelle non attribuée reste non modifiable. Ces trois groupes servent donc aussi à modifier. Permission proposée, non codée : « Foncier — modification complète », qui reprendrait cette liste et laisserait la vue complète en lecture seule.

Le badge « Vue complète » de la liste lit la permission. Le sélecteur d'utilisateur en tête de liste reste sur son réglage d'avant.

GS_GEMME_PDG n'est pas dans la permission. L'ajout se fait dans Administration, Droits.

## DÉPLOIEMENT-TEST

git pull origin main
php artisan optimize:clear
php artisan view:clear
php artisan migrate --force
php artisan journal:sync

Pas de route nouvelle.

1. Direction, administration, direction Hectare : voient les parcelles attribuées, comme avant, et peuvent encore les modifier.
2. Après ajout du groupe présidence sur la permission : il voit les parcelles des autres (liste, carte, fiche) et ne peut pas les modifier.
3. Un compte foncier sans la permission : ses parcelles, les non attribuées, les dossiers habilités.
4. Le scope et le service de visibilité ne contiennent plus de nom de groupe.

## LEÇON

La vue et la modification partageaient le même test. Les séparer est obligatoire, sinon ajouter un groupe à la vue complète lui donne aussi la modification. Ne pas passer par le test de permission général : il accorde tout le catalogue à des groupes qui ne sont pas dans la liste parcelle. Le badge et le sélecteur d'utilisateur ne lisaient pas la même liste : seul le badge suit désormais la permission.
