---
suivi: 1116
date: 2026-07-31
sujet: Foncier — groupe de travail + cloisonnement référentiel (Lot A)
chantier: module-foncier
type: feature
statut: poussé
hash: 45ab2265
fichiers:
  - database/migrations/2026_07_31_100000_create_foncier_partages_travail_table.php
  - database/migrations/2026_07_31_100100_create_foncier_referentiel_visibilites_table.php
  - database/migrations/2026_07_31_100200_add_createur_id_to_parcelles_and_proprietaires.php
  - app/Support/Foncier/FoncierPartageTravail.php
  - app/Services/Foncier/FoncierVisibiliteService.php
  - app/Models/Scopes/FoncierReferentielVisibiliteScope.php
  - app/Models/Concerns/HasFoncierReferentielVisibilite.php
  - app/Http/Controllers/Foncier/GroupeTravailController.php
  - resources/js/Pages/Foncier/GroupeTravail/Index.vue
  - docs/suivi/SUIVI_1116_foncier_groupe_travail_referentiel.md
---

## PROMPT ENVOYÉ

SUIVI #1116 — FONCIER groupe de travail + filtrage référentiel (Lot A).
Amende D62. Partage unidirectionnel en écriture. Doublon cadastral →
visibilité unitaire sans dupliquer. Recherche forms : décision explicite.

## SYNTHÈSE

### Décision recherche (#1100 / #1101 / #1102)

**Les endpoints de recherche consommés par les formulaires restent HORS filtre.**

Justification : une parcelle est cadastralement unique ; filtrer la recherche
empêcherait de rattacher un propriétaire/parcelle existant (actes, promesses,
dossier #1111, #1100). Le cloisonnement s’applique aux **listes** et **fiches**
(scope SQL). Lors d’un rattachement ou d’une saisie de doublon hors périmètre,
une ligne `foncier_referentiel_visibilites` rend l’objet visible **sans** changer
le créateur ni créer une 2ᵉ ligne.

Contrainte future (Phase 2) : analyse spatiale HORS filtre.

### Visibilité SQL

Visible si : `createur_id` NULL · créateur = moi · créateur m’a habilité sur le
périmètre · visibilité unitaire · bypass DG / DSI / Admin ERP.
Compteurs d’état de la liste = filtrés. Compteurs direction dossiers = inchangés
(`queryWithoutRecordAcl`).

### Partage

Unidirectionnel. En écriture dans la limite des permissions feature (le partage
n’accorde jamais `foncier.gestion` / `foncier.prix`). Périmètres `dossiers` et
`faisabilite` stockés, non câblés (#1117 / Phase 2). DSI gère le groupe d’autrui.

### Backfill

`createur_id` → user 1 si présent. Compte réel affiché par la migration au `migrate`.
Lignes NULL restantes = visibles de tous.

## LEÇON

D62 amendée : on filtre la liste sans dupliquer l’objet, parce qu’une parcelle
est cadastralement unique ; et un partage n’accorde jamais une permission que le
bénéficiaire n’a pas.
