diff --git a/.env.development b/.env.development
index b7b5087..b85e237 100644
--- a/.env.development
+++ b/.env.development
@@ -1,11 +1,11 @@
-DATABASE=test_PiuCheBuono
+DATABASE=test_FreePlanet
UDB=paofreeplanet
PDB=mypassword@1A
SEND_EMAIL=0
SEND_EMAIL_ORDERS=1
PORT=3000
-appTelegram_TEST=["1","17","18"]
-appTelegram=["1","17","18"]
+appTelegram_TEST=["1","13"]
+appTelegram=["1","13"]
DOMAIN=mongodb://localhost:27017/
AUTH_MONGODB=1
MONGODB_USER=admin
diff --git a/filelog.txt b/filelog.txt
index dfb5a1d..65b8e36 100644
--- a/filelog.txt
+++ b/filelog.txt
@@ -166,3 +166,5 @@ https://t.me/riso_canale/739
in attesa di riscontri, salutiamo! 🍚💚
il gruppo dei facilitatori territoriali riso
+
+Mer 03/07 ORE 13:13: USER [paoloar77]: ciao
diff --git a/logtrans.txt b/logtrans.txt
index 1b1dc3c..783cfe2 100644
--- a/logtrans.txt
+++ b/logtrans.txt
@@ -204,4 +204,44 @@ dsadas1: 1.00 RIS]
Ven 31/05 ORE 11:59: [Circuito RIS Rimini]: Inviate Monete da paoloar77 a dsadas1 2 RIS [causale: ]
Saldi:
paoloar77: -4.00 RIS]
-dsadas1: 3.00 RIS]
\ No newline at end of file
+dsadas1: 3.00 RIS]
+Mer 03/07 ORE 12:44: [Circuito RIS Bologna]: Inviate Monete da paoloar77 a SuryaArena 1 RIS [causale: ]
+Saldi:
+paoloar77: 35.00 RIS]
+SuryaArena: 1.00 RIS]
+Mer 03/07 ORE 12:53: [Circuito RIS Bologna]: Inviate Monete da paoloar77 a SuryaArena 1 RIS [causale: ]
+Saldi:
+paoloar77: 34.00 RIS]
+SuryaArena: 2.00 RIS]
+Mer 03/07 ORE 12:53: [Circuito RIS Bologna]: Inviate Monete da paoloar77 a SuryaArena 1 RIS [causale: ]
+Saldi:
+paoloar77: 33.00 RIS]
+SuryaArena: 3.00 RIS]
+Mer 03/07 ORE 12:59: [Circuito RIS Bologna]: Inviate Monete da paoloar77 a SuryaArena 1 RIS [causale: ]
+Saldi:
+paoloar77: 30.00 RIS]
+SuryaArena: 6.00 RIS]
+Mer 03/07 ORE 13:01: [Circuito RIS Bologna]: Inviate Monete da paoloar77 a SuryaArena 1 RIS [causale: ]
+Saldi:
+paoloar77: 29.00 RIS]
+SuryaArena: 7.00 RIS]
+Mer 03/07 ORE 13:09: [Circuito RIS Bologna]: Inviate Monete da paoloar77 a SuryaArena 1 RIS [causale: ]
+Saldi:
+paoloar77: 28.00 RIS]
+SuryaArena: 8.00 RIS]
+Mer 03/07 ORE 13:13: [Circuito RIS Bologna]: Inviate Monete da paoloar77 a SuryaArena 1 RIS [causale: ]
+Saldi:
+paoloar77: 27.00 RIS]
+SuryaArena: 9.00 RIS]
+Mer 03/07 ORE 13:14: [Circuito RIS Bologna]: Inviate Monete da paoloar77 a SuryaArena 5 RIS [causale: ]
+Saldi:
+paoloar77: 22.00 RIS]
+SuryaArena: 14.00 RIS]
+Mer 03/07 ORE 13:16: [Circuito RIS Bologna]: Inviate Monete da pontiUmani (paoloar77) a SuryaArena 1 RIS [causale: ]
+Saldi:
+pontiUmani (paoloar77): -346.00 RIS]
+SuryaArena: 15.00 RIS]
+Mer 03/07 ORE 13:20: [Circuito RIS Bologna]: Inviate Monete da pontiUmani (paoloar77) a SuryaArena 3 RIS [causale: ]
+Saldi:
+pontiUmani (paoloar77): -349.00 RIS]
+SuryaArena: 18.00 RIS]
\ No newline at end of file
diff --git a/pcb_agg_server.js.sh b/pcb_agg_server.js.sh
new file mode 100755
index 0000000..7ea6547
--- /dev/null
+++ b/pcb_agg_server.js.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+source ./.env.prod.pcb
+
+echo "Sincronizzazione in corso PCB PRODUZIONE ... /var/www/$SERVERDIR_WEBSITE/"
+echo ""
+
+rsync -avz -e 'ssh -p 8822' src pcbuser@pcb:/var/www/$SERVERDIR_WEBSITE/
+
+echo "Sincronizzazione TERMINATA! - SERVER PCB!"
diff --git a/src/server/locales/it.json b/src/server/locales/it.json
index e83524b..92849cf 100644
--- a/src/server/locales/it.json
+++ b/src/server/locales/it.json
@@ -85,16 +85,16 @@
"CIRCUIT_SENDCOINSREQ_FROM_GROUP_TO_USER": "il conto %s '%s' (%s) sta inviando %s %s a %s sul '%s'.",
"CIRCUIT_SENDCOINSREQ_FROM_GROUP_TO_YOU": "il conto %s '%s' (%s) ti sta inviando %s %s sul '%s'",
"CIRCUIT_SENDCOINSREQ_FROM_GROUP_TO_GROUP": "il conto %s '%s' (%s) sta inviando %s %s al conto %s '%s' sul '%s'.",
- "CIRCUIT_SENDCOINSREQ_TO_ME": "Stai inviando %s %s a %s sul '%s'. \nIl destinatario deve accettare la transazione.",
- "CIRCUIT_SENDCOINSREQ_TO_GROUP": "Stai inviando %s %s al Conto %s '%s' sul '%s'. \nIl destinatario deve accettare la transazione.",
- "ID_CIRCUIT_COINS_ACCEPTED_FROM_GROUP_TO_YOU": "%s %s accettati dal Conto %s '%s' sul '%s' (%s) .",
- "ID_CIRCUIT_COINS_ACCEPTED_FROM_GROUP_TO_GROUP": "il conto %s '%s' (%s) ha accettato %s %s dal conto %s '%s' sul '%s' (%s).",
- "ID_CIRCUIT_COINS_ACCEPTED_FROM_ME_TO_GROUP": "il conto %s '%s' (%s) ha accettato %s %s da %s sul '%s'.",
- "ID_CIRCUIT_COINS_ACCEPTED_FROM_ME_TO_YOU": "%s %s accettati da %s sul '%s'.",
- "ID_CIRCUIT_COINS_ACCEPTED": "%s %s accettati da %s sul '%s'.",
+ "CIRCUIT_SENDCOINSREQ_TO_ME": "Stai inviando %s %s a %s sul '%s'.",
+ "CIRCUIT_SENDCOINSREQ_TO_GROUP": "Stai inviando %s %s al Conto %s '%s' sul '%s'.",
+ "ID_CIRCUIT_COINS_ACCEPTED_FROM_GROUP_TO_YOU": "Hai ricevuto %s %s dal Conto %s '%s' sul '%s' (%s) .",
+ "ID_CIRCUIT_COINS_ACCEPTED_FROM_GROUP_TO_GROUP": "il conto %s '%s' (%s) ha ricevuto %s %s dal conto %s '%s' sul '%s' (%s).",
+ "ID_CIRCUIT_COINS_ACCEPTED_FROM_ME_TO_GROUP": "il conto %s '%s' (%s) ha ricevuto %s %s da %s sul '%s'.",
+ "ID_CIRCUIT_COINS_ACCEPTED_FROM_ME_TO_YOU": "Hai ricevuto %s %s da %s sul '%s'.",
+ "ID_CIRCUIT_COINS_ACCEPTED": "%s %s ricevuti da %s sul '%s'.",
"SALDO_UPDATE": "[Saldo %s %s sul '%s']",
"SALDO_UPDATE_WHO": "[Saldo %s %s %s sul '%s']",
- "ID_CIRCUIT_COINS_ACCEPTED_TO_ME": "%s %s sono stati accettati da %s sul '%s'.",
+ "ID_CIRCUIT_COINS_ACCEPTED_TO_ME": "Hai inviato %s %s a %s sul '%s'.",
"ID_CIRCUIT_COINS_REFUSED": "%s %s rifiutati da %s sul '%s'.",
"ID_CIRCUIT_COINS_REFUSED_TO_ME": "%s %s rifiutati da %s sul '%s'.",
"CIRCUIT_AMOUNT_EXCEED_FIDO": "L'importo supera la quantità massima concessa per %s",
diff --git a/src/server/models/sendnotif.js b/src/server/models/sendnotif.js
index 2e4f5cd..4f03db9 100755
--- a/src/server/models/sendnotif.js
+++ b/src/server/models/sendnotif.js
@@ -535,7 +535,7 @@ sendNotifSchema.statics.getDescrAndLinkByRecNotif = async function (recnotif, us
} else {
newdescr = i18n.__('ID_CIRCUIT_COINS_ACCEPTED_FROM_GROUP_TO_YOU', qty, symbol, strtipocontoOrig, myorig, circuitname, username_action)
- + `\n` + i18n.__('SALDO_UPDATE', recnotif.paramsObj.extrarec.saldoDest, symbol);
+ + `\n` + i18n.__('SALDO_UPDATE', recnotif.paramsObj.extrarec.saldoDest, symbol, circuitname);
}
} else {
if (groupOComdest) {
diff --git a/src/server/models/user.js b/src/server/models/user.js
index 7ce7c2f..e4649dd 100755
--- a/src/server/models/user.js
+++ b/src/server/models/user.js
@@ -3222,27 +3222,28 @@ UserSchema.statics.setCircuitCmd = async function (idapp, usernameOrig, circuitn
await tools.sendNotificationByCircuit(idapp, usernameOrig, circuitname, cmd, false, true, username_action, extrarec);
} else if (cmd === shared_consts.CIRCUITCMD.SENDCOINS_REQ) {
+ const onlycheck = false;
- outres = await Circuit.sendCoins(true, idapp, usernameOrig, extrarec);
+ outres = await Circuit.sendCoins(onlycheck, idapp, usernameOrig, extrarec);
if (outres.cansend) {
// Invia una notifica di moneta alla persona
- const out = await tools.sendNotificationByCircuit(idapp, usernameOrig, circuitname, cmd, false, true, username_action,
- extrarec);
- if (out)
- outres.result = out.ris;
+ //const out = await tools.sendNotificationByCircuit(idapp, usernameOrig, circuitname, cmd, false, true, username_action,
+ // extrarec);
+ //if (out)
+ // outres.result = out.ris;
} else {
outres.cansend = false;
}
ris = true;
- } else if ((cmd === shared_consts.CIRCUITCMD.SENDCOINS_ACCEPT) || (cmd === shared_consts.CIRCUITCMD.SENDCOINS_REFUSE)) {
+ // } else if ((cmd === shared_consts.CIRCUITCMD.SENDCOINS_ACCEPT) || (cmd === shared_consts.CIRCUITCMD.SENDCOINS_REFUSE)) {
// Before to accept, I see if it's already set !
- outres = {
+ /*outres = {
cansend: false,
errormsg: '',
- };
+ }; */
let outcheck = outres;
@@ -3254,22 +3255,27 @@ UserSchema.statics.setCircuitCmd = async function (idapp, usernameOrig, circuitn
risStatus = i18n.__('STATUS_REFUSED');
}
// if (!await SendNotif.checkIfCoinsAlreadySent(extrarec.notifId)) {
- if (!await Movement.checkIfCoinsAlreadySent(extrarec.notifId)) {
+ //if (!await Movement.checkIfCoinsAlreadySent(extrarec.notifId)) {
+ if (true) {
if (cmd === shared_consts.CIRCUITCMD.SENDCOINS_ACCEPT) {
- outcheck = await Circuit.sendCoins(true, idapp, usernameOrig, extrarec);
+ //outcheck = await Circuit.sendCoins(true, idapp, usernameOrig, extrarec);
+ outcheck.cansend = true;
+ outres.cansend = true;
} else {
outcheck.cansend = true;
outres.cansend = true;
}
- if (cmd === shared_consts.CIRCUITCMD.SENDCOINS_ACCEPT && outcheck.cansend) {
+ cmd = shared_consts.CIRCUITCMD.SENDCOINS_ACCEPT;
+
+ /*if (cmd === shared_consts.CIRCUITCMD.SENDCOINS_ACCEPT && outcheck.cansend) {
if (!await Movement.checkIfCoinsAlreadySent(extrarec.notifId)) {
outres = await Circuit.sendCoins(false, idapp, usernameOrig, extrarec);
} else {
outcheck.cansend = false; //GIA INVIATO
}
- }
+ } */
if (outcheck.cansend) {
// Invia una notifica di moneta (accettata o rifiutata) alla persona
diff --git a/src/server/server.js b/src/server/server.js
index ab3b77a..05278f5 100755
--- a/src/server/server.js
+++ b/src/server/server.js
@@ -12,6 +12,8 @@ const cors = require('cors');
// console.log(" 2) fs");
const fs = require('fs');
+var https = require('https');
+
const NUOVO_METODO_TEST = true;
const server_constants = require('./tools/server_constants');
@@ -30,6 +32,8 @@ const path = require('path');
const cron = require('node-cron');
console.log('Starting mongoose...');
+const tls = require('tls');
+
require('./db/mongoose');
// console.log('Starting pem...');
@@ -250,64 +254,111 @@ myLoad().then(ris => {
const keyStream = path.resolve(`./${process.env.PATH_CERT_KEY}`);
const certificateStream = path.resolve(`./${process.env.PATH_SERVER_CRT}`);
- const privateKey = fs.readFileSync(keyStream, "utf8");
- const certificate = fs.readFileSync(certificateStream, "utf8");
+ let privateKey = fs.readFileSync(keyStream, "utf8");
+ let certificate = fs.readFileSync(certificateStream, "utf8");
+ let credentials = null;
+
+
+ let domain = 'piuchebuono.app';
+
+ const keyfile = '/etc/letsencrypt/live/' + domain + '/privkey.pem';
+ const certfile = '/etc/letsencrypt/live/' + domain + '/fullchain.pem';
+
+ arrSecureContext = ['piuchebuono.app', 'gruppomacro.app'];
+
+ for (let i = 0; i < arrSecureContext.length; i++) {
+ let secureContext = tls.createSecureContext({
+ key: fs.readFileSync('/etc/letsencrypt/live/' + arrSecureContext[i] + '/privkey.pem'),
+ cert: fs.readFileSync('/etc/letsencrypt/live/' + arrSecureContext[i] + '/fullchain.pem')
+ // ca: fs.readFileSync('../path_to_certificate_authority_bundle.ca-bundle1', 'utf8'), // this ca property is optional
+ });
+ credentials = {
+ SNICallback: function (domain, cb) {
+ if (secureContext) {
+ if (cb) {
+ cb(null, secureContext);
+ } else {
+ // compatibility for older versions of node
+ return secureContext;
+ }
+ } else {
+ }
+ }
+ }
+ }
+
+ let secureContext = {
+ 'piuchebuono.app': tls.createSecureContext({
+ key: fs.readFileSync('/etc/letsencrypt/live/piuchebuono.app/privkey.pem'),
+ cert: fs.readFileSync('/etc/letsencrypt/live/piuchebuono.app/fullchain.pem')
+ // ca: fs.readFileSync('../path_to_certificate_authority_bundle.ca-bundle1', 'utf8'), // this ca property is optional
+ }),
+ 'gruppomacro.app': tls.createSecureContext({
+ key: fs.readFileSync('/etc/letsencrypt/live/gruppomacro.app/privkey.pem'),
+ cert: fs.readFileSync('/etc/letsencrypt/live/gruppomacro.app/fullchain.pem')
+ // ca: fs.readFileSync('../path_to_certificate_authority_bundle.ca-bundle1', 'utf8'), // this ca property is optional
+ }),
+ }
if (NUOVO_METODO_TEST) {
credentials = {
+ SNICallback: function (domain, cb) {
+ if (secureContext[domain]) {
+ if (cb) {
+ cb(null, secureContext[domain]);
+ } else {
+ // compatibility for older versions of node
+ return secureContext[domain];
+ }
+ } else {
+ throw new Error('No keys/certificates for domain requested');
+ }
+ },
+ // must list a default key and cert because required by tls.createServer()
key: privateKey,
cert: certificate,
- };
- } else {
- // NON USATO !
- credentials = {
- key: privateKey,
- cert: certificate,
- ca: [
- fs.readFileSync(process.env.PATH_SSL_ROOT_PEM, 'utf8'),
- fs.readFileSync(process.env.PATH_SSL_CHAIN_PEM, 'utf8'),
- ],
- };
- }
+ }
- var https = require('https');
+ /*} else {
+ // NON USATO !
+ credentials = {
+ key: privateKey,
+ cert: certificate,
+ ca: [
+ fs.readFileSync(process.env.PATH_SSL_ROOT_PEM, 'utf8'),
+ fs.readFileSync(process.env.PATH_SSL_CHAIN_PEM, 'utf8'),
+ ],
+ };
+}
+
+/*} else {
+*/
+ }
+ }
+
+ if (process.env.HTTPS_LOCALHOST === "true") {
+ privateKey = fs.readFileSync(process.env.PATH_CERT_KEY, 'utf8');
+ certificate = fs.readFileSync(process.env.PATH_SERVER_CRT, 'utf8');
+ credentials = {
+ key: privateKey,
+ cert: certificate,
+ ciphers: 'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES256-SHA384',
+ honorCipherOrder: true,
+ secureProtocol: 'TLSv1_2_method',
+ };
+
} else {
- if (process.env.HTTPS_LOCALHOST === "true") {
- var privateKey = fs.readFileSync(process.env.PATH_CERT_KEY, 'utf8');
- var certificate = fs.readFileSync(process.env.PATH_SERVER_CRT, 'utf8');
- credentials = {
- key: privateKey,
- cert: certificate,
- ciphers: 'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES256-SHA384',
- honorCipherOrder: true,
- secureProtocol: 'TLSv1_2_method',
- };
- var https = require('https');
-
- } else {
- var http = require('http');
- }
+ var http = require('http');
}
if ((process.env.NODE_ENV === 'production') ||
(process.env.NODE_ENV === 'test') || process.env.HTTPS_LOCALHOST === "true") {
- if (false) {
- /*pem.createCertificate({ days: 1, selfSigned: true }, (err, keys) => {
- if (err) {
- throw err
- }
- const httpsServer = https.createServer({ key: keys.clientKey, cert: keys.certificate }, (req, res) => {
- res.end('o hai!')
- }).listen(port)
- }) */
- } else {
- const httpsServer = https.createServer(credentials, app);
+ const httpsServer = https.createServer(credentials, app);
- console.log('httpsServer: port ', port);
- httpsServer.listen(port);
- }
+ console.log('httpsServer: port ', port);
+ httpsServer.listen(port);
} else {
console.log('httpServer: port ', port);
const httpServer = http.createServer(app);
@@ -316,8 +367,11 @@ myLoad().then(ris => {
mystart();
+
});
+
+
// app.use(throttle(1024 * 128)); // throttling bandwidth
// app.use((req, res, next) => {
@@ -447,6 +501,10 @@ async function mycron_everyday() {
}
}
+
+ // Crea un file con all'interno il nome del dominio per ogni app:
+ await tools.createFileWithDomainName();
+
} catch (e) {
console.error('mycron_everyday: ', e);
}
@@ -549,9 +607,9 @@ async function inizia() {
await Site.createFirstUserAdmin();
/*const {Circuit} = require('./models/circuit');
-
+
await Circuit.setDeperimentoOff();
-
+
*/
diff --git a/src/server/tools/general.js b/src/server/tools/general.js
index 675a159..3c9bdc4 100755
--- a/src/server/tools/general.js
+++ b/src/server/tools/general.js
@@ -1125,10 +1125,10 @@ module.exports = {
typeid = shared_consts.TypeNotifs.ID_CIRCUIT_COINS_ACCEPTED;
} else if (cmd === shared_consts.CIRCUITCMD.SENDCOINS_ACCEPT_SENT) {
typeid = shared_consts.TypeNotifs.ID_CIRCUIT_COINS_ACCEPTED_SENT;
- } else if (cmd === shared_consts.CIRCUITCMD.SENDCOINS_REFUSE) {
- typeid = shared_consts.TypeNotifs.ID_CIRCUIT_COINS_REFUSED;
- } else if (cmd === shared_consts.CIRCUITCMD.SENDCOINS_REFUSE_SENT) {
- typeid = shared_consts.TypeNotifs.ID_CIRCUIT_COINS_REFUSED_SENT;
+ // } else if (cmd === shared_consts.CIRCUITCMD.SENDCOINS_REFUSE) {
+ // typeid = shared_consts.TypeNotifs.ID_CIRCUIT_COINS_REFUSED;
+ //} else if (cmd === shared_consts.CIRCUITCMD.SENDCOINS_REFUSE_SENT) {
+ // typeid = shared_consts.TypeNotifs.ID_CIRCUIT_COINS_REFUSED_SENT;
}
}
@@ -5162,8 +5162,38 @@ module.exports = {
console.error('Errore durante la pulizia dell\'HTML:', error);
throw error; // Oppure, gestisci l'errore come preferisci
}
- }
+ },
+ getHostWithNoHttporHttps(url) {
+ try {
+ const parsedUrl = new URL(url);
+ return parsedUrl.host;
+ } catch (error) {
+ console.error('Errore durante la pulizia dell\'HTML:', error);
+ throw error; // Oppure, gestisci l'errore come preferisci
+ }
+ },
+
+ // Crea un file con all'interno il nome del dominio per ogni app:
+ createFileWithDomainName() {
+ const arrapps = getApps();
+
+ const filename = server_constants.FILECONFIG_SERVER;
+
+ for (const app of arrapps) {
+ fs.writeFile(filename, this.getHostWithNoHttporHttps(app.host), function (err) {
+ if (err) {
+ console.log(err);
+ }
+ });
+ if (app.host_test) {
+ fs.writeFile(filename, this.getHostWithNoHttporHttps(app.host_test), function (err) {
+ if (err) {
+ console.log(err);
+ }
+ });
+ }
+ }
+ },
- // Scriviere qui SOPRA le funzioni
};
diff --git a/src/server/tools/server_constants.js b/src/server/tools/server_constants.js
index bcf32f7..1605807 100755
--- a/src/server/tools/server_constants.js
+++ b/src/server/tools/server_constants.js
@@ -120,6 +120,8 @@ module.exports = Object.freeze({
'surname',
'news_on',
'profile',
- ]
+ ],
+
+ FILECONFIG_SERVER: 'lists_serverconfig.txt',
});