From 27ac21bdbd4b85c16ee5be13d075f69bf4623795 Mon Sep 17 00:00:00 2001 From: Moe Date: Sat, 23 Feb 2019 09:50:03 -0800 Subject: [PATCH] Add FTP server to dropInEvents module --- libs/dropInEvents.js | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/libs/dropInEvents.js b/libs/dropInEvents.js index cbe9d624..44a1e9ba 100644 --- a/libs/dropInEvents.js +++ b/libs/dropInEvents.js @@ -1,4 +1,4 @@ -var fs = require('fs'); +var fs = require('fs') module.exports = function(s,config,lang,app,io){ if(config.dropInEventServer === true){ if(config.dropInEventDeleteFileAfterTrigger === undefined)config.dropInEventDeleteFileAfterTrigger = true @@ -75,6 +75,29 @@ module.exports = function(s,config,lang,app,io){ }) s.group[monitorConfig.ke].mon[monitorConfig.mid].dropInEventWatcher = directoryWatch } + if(config.ftpServer === true){ + if(!config.ftpPort)config.ftpPort = 21 + if(!config.ftpUrl)config.ftpUrl = `ftp://0.0.0.0:${config.ftpPort}` + const FtpSrv = require('ftp-srv'); + const ftpServer = new FtpSrv({url: config.ftpUrl}); + + ftpServer.on('login', (data, resolve, reject) => { + var username = data.username + var password = data.password + s.sqlQuery('SELECT * FROM Users WHERE mail=? AND (pass=? OR pass=?)',[username,password,s.createHash(password)],function(err,r){ + if(r && r[0]){ + var user = r[0] + resolve({root: s.dir.dropInEvents + user.ke}) + }else{ + reject() + } + }) + }); + + ftpServer.listen().then(() => { + s.systemLog(`FTP Server running on port ${config.ftpPort}...`) + }) + } //add extensions s.beforeMonitorsLoadedOnStartup(beforeMonitorsLoadedOnStartup) s.onMonitorInit(onMonitorInit)