Creazione Sito Web da pagina

This commit is contained in:
Surya Paolo
2023-12-08 14:07:32 +01:00
parent f7bcb0c361
commit 74c4a829b0
9 changed files with 138 additions and 6 deletions

View File

@@ -28,3 +28,4 @@ PATH_SSL_CHAIN_PEM=chain.pem
PROD=0 PROD=0
PROJECT_DESCR_MAIN='__PROJECTS' PROJECT_DESCR_MAIN='__PROJECTS'
SECRK=iUUb38v23jjDFaosWj92axkBOXCQ SECRK=iUUb38v23jjDFaosWj92axkBOXCQ
AUTH_NEW_SITES=B234HDSAOJ734ndcsdKWNVZZ

View File

@@ -28,3 +28,4 @@ PATH_SSL_CHAIN_PEM=chain.pem
PROD=0 PROD=0
PROJECT_DESCR_MAIN='__PROJECTS' PROJECT_DESCR_MAIN='__PROJECTS'
SECRK=iUUb38v23jjDFaosWj92axkBOXCQ SECRK=iUUb38v23jjDFaosWj92axkBOXCQ
AUTH_NEW_SITES=B234HDSAOJ734ndcsdKWNV

View File

@@ -26,3 +26,4 @@ PATH_SSL_CHAIN_PEM=chain.pem
PROD=0 PROD=0
PROJECT_DESCR_MAIN='__PROJECTS' PROJECT_DESCR_MAIN='__PROJECTS'
SECRK=iUUb38v23jjDFaosWj92axkBOXCQ SECRK=iUUb38v23jjDFaosWj92axkBOXCQ
AUTH_NEW_SITES=B234HDSAOJ734ndcsdKWNV

View File

@@ -10,6 +10,7 @@ var file = `.env.${node_env}`;
// GLOBALI (Uguali per TUTTI) // GLOBALI (Uguali per TUTTI)
process.env.LINKVERIF_REG = '/vreg'; process.env.LINKVERIF_REG = '/vreg';
process.env.LINK_REQUEST_NEWPASSWORD = '/requestnewpwd'; process.env.LINK_REQUEST_NEWPASSWORD = '/requestnewpwd';
process.env.ADD_NEW_SITE = '/addNewSite';
process.env.LINK_UPDATE_PASSWORD = '/updatepassword'; process.env.LINK_UPDATE_PASSWORD = '/updatepassword';
process.env.LINK_UPDATE_PWD = '/updatepwd'; process.env.LINK_UPDATE_PWD = '/updatepwd';
process.env.LINK_CHECK_UPDATES = '/checkupdates'; process.env.LINK_CHECK_UPDATES = '/checkupdates';

View File

@@ -8,7 +8,9 @@ mongoose.level = "F";
mongoose.set('debug', false); mongoose.set('debug', false);
const {ObjectID} = require('mongodb'); const { ObjectID } = require('mongodb');
const _ = require('lodash');
// Resolving error Unknown modifier: $pushAll // Resolving error Unknown modifier: $pushAll
mongoose.plugin(schema => { mongoose.plugin(schema => {
@@ -242,6 +244,46 @@ module.exports.findAllIdApp = async function (idapp) {
}; };
module.exports.generateNewSite_IdApp = async function (idapp, params) {
let ris = null;
try {
if (idapp) {
ris = await Site.find({ idapp: idapp.toString(), host: params.host });
} else {
for (let idapp = 20; idapp <= 100; idapp++) {
ris = await Site.find({ idapp: idapp.toString(), host: params.host });
break;
}
}
if (ris && ris.length === 0) {
const paramSite = _.pick(params, ['name', 'host', 'email']);
let mysite = new Site(paramSite);
mysite.active = true;
mysite.idapp = idapp.toString();
mysite.adminemail = params.email;
const ris = await mysite.save();
if (ris)
return mysite.idapp;
else
return '';
}
} catch (e) {
console.error(e);
}
return '';
};
module.exports.createFirstUserAdmin = async function () { module.exports.createFirstUserAdmin = async function () {
const { User } = require('../models/user'); const { User } = require('../models/user');

View File

@@ -14,6 +14,7 @@ const { Graduatoria } = require('../models/graduatoria');
// const {NavePersistente} = require('../models/navepersistente'); // const {NavePersistente} = require('../models/navepersistente');
// const { ExtraList } = require('../models/extralist'); // const { ExtraList } = require('../models/extralist');
const server_constants = require('../tools/server_constants');
const { Reaction } = require('../models/reaction'); const { Reaction } = require('../models/reaction');
@@ -1291,7 +1292,7 @@ UserSchema.statics.createNewRequestPwd = function (idapp, email, code) {
return { ris: false }; return { ris: false };
} else { } else {
// Creo il tokenforgot // Creo il tokenforgot
user.tokenforgot = jwt.sign({_id: 'prova123##', smart: user._id.toHexString()}, process.env.SIGNCODE). user.tokenforgot = jwt.sign({ _id: 'prova123##', smart: user._id.toHexString() }, process.env.SIGNCODE).
toString(); toString();
user.date_tokenforgot = new Date(); user.date_tokenforgot = new Date();
user.tokenforgot_code = 100000 + Math.round(Math.random() * 899999); user.tokenforgot_code = 100000 + Math.round(Math.random() * 899999);
@@ -1322,7 +1323,7 @@ UserSchema.statics.createNewRequestPwdByUsernameAndGetLink = async function (ida
}; };
const prova = 'dasdas1231#11'; const prova = 'dasdas1231#11';
// Creo il tokenforgot // Creo il tokenforgot
user.tokenforgot = jwt.sign({_id: prova, smart: user._id.toHexString(), ...additionalData}, process.env.SIGNCODE). user.tokenforgot = jwt.sign({ _id: prova, smart: user._id.toHexString(), ...additionalData }, process.env.SIGNCODE).
toString(); toString();
user.date_tokenforgot = new Date(); user.date_tokenforgot = new Date();
user.tokenforgot_code = 100000 + Math.round(Math.random() * 899999); user.tokenforgot_code = 100000 + Math.round(Math.random() * 899999);
@@ -5348,6 +5349,63 @@ UserSchema.statics.setReceiveRis = async function (idapp, username) {
}; };
UserSchema.statics.addNewSite = async function (idappPass, body) {
const User = this;
const Site = require('../models/site');
// Inserisci il nuovo Sito (se non esiste)
// Site.
// Inserisci il Nuovo Utente (se non esiste)
if (!body.code || body.code.toString() !== process.env.AUTH_NEW_SITES) {
return { code: server_constants.RIS_CODE_ERR_UNAUTHORIZED, idapp: -1 };
}
try {
// cerca un IdApp Libero
let idapp = await Site.generateNewSite_IdApp(idappPass, body);
if (idapp) {
let arrSite = await Site.find({ idapp }).lean();
let numutenti = 0;
if (idapp) {
numutenti = await User.countDocuments({ idapp });
};
if (arrSite && arrSite.length === 1 && numutenti === 0) {
// Nessun Sito Installato e Nessun Utente installato !
let myuser = new User();
myuser._id = new ObjectID();
myuser.idapp = idapp;
myuser.email = body.email;
myuser.username = body.username;
myuser.password = body.password;
myuser.name = body.username;
myuser.index = 1;
myuser.surname = '';
myuser.lang = 'it';
myuser.verified_email = true;
myuser.verified_by_aportador = true;
myuser.perm = '3';
myuser.profile.special_req = true;
myuser.profile.nationality = 'IT';
myuser.lasttimeonline = new Date();
myuser.date_reg = new Date();
await myuser.save();
return { code: server_constants.RIS_CODE_OK, idapp };
}
}
return { code: server_constants.RIS_CODE_ERR, idapp: -1 };
} catch (e) {
console.error('Error in addNewSite:', e.message);
}
};
UserSchema.statics.createNewSubRecord = async function (idapp, req) { UserSchema.statics.createNewSubRecord = async function (idapp, req) {
const User = this; const User = this;

View File

@@ -136,6 +136,33 @@ router.post(process.env.LINKVERIF_REG, (req, res) => {
}); });
router.post(process.env.ADD_NEW_SITE, async (req, res) => {
try {
const body = req.body;
const idapp = body.idappSent;
const name = body.name;
const email = body.email.toLowerCase().trim();
console.log('Add New Site: idapp = ', idapp, 'email=', email, 'name=', name);
const ris = await User.addNewSite(idapp, body);
if (ris) {
res.send(ris);
} else {
res.status(400).send({ code: server_constants.RIS_CODE_ERR, msg: 'Errore' });
}
} catch (e) {
console.log(process.env.ADD_NEW_SITE, e.message);
res.status(400).send({ code: server_constants.RIS_CODE_ERR, msg: e });
}
});
// Faccio richiesta di una Nuova Password // Faccio richiesta di una Nuova Password
router.post(process.env.LINK_REQUEST_NEWPASSWORD, async (req, res) => { router.post(process.env.LINK_REQUEST_NEWPASSWORD, async (req, res) => {

View File

@@ -3,8 +3,8 @@ const tools = require('../tools/general');
const appTelegram = [tools.FREEPLANET, tools.RISO]; const appTelegram = [tools.FREEPLANET, tools.RISO];
const appTelegram_TEST = [tools.FREEPLANET, tools.RISO]; const appTelegram_TEST = [tools.FREEPLANET, tools.RISO];
const appTelegram_DEVELOP = [tools.RISO]; //const appTelegram_DEVELOP = [tools.RISO];
// const appTelegram_DEVELOP = [tools.FIOREDELLAVITA]; const appTelegram_DEVELOP = [tools.FIOREDELLAVITA];
const appTelegramFinti = ['2', tools.CNM]; const appTelegramFinti = ['2', tools.CNM];
const appTelegramDest = [tools.FREEPLANET, tools.FREEPLANET]; const appTelegramDest = [tools.FREEPLANET, tools.FREEPLANET];

View File

@@ -242,7 +242,8 @@ module.exports = {
{ table: 'skills', key: 'descr' }, { table: 'skills', key: 'descr' },
{ table: 'statusSkills', key: 'descr' }, { table: 'statusSkills', key: 'descr' },
], ],
VISIB_ALL: 0, VISIB_ALL: 0,
VISIB_ONLYIF_VERIFIED: 1, VISIB_ONLYIF_VERIFIED: 1,
VISIB_ONLY_MANAGER: 2, VISIB_ONLY_MANAGER: 2,