Segnalo un problema riscontrato su OpenSTAManager 2.10.4 (verificato anche presente nella 2.11.1-beta), che ha causato il blocco completo della modifica righe su preventivi (probabilmente anche su altri documenti che usano lo stesso meccanismo).
Sintomo
Cliccando sul pulsante "Modifica riga" (o aprendo i documenti collegati da una riga), la richiesta AJAX verso row-edit.php (e actions.php per apriDocumenti) falliva con errore di rete (connessione interrotta / 503), riproducibile su più browser, reti e persino su due hosting diversi.
Causa
In modules/preventivi/row-list.php, l'attributo HTML data-type di ogni riga contiene il nome completo della classe PHP con i backslash del namespace (es. Modules\Preventivi\Components\Riga), generato da $riga::class. Le funzioni JS modificaRiga() e apriDocumenti() leggono questo valore e lo concatenano direttamente nella query string dell'URL, senza applicare encodeURIComponent():
js
"&riga_id=" + id + "&riga_type=" + type
I backslash non codificati nell'URL vengono interpretati come pattern sospetto (tipo path traversal) da diversi livelli di sicurezza server (WAF/ModSecurity), che bloccano la richiesta. Il problema si è manifestato improvvisamente su alcune installazioni probabilmente in seguito ad aggiornamenti automatici delle regole di sicurezza lato hosting, ma il bug di fondo (mancata codifica URL) era presente indipendentemente da questo.
Soluzione
Basta applicare encodeURIComponent() sui parametri prima di inserirli nell'URL, in entrambe le funzioni:
js
// modificaRiga
"&riga_id=" + encodeURIComponent(id) + "&riga_type=" + encodeURIComponent(type)
// apriDocumenti
"&riga_id=" + encodeURIComponent(id) + "&riga_type=" + encodeURIComponent(type)
Nessuna modifica necessaria lato PHP: $_GET decodifica automaticamente i valori URL-encoded, quindi get('riga_type') continua a ricevere il valore corretto.
Ho applicato la patch manualmente sulla mia installazione 2.10.4 e risolve il problema. Segnalo qui nel caso possa essere utile ad altri, e per capire se vale la pena aprire una issue/PR su GitHub.