- Dynamic Pages (MyPage)
- Uploading files to the Server FTP.
This commit is contained in:
@@ -1,5 +1,8 @@
|
||||
const express = require('express');
|
||||
const router = express.Router();
|
||||
const router = express.Router(),
|
||||
fs = require('fs'),
|
||||
path = require('path');
|
||||
|
||||
|
||||
const { authenticate, authenticate_noerror } = require('../middleware/authenticate');
|
||||
|
||||
@@ -8,6 +11,14 @@ const { ObjectID } = require('mongodb');
|
||||
const mongoose = require('mongoose');
|
||||
const cfgserver = mongoose.model('cfgserver');
|
||||
|
||||
const ftp = require('../ftp/FTPClient'),
|
||||
formidable = require('formidable'),
|
||||
folder = path.join(__dirname, 'files');
|
||||
|
||||
if (!fs.existsSync(folder)) {
|
||||
fs.mkdirSync(folder)
|
||||
}
|
||||
|
||||
const _ = require('lodash');
|
||||
|
||||
const { User } = require('../models/user');
|
||||
@@ -18,6 +29,7 @@ const { MyEvent } = require('../models/myevent');
|
||||
const { Contribtype } = require('../models/contribtype');
|
||||
const { Discipline } = require('../models/discipline');
|
||||
const { Newstosent } = require('../models/newstosent');
|
||||
const { MyPage } = require('../models/mypage');
|
||||
const { TemplEmail } = require('../models/templemail');
|
||||
const { OpzEmail } = require('../models/opzemail');
|
||||
const { MailingList } = require('../models/mailinglist');
|
||||
@@ -82,7 +94,7 @@ router.post(process.env.LINK_REQUEST_NEWPASSWORD, (req, res) => {
|
||||
user.tokenforgot = jwt.sign(user._id.toHexString(), process.env.SIGNCODE).toString();
|
||||
user.date_tokenforgot = new Date();
|
||||
user.lasttimeonline = new Date();
|
||||
user.save().then( async () => {
|
||||
user.save().then(async () => {
|
||||
await sendemail.sendEmail_RequestNewPassword(res.locale, user.email, user.idapp, user.tokenforgot);
|
||||
res.send({ code: server_constants.RIS_CODE_OK, msg: '' });
|
||||
});
|
||||
@@ -152,6 +164,8 @@ function getTableByTableName(tablename) {
|
||||
mytable = Discipline;
|
||||
else if (tablename === 'newstosent')
|
||||
mytable = Newstosent;
|
||||
else if (tablename === 'mypage')
|
||||
mytable = MyPage;
|
||||
else if (tablename === 'templemail')
|
||||
mytable = TemplEmail;
|
||||
else if (tablename === 'opzemail')
|
||||
@@ -362,11 +376,12 @@ router.get('/loadsite/:userId/:idapp/:sall', authenticate_noerror, (req, res) =>
|
||||
|
||||
let newstosent = Promise.resolve([]);
|
||||
let mailinglist = Promise.resolve([]);
|
||||
if (sall){
|
||||
let mypage = MyPage.findAllIdApp(idapp);
|
||||
if (sall) {
|
||||
newstosent = Newstosent.findAllIdApp(idapp);
|
||||
}
|
||||
|
||||
return Promise.all([bookedevent, eventlist, operators, wheres, contribtype, settings, permissions, disciplines, newstosent, mailinglist])
|
||||
return Promise.all([bookedevent, eventlist, operators, wheres, contribtype, settings, permissions, disciplines, newstosent, mailinglist, mypage])
|
||||
.then((arrdata) => {
|
||||
// console.table(arrdata);
|
||||
res.send({
|
||||
@@ -380,6 +395,7 @@ router.get('/loadsite/:userId/:idapp/:sall', authenticate_noerror, (req, res) =>
|
||||
disciplines: arrdata[7],
|
||||
newstosent: arrdata[8],
|
||||
mailinglist: arrdata[9],
|
||||
mypage: arrdata[10],
|
||||
});
|
||||
})
|
||||
.catch((e) => {
|
||||
@@ -437,5 +453,64 @@ router.get(process.env.LINK_CHECK_UPDATES, authenticate, (req, res) => {
|
||||
|
||||
});
|
||||
|
||||
router.post('/upload/:dir', authenticate, (req, res) => {
|
||||
const dir = req.params.dir;
|
||||
const idapp = req.user.idapp;
|
||||
|
||||
const form = new formidable.IncomingForm();
|
||||
|
||||
form.parse(req);
|
||||
|
||||
const client = new ftp(process.env.FTPSERVER_HOST, process.env.FTPSERVER_PORT, process.env.FTPSERVER_USER + idapp + '@associazioneshen.it', process.env.FTPSERVER_PWD + idapp, false, 134217728);
|
||||
|
||||
// SSL_OP_NO_TLSv1_2 = 134217728
|
||||
|
||||
// console.log('client', client);
|
||||
|
||||
form.uploadDir = folder;
|
||||
try {
|
||||
|
||||
form.on('fileBegin', async function (name, file){
|
||||
file.path = folder + '/' + file.name;
|
||||
});
|
||||
|
||||
form.on('file', async function (name, file){
|
||||
try {
|
||||
// Create directory remote
|
||||
|
||||
if (!!dir)
|
||||
await client.createDir(dir);
|
||||
|
||||
const miofile = (dir) ? dir + `/` + file.name : file.name;
|
||||
console.log('Upload...');
|
||||
const ret = await client.upload(file.path, miofile, 755);
|
||||
console.log('Uploaded ' + file.name, 'status:', ret);
|
||||
if (!ret)
|
||||
res.status(400).send();
|
||||
else
|
||||
res.end();
|
||||
}catch (e) {
|
||||
console.log('error', e);
|
||||
res.status(400).send();
|
||||
}
|
||||
});
|
||||
|
||||
form.on('aborted', () => {
|
||||
console.error('Request aborted by the user');
|
||||
res.status(400).send();
|
||||
});
|
||||
|
||||
form.on('error', (err) => {
|
||||
console.error('Error Uploading', err);
|
||||
res.status(400).send();
|
||||
});
|
||||
|
||||
} catch (e) {
|
||||
console.log('Error', e)
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
||||
module.exports = router;
|
||||
|
||||
Reference in New Issue
Block a user