Due bug architetturali, entrambi con la stessa causa: dati che vivevano solo in localStorage, quindi visibili a un solo dispositivo. - Il blocco "chi sta scoutando" (scout-live.ts) non funzionava mai tra telefoni diversi: due persone potevano prendere il controllo insieme da dispositivi diversi, sovrascrivendosi a vicenda le azioni nel salvataggio condiviso. Ora usa scout_sessioni, tabella già presente nello schema ma mai collegata al codice. - La partita scoutata finita (scout-store.ts) veniva salvata solo in localStorage: "Punti/Ace/Muri squadra" e le presenze derivate dallo scout esistevano solo sul telefono di chi aveva chiuso la partita. Nuova tabella scout_partite archivia la partita completa (azioni incluse) per tutta la squadra. useScoutMatches() mantiene la stessa firma di prima (ScoutMatch[]), ora alimentata da una query invece che da localStorage: nessuna modifica necessaria nei punti che la leggono (squadra, classifica, home, dettaglio partita, rosa). Rigenerati i tipi Supabase. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
21 lines
1.1 KiB
SQL
21 lines
1.1 KiB
SQL
-- M4 — Chiusura degli accessi anonimi alle tabelle v1.0 (DD-011).
|
|
--
|
|
-- Da applicare SOLO quando tutti hanno collegato l'account Google: da qui in poi il
|
|
-- ruolo `anon` non legge né scrive più nulla, quindi chi non ha fatto login vede l'app
|
|
-- vuota. Le route in `src/routes/api/public/` usano la service role e non sono toccate.
|
|
--
|
|
-- Le policy restano dichiarate `TO anon, authenticated`: senza GRANT il ruolo anon non
|
|
-- arriva comunque alla tabella, e le policy continuano a valere per gli autenticati.
|
|
|
|
REVOKE ALL ON public.turni_palloni FROM anon;
|
|
REVOKE ALL ON public.push_subscriptions FROM anon;
|
|
REVOKE ALL ON public.badge_social_voti FROM anon;
|
|
REVOKE ALL ON public.scout_sessioni FROM anon;
|
|
REVOKE ALL ON public.scout_live FROM anon;
|
|
REVOKE ALL ON public.scout_partite FROM anon;
|
|
REVOKE ALL ON public.mvp_voti FROM anon;
|
|
REVOKE ALL ON public.risposte_presenze FROM anon;
|
|
REVOKE ALL ON public.eventi_app FROM anon;
|
|
REVOKE ALL ON public.pagelle_voti FROM anon;
|
|
REVOKE ALL ON public.cacche_partita FROM anon;
|