Commit Graph

20 Commits

Author SHA1 Message Date
Francesco Picone
177523994d ++ fix mobile 2026-07-25 23:18:54 +02:00
Francesco Picone
24a6d3d59f ++ fix permessi assegnazioni 2026-07-25 23:05:20 +02:00
Francesco Picone
c505708ae2 ++ fix campagna 2026-07-25 22:58:29 +02:00
Francesco Picone
9421891989 ++ fix import e permessi 2026-07-25 22:39:38 +02:00
0502fad996 Correggi bug di sicurezza e integrita' dei dati
I due piu' gravi potevano causare perdita di dati silenziosa.

AppServiceProvider chiamava key:generate --force a ogni richiesta quando
APP_KEY risultava vuota. Poiche' nome e cognome dei proclamatori sono
cifrati con quella chiave, ogni riga scritta sotto una chiave poi
sostituita diventava irrecuperabile. La chiave e' ora risolta una sola
volta all'avvio del container e il provider solleva un'eccezione se manca,
invece di rigenerarla.

importTerritoryPdfFolder() caricava i PDF, costruiva l'elenco dei file e
poi lo scartava senza mai accodare il job: nessun errore, nessun territorio
aggiornato, e i file restavano su disco a crescita illimitata perche' la
pulizia viveva solo nel finally del job mai eseguito.

Sicurezza:
- i permessi non venivano riapplicati alle richieste /livewire/update, per
  cui un permesso revocato restava attivo fino al reload della pagina
- host header injection: nginx passava l'Host del client come
  X-Forwarded-Host e Laravel si fidava di tutti i proxy, abbastanza per far
  generare a route() link verso domini arbitrari, inclusi i PDF pubblici
  che contengono un codice di accesso valido
- lo schema forwarded e' ora deciso dal server e non dall'header del client
- campagna_id in Rientra e' #[Locked]: era derivato lato server ma
  manipolabile dal client, permettendo di conteggiare un rientro su una
  campagna arbitraria
- sortField del registro passava non validato a orderBy(), con 500 su
  colonna inesistente
- SESSION_SECURE_COOKIE ora vale true fuori da local
- limiti su dimensione e numero di voci negli import ZIP

Integrita' e prestazioni:
- il default di assignment_link_ttl_hours era rimasto 24 dopo la
  conversione da ore a mesi: i link PDF pubblici duravano due anni invece
  di uno mese
- il seeder usava syncPermissions(), che a un secondo giro azzerava i
  permessi personalizzati dei ruoli; ora e' additivo
- pdftoppm senza timeout poteva bloccare il worker indefinitamente
- nomi file deterministici nell'import: "1 A" e "1-A" scrivevano sullo
  stesso PDF, sovrascrivendosi
- Setting::flushCache() dopo le cancellazioni massive, che non emettono
  eventi e lasciavano la cache puntata a una riga inesistente
- riga settings creata dal seeder, per evitare due singleton concorrenti
- rimosse due migrazioni ridondanti che rompevano migrate:rollback
- indici su assigned_at, (attivo, deleted_at) e deleted_at
- risolti gli N+1 negli elenchi territori e proclamatori

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-19 16:49:42 +02:00
1534c84d45 ++ fix: add pdf download visibility setting 2026-04-16 10:37:05 +00:00
6a65087449 ++ fix prioritario display and add link sent toggle 2026-04-13 15:40:35 +00:00
0553d4ef74 ++ fix temporary PDF viewer URLs, which were causing issues with caching and expiring links. Instead, we now generate short-lived URLs that redirect to the PDF viewer route, ensuring that users can access the PDFs without running into expired links. This change affects the Assegnazione model, the ShortPdfLinkController, and the relevant Blade views for assignments and records. Additionally, I've updated the Home Livewire component to calculate and display the average duration of assignments in months, providing more insight into assignment durations on the dashboard. 2026-04-13 15:05:37 +00:00
465e7cf092 ++ add Gestione dietro reverse proxy 2026-04-13 12:30:33 +00:00
5e98423e7a ++ fix: aggiornamento dipendenze e correzione bug 2026-04-12 18:07:59 +00:00
c585979340 ++ fix: use months for assignment PDF link TTL instead of hours 2026-04-08 15:22:37 +00:00
6f8010514d ++ fix: Rientro assegnazione e territorio 2026-04-08 11:55:14 +00:00
777f239c7a +++fix: add thumbnail support for territori 2026-04-08 09:32:07 +00:00
aac13522e5 ++ fix: Show causer name from activity properties if not available in relation 2026-04-07 15:09:49 +00:00
be1ac25047 ++ fix: update .env.example and .gitignore, add CreateInitialAdmin command, add UsersIndex Livewire component, update entrypoint.sh, update app layout, add users-index blade view, update web routes 2026-04-07 14:57:54 +00:00
1010246104 ++ fix: update .env.example and README.md, add CreateInitialAdmin command, update docker-compose.yml and entrypoint.sh, remove old CSS file and update manifest.json 2026-04-07 14:10:52 +00:00
80318d33b4 Refactor: remove setup wizard and related middleware, update settings management 2026-04-07 13:40:08 +00:00
ef37385b3d Eliminato Wizard, tutto verrà gestito da impostazioni 2026-04-07 11:16:46 +00:00
1606778518 ++ fix 2026-04-05 20:14:30 +00:00
Francesco Picone
701f479b7f Primo commit 2026-04-05 19:26:04 +02:00