SpreadsheetAclDialog
Scopo
Dialog modale per gestire le condivisioni del foglio. Visibile solo al proprietario (permessoEffettivo === 'proprietario').
Aperto da SpreadsheetToolbar (@openAcl). Gestita internamente da useFogliAcl.
Props
| Prop | Tipo | Descrizione |
|---|---|---|
idfolio | number | ID foglio di cui gestire le ACL |
visible | boolean | v-model:visible per <Dialog> |
Eventi
| Evento | Payload | Quando |
|---|---|---|
update:visible | boolean | v-model emit per chiusura |
acl-changed | — | Una ACL è stata creata/modificata/rimossa |
Operazioni
Tutte le operazioni passano per useFogliAcl:
| Azione | Implementazione |
|---|---|
| Lista permessi | acl.load(idfolio) al mount |
| Aggiungi utente | acl.aggiungi(idfolio, idutente, 'lettura' | 'scrittura') |
| Modifica permesso | acl.modifica(idacl, nuovoPermesso) |
| Rimuovi permesso | acl.rimuovi(idacl) |
Modello FoglioAcl
interface FoglioAcl {
idacl: number
idfolio: number
idutente: number
permesso: 'lettura' | 'scrittura'
datacreazione: string // ISO 8601
nomeUtente?: string // join opzionale lato vista
}
Layout suggerito
┌─────────────────────────────────────────────────┐
│ Condivisione foglio ✕ │
├─────────────────────────────────────────────────┤
│ │
│ Aggiungi utente: │
│ [Cerca utente ▼] [Lettura ▼] [+ Aggiungi] │
│ │
│ ───────────────────────────────────────── │
│ │
│ Utenti con accesso: │
│ │
│ 👤 marco.rossi [Scrittura ▼] [✕] │
│ Condiviso il 02/05/2026 │
│ │
│ 👤 giulia.bianchi [Lettura ▼] [✕] │
│ Condiviso il 28/04/2026 │
│ │
│ ───────────────────────────────────────── │
│ │
│ ☐ Foglio pubblico (lettura per tutti) │
│ │
└─────────────────────────────────────────────────┘
Flusso "Aggiungi utente"
- Autocomplete su lista utenti (lookup esterno, non incluso nella libreria — il consumer fornisce la sorgente)
- Selezione
permesso(letturaoscrittura) - Click "+ Aggiungi"
acl.aggiungi(idfolio, idutente, permesso)- Riga aggiunta a
acl.valuereattivamente
Flusso "Modifica permesso"
- Click sul dropdown del permesso (lettura ↔ scrittura)
acl.modifica(idacl, nuovoPermesso)- La riga viene aggiornata reattivamente
Flusso "Rimuovi"
- Click sull'icona
✕ - Conferma (
confirm.require) acl.rimuovi(idacl)- Riga rimossa da
acl.value
Pubblicazione foglio
Il toggle "Foglio pubblico" è una scorciatoia per impostare foglidicalcolo.ispubblico = true. Quando attivo, il foglio è visibile in sola lettura a tutti gli utenti della shell, anche senza essere in foglidicalcoloacl. Gestito tramite FogliPostgrestService.aggiornaDati(idfolio, { ispubblico: true }).
Lookup utenti
La libreria non include un componente per cercare utenti. Il consumer deve fornire:
- una sorgente di utenti (es. vista
v_utentiPostgREST della shell) - un componente di autocomplete (es.
<SelectRemote>di@pzeta/vue-form)
Esempio di integrazione:
<SelectRemote
v-model="utenteSelezionato"
endpoint="/v_utenti"
search-field="nome,email"
option-label="nome"
option-value="idutente"
/>
Stato di salvataggio
| Stato | UI |
|---|---|
isLoading.value === true | Skeleton sulla lista ACL |
isSaving.value === true | Loader sul pulsante azione |
error.value !== null | Banner errore inline |
Permessi
Il dialog dovrebbe essere aperto solo dal proprietario. La toolbar nasconde il pulsante ACL agli altri permessi, ma il componente non rifiuta input a livello di UI: il server-side rifiuta comunque insert/update/delete su foglidicalcoloacl se l'utente non è proprietario.
Tipi correlati
FoglioAcl— riga ACLuseFogliAclFogliPostgrestService— CRUD ACL
FortuneSheetWorkbook
Wrapper basso livello su @fortune-sheet/vue. Usato internamente da FortuneSheetAdapter — raramente usato direttamente.
SpreadsheetEditor
Componente orchestratore dell'editor foglio. Carica metadati + snapshot + lock, monta Fortune Sheet, gestisce panel ERP/versioni/ACL, autosave e refresh interval.