diff --git a/src/server/models/bot.js b/src/server/models/bot.js
index 559c2a5..7d8e2e8 100755
--- a/src/server/models/bot.js
+++ b/src/server/models/bot.js
@@ -52,7 +52,7 @@ const BotSchema = new Schema({
});
BotSchema.statics.getFieldsForSearch = function() {
- return [];
+ return [{ field: 'label', type: tools.FieldType.string }]
};
BotSchema.statics.executeQueryTable = function(idapp, params) {
diff --git a/src/server/router/index_router.js b/src/server/router/index_router.js
index 23223b8..7f1e5e9 100755
--- a/src/server/router/index_router.js
+++ b/src/server/router/index_router.js
@@ -330,12 +330,13 @@ router.post('/settable', authenticate, (req, res) => {
const mytable = getTableByTableName(params.table);
const mydata = req.body.data;
+ const fieldsvalue = {'ALL': 1};
+
mydata.idapp = req.user.idapp;
if ((!User.isAdmin(req.user.perm) && !User.isManager(req.user.perm) &&
!User.isEditor(req.user.perm) && !User.isTutor(req.user.perm)) &&
- (req.user._id.toString() !== id) &&
- !tools.ModificheConsentite(mydata.table, fieldsvalue)) {
+ !tools.ModificheConsentite(params.table, fieldsvalue)) {
// If without permissions, exit
return res.status(404).
send({code: server_constants.RIS_CODE_ERR_UNAUTHORIZED, msg: ''});
diff --git a/src/server/server.js b/src/server/server.js
index 090b5ce..dc4f8c7 100755
--- a/src/server/server.js
+++ b/src/server/server.js
@@ -51,6 +51,8 @@ const tools = require('./tools/general');
require('./models/cfgserver');
+const shared_consts = require('./tools/shared_nodejs');
+
var mongoose = require('mongoose').set('debug', false)
mongoose.set('debug', process.env.DEBUG);
@@ -58,6 +60,7 @@ mongoose.set('debug', process.env.DEBUG);
const cfgserver = mongoose.model('cfgserver');
const { ObjectID } = require('mongodb');
+const printf = require('util').format;
myLoad().then(ris => {
@@ -420,18 +423,33 @@ async function faitest() {
console.log('ris', ris);
}
+ const {User} = require('./models/user');
+
if (false) {
- // const {User} = require('./models/user');
- /*
- const user = await User.findOne({
+ let myuser = await User.findOne({
idapp: 12,
username: 'paoloar77',
});
- await sendemail.sendEmail_Registration('it', 'paolo@freeplanet.app', user,
+ const langdest = 'it';
+
+ telegrambot.askConfirmationUserRegistration(myuser.idapp, shared_consts.CallFunz.REGISTRATION, myuser, 'paoloar773', langdest);
+
+ }
+
+
+ if (false) {
+
+
+ const user = await User.findOne({
+ idapp: 12,
+ username: 'paolotest1',
+ });
+
+ await sendemail.sendEmail_Registration('it', 'paolo@arcodiluce.it', user,
'12', '');
- */
+
}
diff --git a/src/server/telegram/telegrambot.js b/src/server/telegram/telegrambot.js
index 1300ae0..939dc36 100755
--- a/src/server/telegram/telegrambot.js
+++ b/src/server/telegram/telegrambot.js
@@ -334,6 +334,11 @@ const InlineZoomConferma = {
NON_CONFERMA_ZOOM_PRESENZA: 'nonconf_pres',
};
+const InlineConferma = {
+ RISPOSTA_SI: 'r_s',
+ RISPOSTA_NO: 'r_n',
+};
+
const SendMsgCmd = [
CONTA_SOLO,
RICEVI_EMAIL,
@@ -452,15 +457,13 @@ const txt = {
MSG_ERR_UNKNOWN_VERIFY_CODE: 'Errore durante il salvataggio sul Server. Riprovare piú tardi',
MSG_EXIT_TELEGRAM: 'L\'account è stato ora scollegato da questo Telegram BOT.',
MSG_APORTADOR_USER_REGISTERED: emo.FIRE + ' Si è appena Registrato "%s',
- MSG_APORTADOR_ASK_CONFIRM: emo.QUESTION_MARK +
- ' Si vuole confermare di Conoscere "%s ?',
- MSG_APORTADOR_CONFIRMED: emo.SUN + ' %s è stato confermato correttamente!',
- MSG_APORTADOR_DEST_CONFIRMED: emo.SUN +
- ' Sei stato Verificato correttamente da %s!',
+ MSG_APORTADOR_ASK_CONFIRM: '🆕💥 🧍♂️ Abilita Nuova Registrazione: %s',
+ MSG_APORTADOR_CONFIRMED: '✅ %s è stato Abilitato correttamente!',
+ MSG_APORTADOR_DEST_CONFIRMED: '✅ Sei stato Abilitato correttamente da %s!',
MSG_APORTADOR_DEST_NOT_CONFIRMED: emo.EXCLAMATION_MARK +
- ' Ci dispiace ma non sei stato Verificato correttamente dal tuo invitante %s. Contattalo se lo conosci, oppure trova un altro invitante !',
+ '🚫 Ci dispiace ma non sei stato Verificato correttamente dal tuo invitante %s.
Contattalo per farti abilitare !',
MSG_APORTADOR_NOT_CONFIRMED: emo.EXCLAMATION_MARK +
- ' %s Non è stato Verificato !',
+ '🚫 %s Non è stato Abilitato !',
MSG_ISCRITTO_CONACREIS: emo.FIRE + ' Si è appena Iscritto al Conacreis "%s"',
MSG_MSG_SENT: emoji.get('envelope') + ' Messaggi Inviati !',
MSG_MSG_TOSENT: emoji.get('envelope') + ' Messaggi da Inviare',
@@ -620,7 +623,7 @@ module.exports = {
getFormDaMostrare: function(idapp, myfunc, myuser) {
- FormDaMostrare = null;
+ let FormDaMostrare = null;
const cl = getclTelegByidapp(idapp);
@@ -629,13 +632,14 @@ module.exports = {
{
text: 'Conferma Presenza Zoom',
// callback_data: { action: InlineZoomConferma.CONFERMA_ZOOM_PRESENZA, username: myuser.username }
- callback_data: InlineZoomConferma.CONFERMA_ZOOM_PRESENZA + '|' +
+ callback_data: InlineZoomConferma.CONFERMA_ZOOM_PRESENZA + tools.SEP +
myuser.username,
},
{
text: 'Annulla Presenza Zoom',
// callback_data: { action: InlineZoomConferma.NON_CONFERMA_ZOOM_PRESENZA, username: myuser.username }
- callback_data: InlineZoomConferma.NON_CONFERMA_ZOOM_PRESENZA + '|' +
+ callback_data: InlineZoomConferma.NON_CONFERMA_ZOOM_PRESENZA +
+ tools.SEP +
myuser.username,
},
]);
@@ -684,9 +688,14 @@ module.exports = {
await this.sendMsgTelegramToTheManagers(mylocalsconf.idapp, addtext + text);
if (phase === this.phase.REGISTRATION) {
+ await this.askConfirmationUserRegistration(mylocalsconf.idapp, shared_consts.CallFunz.REGISTRATION,
+ mylocalsconf.user, userdest, langdest);
+ }
+
+ /*
// Invia richiesta allo Sponsor
const domanda = printf(getstr(langdest, 'MSG_APORTADOR_ASK_CONFIRM'),
- `${mylocalsconf.user.name + ' ' + mylocalsconf.user.surname}`);
+ `${mylocalsconf.user.name + ' ' + mylocalsconf.user.surname + '(' + mylocalsconf.user.username + ')' + 'email: ' + mylocalsconf.user.email }`);
const msgyes = printf(getstr(langdest, 'MSG_APORTADOR_CONFIRMED'),
`${mylocalsconf.user.name + ' ' + mylocalsconf.user.surname}`);
const msgNo = printf(getstr(langdest, 'MSG_APORTADOR_NOT_CONFIRMED'),
@@ -707,8 +716,7 @@ module.exports = {
msgDestNo, mylocalsconf.user.username);
}
- }
-
+ */
},
notifyIscrizioneToTelegram: async function(phase, mylocalsconf) {
@@ -1083,7 +1091,7 @@ module.exports = {
},
sendMsgTelegram: async function(
- idapp, username, text, alsotomanagers, username_mitt) {
+ idapp, username, text, alsotomanagers = false, username_mitt = '') {
const {User} = require('../models/user');
const teleg_id = await User.TelegIdByUsername(idapp, username);
@@ -1111,6 +1119,9 @@ module.exports = {
sendMsgTelegramByIdTelegram: async function(
idapp, idtelegram, text, message_id, chat_id, ripr_menuPrec,
MyForm = null) {
+
+ console.log('sendMsgTelegramByIdTelegram', text);
+
if (!idtelegram)
return;
@@ -1128,7 +1139,48 @@ module.exports = {
const cl = getclTelegByidapp(idapp);
if (cl) {
- return await cl.updateMenuBot();
+ return cl.updateMenuBot();
+ }
+
+ },
+
+ askConfirmationUserRegistration: async function(idapp, myfunc, myuser, userDest = '', langdest = '') {
+
+ const cl = getclTelegByidapp(idapp);
+
+ try {
+
+ let keyb = null;
+ let domanda = '';
+
+ if (myfunc === shared_consts.CallFunz.REGISTRATION) {
+ domanda = printf(getstr(langdest, 'MSG_APORTADOR_ASK_CONFIRM'),
+ `
${myuser.name + ' ' + myuser.surname + ' (' + myuser.username +
+ ')
Email: ' + myuser.email}`);
+
+ keyb = cl.getInlineKeyboard(myuser.lang, [
+ {
+ text: '✅ Abilita ' + myuser.username,
+ callback_data: InlineConferma.RISPOSTA_SI +
+ shared_consts.CallFunz.REGISTRATION + tools.SEP +
+ myuser.username + tools.SEP + userDest,
+ },
+ {
+ text: '🚫 Rifiuta ' + myuser.username,
+ callback_data: InlineConferma.RISPOSTA_NO +
+ shared_consts.CallFunz.REGISTRATION + tools.SEP +
+ myuser.username + tools.SEP + userDest,
+ },
+ ]);
+ }
+
+ // INvia Msg
+ const teleg_id = await User.TelegIdByUsername(idapp, userDest);
+ await this.sendMsgTelegramByIdTelegram(myuser.idapp, teleg_id, domanda,
+ undefined, undefined, true, keyb);
+
+ } catch (e) {
+ console.error('Error askConfirmationUserRegistration', e);
}
},
@@ -1208,6 +1260,19 @@ async function local_sendMsgTelegramToTheManagers(
}
+async function local_sendMsgTelegram(idapp, username, text) {
+
+ const teleg_id = await User.TelegIdByUsername(idapp, username);
+ const cl = getclTelegByidapp(idapp);
+ let ris = null;
+ if (cl && teleg_id) {
+ ris = await cl.sendMsg(teleg_id, text);
+ }
+
+ return ris;
+
+}
+
function getstr(lang, key, param1) {
let mystr = '';
@@ -1298,7 +1363,6 @@ class Telegram {
if (rec.user)
rec.status = Status.VERIFIED;
} else {
- let prova = 1;
// await this.sendMsg(msg.chat.id, getstr(this.getlang(msg), 'MSG_ASK_USERNAME_BO', tools.getNomeAppByIdApp(this.idapp)), MenuNoLogin);
}
@@ -2349,8 +2413,7 @@ class Telegram {
async setCmdToUsername(rec, username, cmd_to_set, valuebool) {
if (cmd_to_set === Cmd.VALIDATE_REGISTRATION) {
- return await User.setVerifiedByAportador(rec.user.idapp, username,
- valuebool);
+ return User.setVerifiedByAportador(rec.user.idapp, username, valuebool);
}
}
@@ -2466,12 +2529,13 @@ class Telegram {
FormDaMostrare = this.getInlineKeyboard(lang, [
{
text: Menu[lang].SI,
- callback_data: InlineCmd.VOGLIO_IMBARCARMI + '|' +
+ callback_data: InlineCmd.VOGLIO_IMBARCARMI + tools.SEP +
utente.username,
},
{
text: Menu[lang].NO,
- callback_data: InlineCmd.NON_VOGLIO_IMBARCARMI + '|' +
+ callback_data: InlineCmd.NON_VOGLIO_IMBARCARMI +
+ tools.SEP +
utente.username,
},
]);
@@ -3266,17 +3330,19 @@ if (true) {
let dataarr = [];
let data = {
- action: 0,
+ action: '',
username: '',
+ userDest: '',
};
const datastr = callbackQuery.data;
if (!!datastr) {
- dataarr = datastr.split('|');
+ dataarr = datastr.split(tools.SEP);
if (!!dataarr) {
data = {
action: dataarr[0],
- username: dataarr[1],
+ username: dataarr[1] ? dataarr[1] : '',
+ userDest: dataarr[2] ? dataarr[2] : '',
};
}
}
@@ -3291,6 +3357,10 @@ if (true) {
const rec = myclTelegram.getRecInMem(msg);
const user = await User.getUserShortDataByUsername(idapp,
data.username);
+ const userDest = data.userDest
+ ? await User.getUserShortDataByUsername(idapp, data.userDest)
+ : null;
+
if (!!rec) {
if (!!user) {
if (data.action === InlineCmd.VOGLIO_IMBARCARMI) {
@@ -3323,6 +3393,35 @@ if (true) {
await User.setZoomPresenza(user.idapp, user._id, false);
+ } else if (data.action === InlineConferma.RISPOSTA_SI +
+ shared_consts.CallFunz.REGISTRATION) {
+ await myclTelegram.setCmdToUsername(rec, data.username,
+ Cmd.VALIDATE_REGISTRATION, true);
+
+ const msgOrig = printf(
+ getstr(userDest.lang, 'MSG_APORTADOR_DEST_CONFIRMED'),
+ `${userDest.name + ' ' + userDest.surname}`);
+ const msgDest = printf(
+ getstr(user.lang, 'MSG_APORTADOR_CONFIRMED'),
+ `${user.name + ' ' + user.surname}`);
+
+ await local_sendMsgTelegram(user.idapp, data.username, msgOrig);
+ await local_sendMsgTelegram(user.idapp, data.userDest, msgDest);
+
+ } else if (data.action === InlineConferma.RISPOSTA_NO +
+ shared_consts.CallFunz.REGISTRATION) {
+ await myclTelegram.setCmdToUsername(rec, data.username,
+ Cmd.VALIDATE_REGISTRATION, false);
+
+ const msgOrig = printf(
+ getstr(userDest.lang, 'MSG_APORTADOR_DEST_NOT_CONFIRMED'),
+ `${userDest.name + ' ' + userDest.surname}`);
+ const msgDest = printf(
+ getstr(user.lang, 'MSG_APORTADOR_NOT_CONFIRMED'),
+ `${user.name + ' ' + user.surname}`);
+
+ await local_sendMsgTelegram(user.idapp, data.username, msgOrig);
+ await local_sendMsgTelegram(user.idapp, data.userDest, msgDest);
}
}
}
diff --git a/src/server/tools/general.js b/src/server/tools/general.js
index cb85ab5..bdab3a3 100755
--- a/src/server/tools/general.js
+++ b/src/server/tools/general.js
@@ -394,6 +394,8 @@ module.exports = {
APORTADOR_NONE: '------',
+ SEP: '|',
+
TYPE_PROJECT: 1,
TYPE_TODO: 2,
diff --git a/src/server/tools/shared_nodejs.js b/src/server/tools/shared_nodejs.js
index 867a736..c1d1ba2 100755
--- a/src/server/tools/shared_nodejs.js
+++ b/src/server/tools/shared_nodejs.js
@@ -132,7 +132,8 @@ module.exports = {
DAMMI_PRIMO_UTENTE_LIBERO: 390,
GET_VALBYTABLE: 400,
SET_VALBYTABLE: 410,
- ZOOM_GIA_PARTECIPATO: 510
+ ZOOM_GIA_PARTECIPATO: 510,
+ REGISTRATION: 6
},
OrderStatus: {