---
suivi: 1954
date: 2026-10-16
sujet: Projets prospects ouverts à Hectare
chantier: monprojet
type: feature
statut: poussé
hash: 602b89417
fichiers:
  - config/feature_permissions.php
  - database/migrations/2026_10_16_160000_add_prospects_permissions.php
  - app/Support/Monprojet/MonprojetDroits.php
  - app/Http/Controllers/MonprojetFicheController.php
  - app/Services/PermissionService.php
  - app/Http/Middleware/HandleInertiaRequests.php
  - resources/js/Layouts/AppShell.vue
  - resources/js/Pages/Monprojet/Index.vue
  - resources/js/Pages/Monprojet/Show.vue
  - database/data/journal_mises_a_jour_post_2026_06_12.php
  - tests/Feature/Monprojet/ProspectsAcces1954Test.php
  - tests/Feature/Foncier/FoncierAccesGsHectareSourceTest.php
  - tests/Unit/ParcelleVueComplete1925Test.php
  - public/build/manifest.json
  - docs/suivi/SUIVI_1954_prospects_gs_hectare.md
---

## PROMPT ENVOYÉ

GS_HECTARE doit voir Projets prospects (menu et page), tous les projets y compris sans agence, écrire, changer le statut et la note, attribuer l'agence. Quarantaine et Relever maintenant ne sont pas ouverts à ce groupe. Aucun groupe existant ne perd un accès. Contrôle serveur sur chaque action. Menu et page sur la même règle.

## Fiches lues

- #1925 : permission administrable lue dans le mapping des groupes, pas le raccourci qui donne tout le catalogue. La vue et l'action restent des permissions distinctes.
- #1809 : la page, le menu et la quarantaine étaient trois listes de groupes en dur. Le refus est un 403, pas une policy.
- #1937 : la liste et la fiche sont les écrans « Projets prospects ». Le bouton Relever maintenant est sur la liste.

## SYNTHÈSE

Avant : aucune permission administrable. `MonprojetDroits` et le menu comparaient `m365GroupNames()` à des listes fixes. Voir, traiter, attribuer et relever étaient le même test. La quarantaine et son retraitement étaient deux listes plus courtes.

Après : six permissions. GS_HECTARE reçoit voir, traiter et attribuer. La relève et la quarantaine restent aux groupes qui les avaient. Le menu lit `nav.monprojet_visible`, calculé par le même test que la page.

## DÉPLOIEMENT / TEST

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

1. Compte Hectare : menu Groupe, Projets prospects, liste avec et sans agence, écrire, statut, note, agence. Pas de quarantaine, pas de Relever maintenant.
2. Compte sans la permission : pas de menu, page et actions refusées.
3. Commercial, direction, comité, communication : liste, traitement, agence, relève, comme avant. Pas de quarantaine.
4. Administration : quarantaine et retraitement, comme avant. DSI : quarantaine sans retraitement, comme avant.

## LEÇON

Voir et traiter ne doivent pas partager le même test : ouvrir la page à un groupe lui donnerait sinon la relève. Le raccourci catalogue donnerait le retraitement de quarantaine au groupe qui reçoit tout le catalogue. Le menu et la page doivent lire le même drapeau, sinon l'un des deux reste sur l'ancienne liste.
