diff --git a/src/server/tools/general.js b/src/server/tools/general.js index d52bd98..94e9114 100755 --- a/src/server/tools/general.js +++ b/src/server/tools/general.js @@ -1967,6 +1967,22 @@ module.exports = { return query; }, + sanitizzaProjection: function (mioproj) { + + // mioproj = {valore: '$password'}; + + const COL_TO_REMOVE = ['$password', '$tokens', '$tokens.token', 'ipaddr']; + + for (let chiave in mioproj) { + // Elimina questa richiesta della password ! + if (COL_TO_REMOVE.includes(mioproj[chiave])) { + delete mioproj[chiave]; + } + } + + return mioproj; + }, + getLookup: function (params, num, pass_proj, proj_add) { const query = []; @@ -1998,6 +2014,7 @@ module.exports = { if (params.lk_tab) { let proj = params.lk_proj; + proj = this.sanitizzaProjection(proj); if (!!pass_proj) { proj = pass_proj; } @@ -2752,6 +2769,8 @@ module.exports = { // NUOVA VERSIONE let proj = params.lookup2 ? params.lookup2.lk_proj : null; + proj = this.sanitizzaProjection(proj); + if (params.proj0) { query.push({ $project: params.proj0 }); } @@ -3050,12 +3069,17 @@ module.exports = { if (ris) { if (params.table === 'users') { for (const myrec of ris.rows) { - myrec.password = '**********'; + if (myrec.ipaddr) + myrec.ipaddr = ''; + if (myrec.tokens) + myrec.tokens = []; + if (myrec.password) + myrec.password = ''; } } else if (params.table === 'mygroups') { for (const myrec of ris.rows) { if (myrec.pwd_cryp) - myrec.pwd_cryp = '**********'; + myrec.pwd_cryp = ''; } } @@ -4927,7 +4951,7 @@ module.exports = { * Funzione per scaricare dati GeoJSON dei comuni d'Italia e salvarli localmente. * @param {string} url - L'URL dal quale scaricare i dati GeoJSON. * @param {string} outputPath - Il percorso del file in cui salvare i dati GeoJSON. - */ + */ async downloadGeoJSON(url, outputPath) { try { // Effettua una richiesta GET all'URL specificato per scaricare i dati.