From 89a02afff2fc4525bc6c7583c2c6fbe67b096ffa Mon Sep 17 00:00:00 2001 From: Thomas Zilio Date: Tue, 12 Sep 2017 10:41:48 +0200 Subject: [PATCH] Aggiornamento del CHANGELOG --- CHANGELOG.md | 119 +++++++++++++---------- locale/catalog.pot | 17 ++-- modules/aggiornamenti/upload_modules.php | 35 +++---- 3 files changed, 92 insertions(+), 79 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8db9e1787..c70f21b0d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,53 +16,72 @@ Il formato utilizzato è basato sulle linee guida di [Keep a Changelog](http://k ### Aggiunto (Added) +- Creazione di sistemi centralizzati per la gestione della funzioni principali del progetto (secondo una logica ad oggetti) + - Connessione al database (tramite PDO, con possibile ampliamento dei DMBS supportati) + - Autenticazione degli utenti + - Gestione e controllo dei permessi + - Gestione degli input degli utenti + - Personalizzazione delle impostazioni + - Traduzione e conversione dei formati (date e numeri) + - Gestione degli aggiornamenti - Creazione della documentazione ufficiale per sviluppatori (disponibile nel Wiki e in `docs/`) - Creazione di un sistema API ufficiale -- Creazione di sistemi centralizzati per la gestione della connessione al database, dell'autenticazione, degli input degli utenti, dei permessi, delle impostazioni, delle traduzioni e degli aggiornamenti (secondo una logica ad oggetti) -- Nuova gestione delle operazioni di debugging e logging -- Nuovi plugins e widgets -- Nuovi moduli _Viste_, _Utenti e permessi_, _Opzioni_, con ulteriori moduli per la gestione di tabelle secondarie (_IVA_, _Pagamenti_, ...) -- Possibilità di vedere se ci sono altri utenti che stanno visualizzando lo stesso record (opzione "Sessione avanzata" nel modulo _Opzioni_) +- Creazione di cartelle di default per i backup (`backup/`) e i log (`logs/`) +- Completo supporto alla traduzione del progetto +- Possibilità di vedere se ci sono altri utenti che stanno visualizzando lo stesso record (opzione "Attiva notifica di presenza utenti sul record" nel modulo **Impostazioni**) - Possibilità di creare nuovi elementi dei moduli all'interno del record (oltre che dalla visualizzazione generale del modulo) - Nuova struttura per permettere il richiamo via AJAX delle procedure per la creazione di nuovi elementi all'esterno del modulo specifico (tramite il file `add.php`) -- Miglioramento della documentazione integrata delle funzioni PHP in `lib/functions.php` -- Nuovo file `lib/init.js` per permettere una rapida inizializzazione dei componenti JS -- Creazione di cartelle di default per i backup (`backup/`) e i log (`logs/`) +- Nuovo sistema di gestione delle operazioni di debugging e logging +- Nuovi plugins e widgets +- Introduzione di nuovi moduli primari e secondari + - **Viste** + - **Utenti e permessi** (convertito) + - **Impostazioni** (convertito) + - **IVA** + - **Pagamenti** + - **Porto** + - **Unità di misura** + - **Aspetto beni** + - **Causali** + - **Categorie** + - **Ritenute acconto** + - **Movimenti** +- Nuovo modulo per gestire i file `.ini` dei componenti degli impianti (**Gestione componenti**) - Nuovo pulsante per resettare i filtri di ricerca (nella sezione generica dei moduli) -- Nuovo modulo per gestire i file `.ini` dei componenti degli impianti - Nuova gestione generalizzata degli upload +- Nuova sistema di gestione delle operazioni _bulk_ degli upload +- Nuova documentazione integrata delle funzioni PHP in `lib/functions.php` +- Nuovo file `lib/init.js` per permettere una rapida inizializzazione dei componenti JS - Nuove funzioni relative ai diversi moduli - - Possibilità di individuare i componenti dell'impianto su cui l'intervento viene effettuato - - Possibilità di gestire le ritenute d'acconto - - Firma degli interventi - - Selezione della tipologia di attività per ogni sessione di lavoro - - Tabella riepilogativa più completa dei costi - - Sconto globale in _Interventi_, _Fatture_, _DDT_, _Ordini_, _Preventivi_ + - Introduzione della numerazione univoca per gli impianti (**MyImpianti**) + - Possibilità di individuare i componenti dell'impianto su cui l'intervento viene effettuato (**Interventi**) + - Possibilità di firmare degli interventi (**Interventi**) + - Possibilità di selezionare della tipologia di attività per ogni sessione di lavoro (**Interventi**) + - Introduzione di una tabella riepilogativa più completa dei costi (**Interventi**) + - Introduzione di sconti globali e specifici (unitari e percentuali) in **Contratti**, **DDT**, **Fatture**, **Interventi**, **Preventivi**, **Ordini** ### Modificato (Changed) - Gestione delle librerie e dipendenze PHP tramite _Composer_ -- Gestione degli assets tramite Yarn e Gulp -- Miglioramenti grafici -- Miglioramento della procedura di installazione -- Miglioramenti delle informazioni disponibili sul progetto e della procedura di segnalazione dei bug -- Impianti ora identificati tramite numerazione univoca (non più tramite matricola) -- Sostituzione di Chosen con Select2 -- Miglioramento dell'interpretazione del template per la generazione degli input, ora disponibile ovunque all'interno del progetto -- Miglioramento generale sull'identificazione del modulo attualmente in uso e sull'inclusione dei file necessari per il funzionamento -- Miglioramento della gestione dei permessi -- Gestione della connessione al database tramite PDO (con possibile futuro ampliamento dei DMBS supportati) -- Gestione delle tabelle ora completamente basata su Datatables -- Ottimizzazione della schermata per aggiunta dell'intervento -- Miglioramento dei riquadri delle spese aggiuntive e degli articoli -- La prima anagrafica di tipo Azienda caricata viene impostata come Azienda predefinita -- Passaggio completo all'estensione `.php` per tutti i file dei moduli -- Miglioramento dei permessi di visione per il modulo _MyImpianti_ (ora ogni cliente vede solo i propri impianti) -- Miglioramento della procedura di aggiornamento del gestionale +- Gestione degli assets tramite _Yarn_ e _Gulp_ + - Miglioramenti grafici + - Sostituzione di _Chosen_ con _Select2_ + - Gestione delle tabelle ora completamente basata su _Datatables_ +- Miglioramento della procedura di installazione e aggiornamento del gestionale - Aggiunto sistema di ripresa dell'aggiornamento (se questi è stato bloccato in una fase intermedia tra i singoli aggiornamenti) - Aggiunto sistema di bloccaggio dell'aggiornamento, per evitare problemi nel caso molteplici richieste di update - - Semplificazione della procedura manuale, che ora non richiede nessuna modifica dei file VERSION da parte dell'utente (la versione dell'aggiornamento viene memorizzata nel file VERSION.new) + - Semplificazione della procedura manuale, che ora non richiede nessuna modifica dei file VERSION da parte dell'utente - Modificata la struttura della tabella `updates` +- Passaggio completo all'estensione `.php` per tutti i file dei moduli +- Miglioramento dell'interpretazione del template per la generazione degli input, ora disponibile ovunque all'interno del progetto +- Miglioramento della gestione dei permessi +- Miglioramento delle stampe principali +- Miglioramento delle informazioni disponibili sul progetto e della procedura di segnalazione dei bug +- Miglioramento generale sull'identificazione del modulo attualmente in uso e sull'inclusione dei file necessari per il funzionamento +- La prima anagrafica di tipo Azienda caricata viene impostata come "Azienda predefinita" +- Ottimizzazione della schermata per aggiunta dell'intervento +- Miglioramento dei riquadri delle spese aggiuntive e degli articoli +- Miglioramento dei permessi di visione per il modulo **MyImpianti** (ogni cliente vede solo i propri impianti) ### Deprecato (Deprecated) @@ -72,30 +91,29 @@ Il formato utilizzato è basato sulle linee guida di [Keep a Changelog](http://k ### Rimosso (Removed) - Funzioni PHP non utilizzate (`lib/functions.php`) - - is\_id\_ok - - write\_error - - write\_ok + - is_id_ok + - write_error + - write_ok - getAvailableModules - - read\_file + - read_file - dateadd - - show\_info\_messages - - show\_error\_messages - - get\_module\_name + - show_info_messages + - show_error_messages + - get_module_name - mytruncate - - get\_user\_browser + - get_user_browser - RemoveNonASCIICharacters - - full\_html\_entity\_decode - - data\_italiana - - gestione\_sessioni - - get\_text\_around + - full_html_entity_decode + - data_italiana + - gestione_sessioni + - get_text_around - coolDate - - get\_module\_name\_by\_id - - cut\_text + - get_module_name_by_id + - cut_text - getLastPathSegment - - cut\_text + - cut_text - Funzioni JS non utilizzate (`lib/functionsjs.php`) -- Cartelle non più utilizzate (`lib/jscripts/`, `lib/html2pdf/`, `widgets`, `share`, ...) -- File non più utilizzati (`lib/dbo.class.php`, `lib/widgets.class.php`, ...) +- Cartelle e file non più utilizzati (`lib/jscripts`, `widgets`, `share`, `lib/dbo.class.php`, `lib/widgets.class.php`, ...) ### Fixed @@ -106,6 +124,7 @@ Il formato utilizzato è basato sulle linee guida di [Keep a Changelog](http://k - Aggiunta protezione contro attacchi di tipo XSS - Aggiunta base per contrastare l'SQL Injection - Aggiunta protezione (temporaneamente disabilitata) contro attacchi CSRF +- Aggiunto sistema basilare contro attacchi brute-force all'accesso - Passaggio della codifica della password con algoritmo di hashing BCrypt ## 2.2 (2016-11-10) diff --git a/locale/catalog.pot b/locale/catalog.pot index 284b448ad..565acb8e7 100644 --- a/locale/catalog.pot +++ b/locale/catalog.pot @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: OpenSTAManager\n" -"POT-Creation-Date: 2017-09-11 18:22+0200\n" +"POT-Creation-Date: 2017-09-12 10:41+0200\n" "PO-Revision-Date: 2017-09-06 09:35+0200\n" "Last-Translator: \n" "Language-Team: \n" @@ -1112,7 +1112,8 @@ msgstr "" msgid "Carica" msgstr "" -#: lib/functions.php:132 modules/backup/edit.php:10 +#: lib/functions.php:132 modules/aggiornamenti/upload_modules.php:16 +#: modules/backup/edit.php:10 msgid "Estensione zip non supportata!" msgstr "" @@ -1387,22 +1388,18 @@ msgid "Cambiare la posizione di questo widget?" msgstr "" #: modules/aggiornamenti/upload_modules.php:16 -msgid "Estensione php_zip non caricata!" +msgid "Verifica e attivala sul tuo file _FILE_" msgstr "" -#: modules/aggiornamenti/upload_modules.php:16 -msgid "Verifica e attivala sul tuo php.ini" -msgstr "" - -#: modules/aggiornamenti/upload_modules.php:18 +#: modules/aggiornamenti/upload_modules.php:20 msgid "Il file non è un archivio zip!" msgstr "" -#: modules/aggiornamenti/upload_modules.php:65 +#: modules/aggiornamenti/upload_modules.php:63 msgid "File di aggiornamento non riconosciuto!" msgstr "" -#: modules/aggiornamenti/upload_modules.php:120 +#: modules/aggiornamenti/upload_modules.php:116 msgid "File di installazione non valido!" msgstr "" diff --git a/modules/aggiornamenti/upload_modules.php b/modules/aggiornamenti/upload_modules.php index e22f0278d..a1ff26d91 100644 --- a/modules/aggiornamenti/upload_modules.php +++ b/modules/aggiornamenti/upload_modules.php @@ -13,19 +13,21 @@ $size = $_FILES['blob']['size']; $type = $_POST['type']; if (!extension_loaded('zip')) { - $_SESSION['errors'][] = tr('Estensione php_zip non caricata!').'
'.tr('Verifica e attivala sul tuo php.ini'); + $_SESSION['errors'][] = tr('Estensione zip non supportata!').'
'.tr('Verifica e attivala sul tuo file _FILE_', [ + '_FILE_' => 'php.ini' + ]); } elseif (!ends_with($filename, '.zip')) { $_SESSION['errors'][] = tr('Il file non è un archivio zip!'); } elseif (!empty($tmp) && is_file($tmp)) { $zip = new ZipArchive(); if ($zip->open($tmp)) { - $tmpdir = 'tmp/'; + $tmp_dir = $docroot.'/tmp'; // Controllo sulla cartella - directory($docroot.'/'.$tmpdir); + directory($tmp_dir); - $zip->extractTo($docroot.'/'.$tmpdir); + $zip->extractTo($tmp_dir); // AGGIORNAMENTO if ($type == 'update') { @@ -33,34 +35,30 @@ if (!extension_loaded('zip')) { $old_config = file_get_contents($docroot.'/config.inc.php'); // Aggiornamento del CORE - if (file_exists($docroot.'/'.$tmpdir.'/VERSION')) { + if (file_exists($tmp_dir.'/VERSION')) { //rename($docroot.'/VERSION', $docroot.'/VERSION.old'); // Copia i file dalla cartella temporanea alla root - copyr($docroot.'/'.$tmpdir, $docroot); + copyr($tmp_dir, $docroot); // Scollego l'utente per eventuali aggiornamenti del db Auth::logout(); - - redirect($rootdir, 'php'); } // Aggiornamento di un MODULO - elseif (file_exists($docroot.'/'.$tmpdir.'/MODULE')) { - $module_info = parse_ini_file($docroot.'/'.$tmpdir.'/MODULE', true); + elseif (file_exists($tmp_dir.'/MODULE')) { + $module_info = parse_ini_file($tmp_dir.'/MODULE', true); $module_name = $module_info['module_name']; $module_dir = $module_info['module_directory']; // Copio i file nella cartella "modules//" - copyr($docroot.'/'.$tmpdir, $docroot.'/modules/'.$module_dir.'/'); + copyr($tmp_dir, $docroot.'/modules/'.$module_dir.'/'); // Rinomino il file di versione per forzare l'aggiornamento //rename($docroot.'/VERSION_'.$module, $docroot.'/VERSION_'.$module.'.old'); // Scollego l'utente per eventuali aggiornamenti del db Auth::logout(); - - redirect($rootdir, 'php'); } else { $_SESSION['errors'][] = tr('File di aggiornamento non riconosciuto!'); } @@ -72,15 +70,15 @@ if (!extension_loaded('zip')) { // NUOVO MODULO elseif ($type == 'new') { // Se non c'è il file MODULE non é un modulo - if (is_file($docroot.'/'.$tmpdir.'/MODULE')) { + if (is_file($tmp_dir.'/MODULE')) { // Leggo le info dal file di configurazione del modulo - $module_info = parse_ini_file($docroot.'/'.$tmpdir.'/MODULE', true); + $module_info = parse_ini_file($tmp_dir.'/MODULE', true); $module_name = $module_info['module_name']; $module_version = $module_info['module_version']; $module_dir = $module_info['module_directory']; // Copio i file nella cartella "modules//" - copyr($docroot.'/'.$tmpdir, $docroot.'/modules/'.$module_dir.'/'); + copyr($tmp_dir, $docroot.'/modules/'.$module_dir.'/'); // Scollego l'utente per eventuali aggiornamenti del db Auth::logout(); @@ -111,8 +109,6 @@ if (!extension_loaded('zip')) { $query = 'INSERT INTO zz_modules(`name`, `title`, `directory`, `options`, `icon`, `version`, `compatibility`, `order`, `parent`, `default`, `enabled`) VALUES('.prepare($module_name).', '.prepare($module_name).', '.prepare($module_dir).', '.prepare($module_info['module_options']).', '.prepare($module_info['module_icon']).', '.prepare($module_version).', '.prepare($module_info['module_compatibility']).', "100", '.prepare($module_info['module_parent']).', 0, 1)'; $dbo->query($query); } - - redirect($rootdir, 'php'); } // File zip non contiene il file MODULE @@ -121,7 +117,8 @@ if (!extension_loaded('zip')) { } } - delete($docroot.'/'.$tmpdir); + delete($tmp_dir); + redirect($rootdir); } else { $_SESSION['errors'][] = checkZip($tmp); }