From ea09c46d14ccc1de6ed804aa5470b290b0fb1788 Mon Sep 17 00:00:00 2001 From: Chris Brame Date: Thu, 12 May 2022 05:24:21 -0400 Subject: [PATCH] chore(core): code cleanup --- src/backup/backup.js | 40 +++---- src/backup/restore.js | 40 +++---- src/cache/cache.js | 14 +-- src/cache/index.js | 61 ++++------- src/cache/quickStats.js | 28 ++--- src/cache/rediscache.js | 20 ++-- src/cache/tagStats.js | 22 ++-- src/cache/ticketStats.js | 70 ++++++------ src/controllers/accounts.js | 88 +++++++-------- src/controllers/api/apiUtils.js | 22 ++-- src/controllers/backuprestore.js | 44 ++++---- src/controllers/debug.js | 130 +++++++++++----------- src/controllers/departments.js | 12 +-- src/controllers/editor.js | 42 ++++---- src/controllers/groups.js | 26 ++--- src/controllers/index.js | 2 +- src/controllers/install.js | 128 +++++++++++----------- src/controllers/main.js | 138 ++++++++++++------------ src/controllers/messages.js | 33 +++--- src/controllers/notices.js | 20 ++-- src/controllers/plugins.js | 4 +- src/controllers/reports.js | 24 ++--- src/controllers/servers.js | 4 +- src/controllers/settings.js | 46 ++++---- src/controllers/teams.js | 12 +-- src/controllers/tickets.js | 180 +++++++++++++++---------------- src/helpers/plugins/index.js | 8 +- src/helpers/utils/index.js | 12 +-- src/helpers/viewdata/index.js | 88 +++++++-------- src/install/mongotest.js | 6 +- src/taskrunner/index.js | 35 +++--- 31 files changed, 683 insertions(+), 716 deletions(-) diff --git a/src/backup/backup.js b/src/backup/backup.js index dbd0a8e22..8cf7cd7e4 100644 --- a/src/backup/backup.js +++ b/src/backup/backup.js @@ -12,23 +12,23 @@ * Copyright (c) 2014-2019. All rights reserved. */ -var fs = require('fs-extra') -var os = require('os') -var path = require('path') -var spawn = require('child_process').spawn -var archiver = require('archiver') -var database = require('../database') -var winston = require('../logger') -var moment = require('moment') +const fs = require('fs-extra') +const os = require('os') +const path = require('path') +const spawn = require('child_process').spawn +const archiver = require('archiver') +const database = require('../database') +const winston = require('../logger') +const moment = require('moment') global.env = process.env.NODE_ENV || 'production' -var CONNECTION_URI = null +let CONNECTION_URI = null function createZip (callback) { - var filename = 'trudesk-' + moment().format('MMDDYYYY_HHmm') + '.zip' - var output = fs.createWriteStream(path.join(__dirname, '../../backups/', filename)) - var archive = archiver('zip', { + const filename = 'trudesk-' + moment().format('MMDDYYYY_HHmm') + '.zip' + const output = fs.createWriteStream(path.join(__dirname, '../../backups/', filename)) + const archive = archiver('zip', { zlib: { level: 9 } }) @@ -53,7 +53,7 @@ function createZip (callback) { } function cleanup (callback) { - var rimraf = require('rimraf') + const rimraf = require('rimraf') rimraf(path.join(__dirname, '../../backups/dump'), callback) } @@ -67,22 +67,22 @@ function copyFiles (callback) { } function runBackup (callback) { - var platform = os.platform() + const platform = os.platform() winston.info('Starting backup... (' + platform + ')') - var mongodumpExec = 'mongodump' + let mongodumpExec = 'mongodump' if (platform === 'win32') { mongodumpExec = path.join(__dirname, 'bin/win32/mongodump') } - var options = [ + const options = [ '--uri', CONNECTION_URI, '--forceTableScan', '--out', path.join(__dirname, '../../backups/dump/database/') ] - var mongodump = spawn(mongodumpExec, options, { env: { PATH: process.env.PATH } }) + const mongodump = spawn(mongodumpExec, options, { env: { PATH: process.env.PATH } }) mongodump.stdout.on('data', function (data) { winston.debug(data.toString()) @@ -99,7 +99,7 @@ function runBackup (callback) { mongodump.on('exit', function (code) { if (code === 0) { - var dbName = fs.readdirSync(path.join(__dirname, '../../backups/dump/database'))[0] + const dbName = fs.readdirSync(path.join(__dirname, '../../backups/dump/database'))[0] if (!dbName) { return callback(new Error('Unable to retrieve database name')) } @@ -125,7 +125,7 @@ function runBackup (callback) { CONNECTION_URI = process.env.MONGOURI if (!CONNECTION_URI) return process.send({ error: { message: 'Invalid connection uri' } }) - var options = { + const options = { keepAlive: 0, connectTimeoutMS: 5000 } @@ -150,7 +150,7 @@ function runBackup (callback) { runBackup(function (err) { if (err) return process.send({ success: false, error: err }) - var filename = 'trudesk-' + moment().format('MMDDYYYY_HHmm') + '.zip' + const filename = 'trudesk-' + moment().format('MMDDYYYY_HHmm') + '.zip' winston.info('Backup completed successfully: ' + filename) process.send({ success: true }) diff --git a/src/backup/restore.js b/src/backup/restore.js index 26b09c73d..a78839aa5 100644 --- a/src/backup/restore.js +++ b/src/backup/restore.js @@ -12,28 +12,28 @@ * Copyright (c) 2014-2019. All rights reserved. */ -var _ = require('lodash') -var fs = require('fs-extra') -var path = require('path') -var spawn = require('child_process').spawn -var os = require('os') -var async = require('async') -var AdmZip = require('adm-zip') -var database = require('../database') -var winston = require('../logger') +const _ = require('lodash') +const fs = require('fs-extra') +const path = require('path') +const spawn = require('child_process').spawn +const os = require('os') +const async = require('async') +const AdmZip = require('adm-zip') +const database = require('../database') +const winston = require('../logger') global.env = process.env.NODE_ENV || 'production' -var CONNECTION_URI = null -var databaseName = null +let CONNECTION_URI = null +let databaseName = null function cleanup (callback) { - var rimraf = require('rimraf') + const rimraf = require('rimraf') rimraf(path.join(__dirname, '../../restores/restore_*'), callback) } function cleanUploads (callback) { - var rimraf = require('rimraf') + const rimraf = require('rimraf') rimraf(path.join(__dirname, '../../public/uploads/*'), callback) } @@ -67,7 +67,7 @@ function copyUploads (file, callback) { } function extractArchive (file, callback) { - var zip = new AdmZip(path.join(__dirname, '../../backups/', file)) + const zip = new AdmZip(path.join(__dirname, '../../backups/', file)) zip.extractAllTo(path.join(__dirname, '../../restores/restore_' + file + '/'), true) if (_.isFunction(callback)) { @@ -80,15 +80,15 @@ function cleanMongoDb (callback) { } function runRestore (file, callback) { - var platform = os.platform() + const platform = os.platform() winston.info('Starting Restore... (' + platform + ')') - var dbName = fs.readdirSync(path.join(__dirname, '../../restores/restore_' + file, 'database'))[0] + const dbName = fs.readdirSync(path.join(__dirname, '../../restores/restore_' + file, 'database'))[0] if (!dbName) { return callback(new Error('Invalid Backup. Unable to get DBName')) } - var options = [ + const options = [ '--uri', CONNECTION_URI, '-d', @@ -96,7 +96,7 @@ function runRestore (file, callback) { path.join(__dirname, '../../restores/restore_' + file, 'database', dbName), '--noIndexRestore' ] - var mongorestore = null + let mongorestore = null if (platform === 'win32') { mongorestore = spawn(path.join(__dirname, 'bin', platform, 'mongorestore'), options, { env: { PATH: process.env.PATH } @@ -126,14 +126,14 @@ function runRestore (file, callback) { CONNECTION_URI = process.env.MONGOURI if (!CONNECTION_URI) return process.send({ success: false, error: 'Invalid connection uri' }) - var FILE = process.env.FILE + const FILE = process.env.FILE if (!FILE) return process.send({ success: false, error: 'Invalid File' }) if (!fs.existsSync(path.join(__dirname, '../../backups', FILE))) { return process.send({ success: false, error: 'FILE NOT FOUND' }) } - var options = { + const options = { keepAlive: 0, connectTimeoutMS: 5000 } diff --git a/src/cache/cache.js b/src/cache/cache.js index 7ed688447..4a42084bc 100644 --- a/src/cache/cache.js +++ b/src/cache/cache.js @@ -12,15 +12,15 @@ * Copyright (c) 2014-2019. All rights reserved. */ -var _ = require('lodash') -var NodeCache = require('node-cache') -var path = require('path') -var cache = {} +const _ = require('lodash') +const NodeCache = require('node-cache') +const path = require('path') +const cache = {} cache.init = function () { global.cache = new NodeCache({ checkperiod: 0 }) cache.memLimit = process.env.CACHE_MEMLIMIT || '2048' - var env = { FORK: 1, NODE_ENV: global.env, TIMEZONE: global.timezone } + const env = { FORK: 1, NODE_ENV: global.env, TIMEZONE: global.timezone } cache.env = _.merge(cache.env, env) spawnCache() @@ -28,9 +28,9 @@ cache.init = function () { } function spawnCache () { - var fork = require('child_process').fork + const fork = require('child_process').fork - var n = fork(path.join(__dirname, './index.js'), { + const n = fork(path.join(__dirname, './index.js'), { execArgv: ['--max-old-space-size=' + cache.memLimit], env: cache.env }) diff --git a/src/cache/index.js b/src/cache/index.js index c3bc16cd2..bf402e82d 100644 --- a/src/cache/index.js +++ b/src/cache/index.js @@ -12,40 +12,19 @@ * Copyright (c) 2014-2019. All rights reserved. */ -var NodeCache = require('node-cache') -var async = require('async') -var path = require('path') -var nconf = require('nconf') -var _ = require('lodash') -var winston = require('../logger') -var moment = require('moment-timezone') +const NodeCache = require('node-cache') +const async = require('async') +const path = require('path') +const nconf = require('nconf') +const _ = require('lodash') +const winston = require('../logger') +const moment = require('moment-timezone') -var truCache = {} -var cache +const truCache = {} +let cache global.env = process.env.NODE_ENV || 'production' -// winston.setLevels(winston.config.cli.levels) -// winston.remove(winston.transports.Console) -// winston.add(winston.transports.Console, { -// colorize: true, -// timestamp: function () { -// var date = new Date() -// return ( -// date.getMonth() + -// 1 + -// '/' + -// date.getDate() + -// ' ' + -// date.toTimeString().substr(0, 8) + -// ' [Child:Cache:' + -// process.pid + -// ']' -// ) -// }, -// level: global.env === 'production' ? 'info' : 'verbose' -// }) - function loadConfig () { nconf.file({ file: path.join(__dirname, '/../../config.json') @@ -56,8 +35,8 @@ function loadConfig () { }) } -var refreshTimer -var lastUpdated = moment.utc().tz(process.env.TIMEZONE || 'America/New_York') +let refreshTimer +let lastUpdated = moment.utc().tz(process.env.TIMEZONE || 'America/New_York') truCache.init = function (callback) { cache = new NodeCache({ @@ -89,7 +68,7 @@ truCache.refreshCache = function (callback) { async.waterfall( [ function (done) { - var ticketSchema = require('../models/ticket') + const ticketSchema = require('../models/ticket') ticketSchema.getForCache(function (e, tickets) { if (e) return done(e) winston.debug('Pulled ' + tickets.length) @@ -102,10 +81,10 @@ truCache.refreshCache = function (callback) { async.parallel( [ function (done) { - var ticketStats = require('./ticketStats') + const ticketStats = require('./ticketStats') ticketStats(tickets, function (err, stats) { if (err) return done(err) - var expire = 3600 // 1 hour + const expire = 3600 // 1 hour cache.set('tickets:overview:lastUpdated', stats.lastUpdated, expire) cache.set('tickets:overview:e30:ticketCount', stats.e30.tickets, expire) @@ -137,7 +116,7 @@ truCache.refreshCache = function (callback) { }) }, function (done) { - var tagStats = require('./tagStats') + const tagStats = require('./tagStats') async.parallel( [ function (c) { @@ -201,7 +180,7 @@ truCache.refreshCache = function (callback) { ) }, function (done) { - var quickStats = require('./quickStats') + const quickStats = require('./quickStats') quickStats(tickets, function (err, stats) { if (err) return done(err) @@ -240,10 +219,10 @@ truCache.refreshCache = function (callback) { process.on('message', function (message) { if (message.name === 'cache:refresh') { winston.debug('Refreshing Cache....') - var now = moment() - var timeSinceLast = Math.round(moment.duration(now.diff(lastUpdated)).asMinutes()) + const now = moment() + const timeSinceLast = Math.round(moment.duration(now.diff(lastUpdated)).asMinutes()) if (timeSinceLast < 5) { - var i = 5 - timeSinceLast + const i = 5 - timeSinceLast winston.debug('Cannot refresh cache for another ' + i + ' minutes') return false } @@ -265,7 +244,7 @@ truCache.refreshCache = function (callback) { }) loadConfig() - var db = require('../database') + const db = require('../database') db.init(function (err) { if (err) return winston.error(err) truCache.init(function (err) { diff --git a/src/cache/quickStats.js b/src/cache/quickStats.js index 79b0976c4..336550a3d 100644 --- a/src/cache/quickStats.js +++ b/src/cache/quickStats.js @@ -12,13 +12,13 @@ * Copyright (c) 2014-2019. All rights reserved. */ -var _ = require('lodash') -var async = require('async') -var ticketSchema = require('../models/ticket') +const _ = require('lodash') +const async = require('async') +const ticketSchema = require('../models/ticket') _.mixin({ sortKeysBy: function (obj, comparator) { - var keys = _.sortBy(_.keys(obj), function (key) { + const keys = _.sortBy(_.keys(obj), function (key) { return comparator ? comparator(obj[key], key) : key }) @@ -31,9 +31,9 @@ _.mixin({ } }) -var init = function (tickets, callback) { - var obj = {} - var $tickets = [] +const init = function (tickets, callback) { + const obj = {} + let $tickets = [] async.series( [ @@ -99,7 +99,7 @@ var init = function (tickets, callback) { } function buildMostRequester (ticketArray, callback) { - var requesters = _.map(ticketArray, function (m) { + let requesters = _.map(ticketArray, function (m) { if (m.owner) { return m.owner.fullname } @@ -109,7 +109,7 @@ function buildMostRequester (ticketArray, callback) { requesters = _.compact(requesters) - var r = _.countBy(requesters, function (k) { + let r = _.countBy(requesters, function (k) { return k }) r = _(r).value() @@ -132,7 +132,7 @@ function flatten (arr) { } function buildMostComments (ticketArray, callback) { - var commenters = _.map(ticketArray, function (m) { + let commenters = _.map(ticketArray, function (m) { return _.map(m.comments, function (i) { return i.owner.fullname }) @@ -140,7 +140,7 @@ function buildMostComments (ticketArray, callback) { commenters = flatten(commenters) - var c = _.countBy(commenters, function (k) { + let c = _.countBy(commenters, function (k) { return k }) @@ -162,11 +162,11 @@ function buildMostAssignee (ticketArray, callback) { return _.isUndefined(v.assignee) || _.isNull(v.assignee) }) - var assignees = _.map(ticketArray, function (m) { + const assignees = _.map(ticketArray, function (m) { return m.assignee.fullname }) - var a = _.countBy(assignees, function (k) { + let a = _.countBy(assignees, function (k) { return k }) @@ -184,7 +184,7 @@ function buildMostAssignee (ticketArray, callback) { } function buildMostActiveTicket (ticketArray, callback) { - var tickets = _.map(ticketArray, function (m) { + let tickets = _.map(ticketArray, function (m) { return { uid: m.uid, cSize: _.size(m.history) } }) diff --git a/src/cache/rediscache.js b/src/cache/rediscache.js index ad7cfba69..6ffc4616d 100644 --- a/src/cache/rediscache.js +++ b/src/cache/rediscache.js @@ -12,33 +12,33 @@ * Copyright (c) 2014-2019. All rights reserved. */ -var _ = require('lodash') -var redis = require('redis') -var winston = require('winston') +const _ = require('lodash') +const redis = require('redis') +const winston = require('winston') -// var REDIS_PORT = process.env.REDIS_PORT || 6379; -// var REDIS_HOST = process.env.REDIS_HOST || 'localhost'; +// const REDIS_PORT = process.env.REDIS_PORT || 6379; +// const REDIS_HOST = process.env.REDIS_HOST || 'localhost'; -var client = redis.createClient(32819, '24.142.200.107') +const client = redis.createClient(32819, '127.0.0.1') client.on('error', function (err) { winston.warn(err) }) -var redisCache = {} +const redisCache = {} redisCache.setCache = function (key, value, callback, ttl) { if (!_.isArray(value)) { value = [value] } if (!_.isUndefined(ttl)) { - var importMulti = client.multi() - var v = JSON.stringify(value) + const importMulti = client.multi() + const v = JSON.stringify(value) importMulti.hmset(rake('$trudesk', key), { data: v }) importMulti.expire(rake('$trudesk', key), 600) // value.forEach(function(item) { - // var v = JSON.stringify(item); + // const v = JSON.stringify(item); // importMulti.hmset(rake('$trudesk', key), {_id: item._id.toString(), data: v}); // importMulti.expire(rake('$trudesk', key), 600); // }); diff --git a/src/cache/tagStats.js b/src/cache/tagStats.js index 8eb97e182..1e1731293 100644 --- a/src/cache/tagStats.js +++ b/src/cache/tagStats.js @@ -12,22 +12,22 @@ * Copyright (c) 2014-2019. All rights reserved. */ -var _ = require('lodash') -var async = require('async') -var moment = require('moment') +const _ = require('lodash') +const async = require('async') +const moment = require('moment') -var ticketSchema = require('../models/ticket') +const ticketSchema = require('../models/ticket') -var init = function (tickets, timespan, callback) { - var tags = [] - var $tickets = [] +const init = function (tickets, timespan, callback) { + let tags = [] + let $tickets = [] if (_.isUndefined(timespan) || _.isNaN(timespan) || timespan === 0) timespan = 365 - var today = moment() + let today = moment() .hour(23) .minute(59) .second(59) - var tsDate = today + const tsDate = today .clone() .subtract(timespan, 'd') .toDate() @@ -58,13 +58,13 @@ var init = function (tickets, timespan, callback) { } }, function (done) { - var t = [] + let t = [] $tickets = _.filter($tickets, function (v) { return v.date < today && v.date > tsDate }) - for (var i = 0; i < $tickets.length; i++) { + for (let i = 0; i < $tickets.length; i++) { _.each(tickets[i].tags, function (tag) { t.push(tag.name) }) diff --git a/src/cache/ticketStats.js b/src/cache/ticketStats.js index e07729ea4..6cb75e283 100644 --- a/src/cache/ticketStats.js +++ b/src/cache/ticketStats.js @@ -12,26 +12,26 @@ * Copyright (c) 2014-2019. All rights reserved. */ -var _ = require('lodash') -var async = require('async') -var moment = require('moment') -var winston = require('winston') +const _ = require('lodash') +const async = require('async') +const moment = require('moment') +const winston = require('winston') -var ticketSchema = require('../models/ticket') +const ticketSchema = require('../models/ticket') -var ex = {} +const ex = {} function buildGraphData (arr, days, callback) { - var graphData = [] + const graphData = [] if (arr.length < 1) { return callback(graphData) } - var today = moment() + const today = moment() .hour(23) .minute(59) .second(59) - var timespanArray = [] - for (var i = days; i--; ) { + const timespanArray = [] + for (let i = days; i--; ) { timespanArray.push(i) } @@ -39,12 +39,12 @@ function buildGraphData (arr, days, callback) { return moment(i.date).format('YYYY-MM-DD') }) - var counted = _.countBy(arr) + let counted = _.countBy(arr) - for (var k = 0; k < timespanArray.length; k++) { - var obj = {} - var day = timespanArray[k] - var d = today.clone().subtract(day, 'd') + for (let k = 0; k < timespanArray.length; k++) { + const obj = {} + const day = timespanArray[k] + const d = today.clone().subtract(day, 'd') obj.date = d.format('YYYY-MM-DD') obj.value = counted[obj.date] === undefined ? 0 : counted[obj.date] @@ -58,20 +58,20 @@ function buildGraphData (arr, days, callback) { } function buildAvgResponse (ticketArray, callback) { - var cbObj = {} - var $ticketAvg = [] - for (var i = 0; i < ticketArray.length; i++) { - var ticket = ticketArray[i] + const cbObj = {} + const $ticketAvg = [] + for (let i = 0; i < ticketArray.length; i++) { + const ticket = ticketArray[i] if (ticket.comments === undefined || ticket.comments.length < 1) continue - var ticketDate = moment(ticket.date) - var firstCommentDate = moment(ticket.comments[0].date) + const ticketDate = moment(ticket.date) + const firstCommentDate = moment(ticket.comments[0].date) - var diff = firstCommentDate.diff(ticketDate, 'seconds') + const diff = firstCommentDate.diff(ticketDate, 'seconds') $ticketAvg.push(diff) } - var ticketAvgTotal = _.reduce( + const ticketAvgTotal = _.reduce( $ticketAvg, function (m, x) { return m + x @@ -79,14 +79,14 @@ function buildAvgResponse (ticketArray, callback) { 0 ) - var tvt = moment.duration(Math.round(ticketAvgTotal / _.size($ticketAvg)), 'seconds').asHours() + const tvt = moment.duration(Math.round(ticketAvgTotal / _.size($ticketAvg)), 'seconds').asHours() cbObj.avgResponse = Math.floor(tvt) return callback(cbObj) } -var init = function (tickets, callback) { - var $tickets = [] +const init = function (tickets, callback) { + let $tickets = [] ex.e30 = {} ex.e60 = {} ex.e90 = {} @@ -94,14 +94,14 @@ var init = function (tickets, callback) { ex.e365 = {} ex.lifetime = {} ex.lastUpdated = moment.utc() - var today = moment() + const today = moment() .hour(23) .minute(59) .second(59) - var e30 = today.clone().subtract(30, 'd') - var e60 = today.clone().subtract(60, 'd') - var e90 = today.clone().subtract(90, 'd') - var e180 = today.clone().subtract(180, 'd') + const e30 = today.clone().subtract(30, 'd') + const e60 = today.clone().subtract(60, 'd') + const e90 = today.clone().subtract(90, 'd') + const e180 = today.clone().subtract(180, 'd') // e365 = today.clone().subtract(365, 'd'); async.series( @@ -145,7 +145,7 @@ var init = function (tickets, callback) { ex.e365.closedTickets = _.size(ex.e365.closedTickets) // Remove all tickets more than 180 days - var t180 = e180.toDate().getTime() + const t180 = e180.toDate().getTime() $tickets = _.filter($tickets, function (t) { return t.date > t180 }) @@ -173,7 +173,7 @@ var init = function (tickets, callback) { ex.e180.closedTickets = _.size(ex.e180.closedTickets) // Remove all tickets more than 90 days - var t90 = e90.toDate().getTime() + const t90 = e90.toDate().getTime() $tickets = _.filter($tickets, function (t) { return t.date > t90 }) @@ -201,7 +201,7 @@ var init = function (tickets, callback) { ex.e90.closedTickets = _.size(ex.e90.closedTickets) // Remove all tickets more than 60 days - var t60 = e60.toDate().getTime() + const t60 = e60.toDate().getTime() $tickets = _.filter($tickets, function (t) { return t.date > t60 }) @@ -229,7 +229,7 @@ var init = function (tickets, callback) { ex.e60.closedTickets = _.size(ex.e60.closedTickets) // Remove all tickets more than 30 days - var t30 = e30.toDate().getTime() + const t30 = e30.toDate().getTime() $tickets = _.filter($tickets, function (t) { return t.date > t30 }) diff --git a/src/controllers/accounts.js b/src/controllers/accounts.js index 5e1885db5..8eb3b63ac 100644 --- a/src/controllers/accounts.js +++ b/src/controllers/accounts.js @@ -12,15 +12,15 @@ * Copyright (c) 2014-2019. All rights reserved. */ -var async = require('async') -var _ = require('lodash') -var winston = require('../logger') -var userSchema = require('../models/user') -var permissions = require('../permissions') -var emitter = require('../emitter') -var xss = require('xss') +const async = require('async') +const _ = require('lodash') +const winston = require('../logger') +const userSchema = require('../models/user') +const permissions = require('../permissions') +const emitter = require('../emitter') +const xss = require('xss') -var accountsController = {} +const accountsController = {} accountsController.content = {} @@ -35,15 +35,15 @@ function handleError (res, err) { } accountsController.signup = function (req, res) { - var marked = require('marked') - var settings = require('../models/setting') + const marked = require('marked') + const settings = require('../models/setting') settings.getSettingByName('allowUserRegistration:enable', function (err, setting) { if (err) return handleError(res, err) if (setting && setting.value === true) { settings.getSettingByName('legal:privacypolicy', function (err, privacyPolicy) { if (err) return handleError(res, err) - var content = {} + const content = {} content.title = 'Create Account' content.layout = false content.data = {} @@ -63,12 +63,12 @@ accountsController.signup = function (req, res) { } accountsController.get = function (req, res) { - var user = req.user + const user = req.user if (_.isUndefined(user) || !permissions.canThis(user.role, 'accounts:view')) { return res.redirect('/') } - var content = {} + const content = {} content.title = 'Accounts' content.nav = 'accounts' @@ -80,12 +80,12 @@ accountsController.get = function (req, res) { } accountsController.getCustomers = function (req, res) { - var user = req.user + const user = req.user if (_.isUndefined(user) || !permissions.canThis(user.role, 'accounts:view')) { return res.redirect('/') } - var content = {} + const content = {} content.title = 'Customers' content.nav = 'accounts' content.subnav = 'accounts-customers' @@ -99,12 +99,12 @@ accountsController.getCustomers = function (req, res) { } accountsController.getAgents = function (req, res) { - var user = req.user + const user = req.user if (_.isUndefined(user) || !permissions.canThis(user.role, 'accounts:view')) { return res.redirect('/') } - var content = {} + const content = {} content.title = 'Agents' content.nav = 'accounts' content.subnav = 'accounts-agents' @@ -118,12 +118,12 @@ accountsController.getAgents = function (req, res) { } accountsController.getAdmins = function (req, res) { - var user = req.user + const user = req.user if (_.isUndefined(user) || !permissions.canThis(user.role, 'accounts:view')) { return res.redirect('/') } - var content = {} + const content = {} content.title = 'Admins' content.nav = 'accounts' content.subnav = 'accounts-admins' @@ -137,12 +137,12 @@ accountsController.getAdmins = function (req, res) { } accountsController.importPage = function (req, res) { - var user = req.user + const user = req.user if (_.isUndefined(user) || !permissions.canThis(user.role, 'accounts:import')) { return res.redirect('/') } - var content = {} + const content = {} content.title = 'Accounts - Import' content.nav = 'accounts' @@ -154,15 +154,15 @@ accountsController.importPage = function (req, res) { } accountsController.profile = function (req, res) { - var user = req.user - var backUrl = req.header('Referer') || '/' + const user = req.user + const backUrl = req.header('Referer') || '/' if (_.isUndefined(user)) { req.flash('message', 'Permission Denied.') winston.warn('Undefined User - /Profile') return res.redirect(backUrl) } - var content = {} + const content = {} content.title = 'Profile' content.nav = 'profile' @@ -194,15 +194,15 @@ accountsController.profile = function (req, res) { } accountsController.bindLdap = function (req, res) { - var ldap = require('../ldap') - var postData = req.body + const ldap = require('../ldap') + const postData = req.body if (_.isUndefined(postData)) return res.status(400).json({ success: false, error: 'Invalid Post Data.' }) - var server = postData['ldap-server'] - var dn = postData['ldap-bind-dn'] - var password = postData['ldap-password'] - var searchBase = postData['ldap-search-base'] - var filter = postData['ldap-filter'] + const server = postData['ldap-server'] + const dn = postData['ldap-bind-dn'] + const password = postData['ldap-password'] + const searchBase = postData['ldap-search-base'] + const filter = postData['ldap-filter'] ldap.bind('ldap://' + server, dn, password, function (err) { if (err && !res.headersSent) return res.status(400).json({ success: false, error: err }) @@ -211,12 +211,12 @@ accountsController.bindLdap = function (req, res) { if (err && !res.headersSent) return res.status(400).json({ success: false, error: err }) if (_.isUndefined(results)) return res.status(400).json({ success: false, error: 'Undefined Results' }) - var entries = results.entries - var foundUsers = null + const entries = results.entries + let foundUsers = null ldap.unbind(function (err) { if (err && !res.headersSent) return res.status(400).json({ success: false, error: err }) - var mappedUsernames = _.map(entries, 'sAMAccountName') + let mappedUsernames = _.map(entries, 'sAMAccountName') userSchema.find({ username: mappedUsernames }, function (err, users) { if (err && !res.headersSent) return res.status(400).json({ success: false, error: err }) @@ -226,12 +226,12 @@ accountsController.bindLdap = function (req, res) { mappedUsernames = _.map(foundUsers, 'username') _.each(mappedUsernames, function (mappedUsername) { - var u = _.find(entries, function (f) { + const u = _.find(entries, function (f) { return f.sAMAccountName.toLowerCase() === mappedUsername.toLowerCase() }) if (u) { - var clonedUser = _.find(foundUsers, function (g) { + let clonedUser = _.find(foundUsers, function (g) { return g.username.toLowerCase() === u.sAMAccountName.toLowerCase() }) if (clonedUser) { @@ -376,20 +376,20 @@ accountsController.uploadCSV = function (req, res) { } accountsController.uploadJSON = function (req, res) { - var Busboy = require('busboy') - var busboy = new Busboy({ + const Busboy = require('busboy') + const busboy = new Busboy({ headers: req.headers, limits: { files: 1 } }) - var addedUsers = [] + const addedUsers = [] - var updatedUsers = [] + const updatedUsers = [] - var object = {} - var error + const object = {} + let error busboy.on('file', function (fieldname, file, filename, encoding, mimetype) { if (mimetype.indexOf('application/json') === -1) { error = { @@ -399,7 +399,7 @@ accountsController.uploadJSON = function (req, res) { return file.resume() } - var buffer = '' + let buffer = '' file.on('data', function (data) { buffer += data }) @@ -407,7 +407,7 @@ accountsController.uploadJSON = function (req, res) { file .on('end', function () { object.json = JSON.parse(buffer) - var accounts = object.json.accounts + const accounts = object.json.accounts if (_.isUndefined(accounts)) { return res.status(400).json({ success: false, diff --git a/src/controllers/api/apiUtils.js b/src/controllers/api/apiUtils.js index 339e84063..244925e7a 100644 --- a/src/controllers/api/apiUtils.js +++ b/src/controllers/api/apiUtils.js @@ -12,13 +12,13 @@ * Copyright (c) 2014-2019. All rights reserved. */ -var _ = require('lodash') +const _ = require('lodash') -var apiUtils = {} +const apiUtils = {} apiUtils.sendApiSuccess = function (res, object) { - var sendObject = { success: true } - var resObject = _.merge(sendObject, object) + const sendObject = { success: true } + const resObject = _.merge(sendObject, object) return res.json(resObject) } @@ -31,11 +31,11 @@ apiUtils.sendApiError_InvalidPostData = function (res) { } apiUtils.generateJWTToken = function (dbUser, callback) { - var nconf = require('nconf') - var jwt = require('jsonwebtoken') + const nconf = require('nconf') + const jwt = require('jsonwebtoken') - var resUser = _.clone(dbUser._doc) - var refreshToken = resUser.accessToken + const resUser = _.clone(dbUser._doc) + const refreshToken = resUser.accessToken delete resUser.resetPassExpire delete resUser.resetPassHash delete resUser.password @@ -47,8 +47,8 @@ apiUtils.generateJWTToken = function (dbUser, callback) { delete resUser.deleted delete resUser.hasL2Auth - var secret = nconf.get('tokens') ? nconf.get('tokens').secret : false - var expires = nconf.get('tokens') ? nconf.get('tokens').expires : 3600 + const secret = nconf.get('tokens') ? nconf.get('tokens').secret : false + const expires = nconf.get('tokens') ? nconf.get('tokens').expires : 3600 if (!secret || !expires) return callback({ message: 'Invalid Server Configuration' }) require('../../models/group').getAllGroupsOfUserNoPopulate(dbUser._id, function (err, grps) { @@ -57,7 +57,7 @@ apiUtils.generateJWTToken = function (dbUser, callback) { return g._id }) - var token = jwt.sign({ user: resUser }, secret, { expiresIn: expires }) + const token = jwt.sign({ user: resUser }, secret, { expiresIn: expires }) return callback(null, { token: token, refreshToken: refreshToken }) }) diff --git a/src/controllers/backuprestore.js b/src/controllers/backuprestore.js index 2c49e1dfa..e7454351b 100644 --- a/src/controllers/backuprestore.js +++ b/src/controllers/backuprestore.js @@ -12,13 +12,13 @@ * Copyright (c) 2014-2019. All rights reserved. */ -var _ = require('lodash') -var fs = require('fs-extra') -var path = require('path') -var async = require('async') -var moment = require('moment') +const _ = require('lodash') +const fs = require('fs-extra') +const path = require('path') +const async = require('async') +const moment = require('moment') -var backupRestore = {} +const backupRestore = {} function formatBytes (bytes, fixed) { if (!fixed) fixed = 2 @@ -37,14 +37,14 @@ backupRestore.getBackups = function (req, res) { return path.extname(file).toLowerCase() === '.zip' }) - var fileWithStats = [] + let fileWithStats = [] async.forEach( files, function (f, next) { fs.stat(path.join(__dirname, '../../backups/', f), function (err, stats) { if (err) return next(err) - var obj = {} + const obj = {} obj.size = stats.size obj.sizeFormat = formatBytes(obj.size, 1) obj.filename = f @@ -67,13 +67,13 @@ backupRestore.getBackups = function (req, res) { } backupRestore.runBackup = function (req, res) { - var database = require('../database') - var child = require('child_process').fork(path.join(__dirname, '../../src/backup/backup'), { + const database = require('../database') + const child = require('child_process').fork(path.join(__dirname, '../../src/backup/backup'), { env: { FORK: 1, NODE_ENV: global.env, MONGOURI: database.connectionuri, PATH: process.env.PATH } }) global.forks.push({ name: 'backup', fork: child }) - var result = null + let result = null child.on('message', function (data) { child.kill('SIGINT') @@ -106,7 +106,7 @@ backupRestore.runBackup = function (req, res) { } backupRestore.deleteBackup = function (req, res) { - var filename = req.params.backup + const filename = req.params.backup if (_.isUndefined(filename) || !fs.existsSync(path.join(__dirname, '../../backups/', filename))) { return res.status(400).json({ success: false, error: 'Invalid Filename' }) } @@ -119,9 +119,9 @@ backupRestore.deleteBackup = function (req, res) { } backupRestore.restoreBackup = function (req, res) { - var database = require('../database') + const database = require('../database') - var file = req.body.file + const file = req.body.file if (!file) return res.status(400).json({ success: false, error: 'Invalid File' }) // CHECK IF HAS TOOLS INSTALLED @@ -134,7 +134,7 @@ backupRestore.restoreBackup = function (req, res) { // return res.json({success: true}); // }); - var child = require('child_process').fork(path.join(__dirname, '../../src/backup/restore'), { + const child = require('child_process').fork(path.join(__dirname, '../../src/backup/restore'), { env: { FORK: 1, NODE_ENV: global.env, @@ -145,7 +145,7 @@ backupRestore.restoreBackup = function (req, res) { }) global.forks.push({ name: 'restore', fork: child }) - var result = null + let result = null child.on('message', function (data) { child.kill('SIGINT') @@ -159,7 +159,7 @@ backupRestore.restoreBackup = function (req, res) { } if (data.success) { - var cache = _.find(global.forks, function (f) { + const cache = _.find(global.forks, function (f) { return f.name === 'cache' }) @@ -201,16 +201,16 @@ backupRestore.hasBackupTools = function (req, res) { } backupRestore.uploadBackup = function (req, res) { - var Busboy = require('busboy') - var busboy = new Busboy({ + const Busboy = require('busboy') + const busboy = new Busboy({ headers: req.headers, limits: { files: 1 } }) - var object = {} - var error + const object = {} + let error busboy.on('file', function (fieldname, file, filename, encoding, mimetype) { if ( @@ -228,7 +228,7 @@ backupRestore.uploadBackup = function (req, res) { return file.resume() } - var savePath = path.join(__dirname, '../../backups') + const savePath = path.join(__dirname, '../../backups') fs.ensureDirSync(savePath) object.filePath = path.join(savePath, filename) diff --git a/src/controllers/debug.js b/src/controllers/debug.js index 5542fe14a..8f83ffd79 100644 --- a/src/controllers/debug.js +++ b/src/controllers/debug.js @@ -12,28 +12,28 @@ * Copyright (c) 2014-2019. All rights reserved. */ -var _ = require('lodash') -var async = require('async') -var path = require('path') -var winston = require('../logger') +const _ = require('lodash') +const async = require('async') +const path = require('path') +const winston = require('../logger') -var debugController = {} +const debugController = {} debugController.content = {} debugController.populatedatabase = function (req, res) { - var Chance = require('chance') - var chance = new Chance() - var ticketSchema = require('../models/ticket') - var ticketTypeSchema = require('../models/tickettype') - var userSchema = require('../models/user') - var groupSchema = require('../models/group') - var tagSchema = require('../models/tag') - - var ticketsToSave = [] - var users = [] - - var subjects = [ + const Chance = require('chance') + const chance = new Chance() + const ticketSchema = require('../models/ticket') + const ticketTypeSchema = require('../models/tickettype') + const userSchema = require('../models/user') + const groupSchema = require('../models/group') + const tagSchema = require('../models/tag') + + const ticketsToSave = [] + let users = [] + + const subjects = [ '911 Cad Updates', '911 Copier', '911 Handset', @@ -316,15 +316,15 @@ debugController.populatedatabase = function (req, res) { async.series( [ function (done) { - var roles = global.roles - var userRole = _.find(roles, { normalized: 'user' }) + const roles = global.roles + const userRole = _.find(roles, { normalized: 'user' }) users = [] - for (var i = 0; i < 11; i++) { - var random = Math.floor(Math.random() * (10000 - 1 + 1)) + 1 - var first = chance.first() - var last = chance.last() - var user = { + for (let i = 0; i < 11; i++) { + const random = Math.floor(Math.random() * (10000 - 1 + 1)) + 1 + const first = chance.first() + const last = chance.last() + const user = { username: first + '.' + last, fullname: first + ' ' + last, email: first + '.' + last + random + '@' + chance.domain(), @@ -348,14 +348,14 @@ debugController.populatedatabase = function (req, res) { ticketSchema.remove({}, done) }, function (done) { - var groups = [] - for (var i = 0; i < 11; i++) { - var name = chance.company() + const groups = [] + for (let i = 0; i < 11; i++) { + let name = chance.company() while (_.find(groups, { name: name })) { name = chance.company() } - var group = { + const group = { name: name, __v: 0, members: _.map(users, function (o) { @@ -370,16 +370,16 @@ debugController.populatedatabase = function (req, res) { }, function (done) { // Populate Tags... - var tags = getSampleTags() - var usedTags = [] - var savedTags = [] - for (var i = 0; i < 1001; i++) { - var tag = _.sample(tags) + const tags = getSampleTags() + const usedTags = [] + const savedTags = [] + for (let i = 0; i < 1001; i++) { + const tag = _.sample(tags) if (_.includes(usedTags, tag)) { continue } - var t = { + const t = { name: tag, __v: 0 } @@ -403,21 +403,21 @@ debugController.populatedatabase = function (req, res) { tagSchema.getTags(function (err, tags) { if (err) return done(err) - var loremIpsum = require('lorem-ipsum') - for (var i = 0; i < 100001; i++) { - var user = users[Math.floor(Math.random() * users.length)] - var group = groups[Math.floor(Math.random() * groups.length)] - var type = types[Math.floor(Math.random() * types.length)] - var tagCount = chance.integer({ min: 1, max: 6 }) - var ticketTags = [] - for (var k = 0; k < tagCount; k++) { - var t = tags[Math.floor(Math.random() * tags.length)] + const loremIpsum = require('lorem-ipsum') + for (let i = 0; i < 100001; i++) { + const user = users[Math.floor(Math.random() * users.length)] + const group = groups[Math.floor(Math.random() * groups.length)] + const type = types[Math.floor(Math.random() * types.length)] + const tagCount = chance.integer({ min: 1, max: 6 }) + const ticketTags = [] + for (let k = 0; k < tagCount; k++) { + const t = tags[Math.floor(Math.random() * tags.length)] if (!_.includes(ticketTags, t._id)) { ticketTags.push(t._id) } } - var randomPriority = type.priorities[Math.floor(Math.random() * type.priorities.length)] - var ticket = { + const randomPriority = type.priorities[Math.floor(Math.random() * type.priorities.length)] + const ticket = { __v: 0, // uid: res.value.next, uid: i + 1000, @@ -448,7 +448,7 @@ debugController.populatedatabase = function (req, res) { ticketSchema.collection.insert(ticketsToSave, done) }, function (done) { - var counterSchema = require('../models/counters') + const counterSchema = require('../models/counters') counterSchema.setCounter('tickets', 101001, done) } ], @@ -465,17 +465,17 @@ function randomDate (start, end) { } debugController.sendmail = function (req, res) { - var mailer = require('../mailer') - var templateSchema = require('../models/template') - var Email = require('email-templates') - var templateDir = path.resolve(__dirname, '..', 'mailer', 'templates') + const mailer = require('../mailer') + const templateSchema = require('../models/template') + const Email = require('email-templates') + const templateDir = path.resolve(__dirname, '..', 'mailer', 'templates') - var to = req.query.email + const to = req.query.email if (to === undefined) { return res.status(400).send('Invalid Email in querystring "email"') } - var email = new Email({ + const email = new Email({ views: { root: templateDir, options: { @@ -489,7 +489,7 @@ debugController.sendmail = function (req, res) { // templateSchema.findOne({ name: view }, function (err, template) { // if (err) return reject(err) // if (!template) return reject(new Error('Invalid Template')) - // var html = global.Handlebars.compile(template.data['gjs-fullHtml'])(locals) + // const html = global.Handlebars.compile(template.data['gjs-fullHtml'])(locals) // console.log(html) // email.juiceResources(html).then(resolve) // }) @@ -497,7 +497,7 @@ debugController.sendmail = function (req, res) { // } }) - var ticket = { + const ticket = { uid: 100001, issue: 'This is the test issue', comments: [ @@ -515,7 +515,7 @@ debugController.sendmail = function (req, res) { email .render('ticket-comment-added', { base_url: global.TRUDESK_BASEURL, ticket: ticket, comment: ticket.comments[0] }) .then(function (html) { - var mailOptions = { + const mailOptions = { to: to, subject: 'Trudesk Test Email #' + ticket.uid + ' [Debugger]', html: html, @@ -535,10 +535,10 @@ debugController.sendmail = function (req, res) { } debugController.uploadPlugin = function (req, res) { - var fs = require('fs') - var path = require('path') - var Busboy = require('busboy') - var busboy = new Busboy({ + const fs = require('fs') + const path = require('path') + const Busboy = require('busboy') + const busboy = new Busboy({ headers: req.headers, limits: { files: 1, @@ -546,8 +546,8 @@ debugController.uploadPlugin = function (req, res) { } }) - var object = {} - var error + const object = {} + let error busboy.on('field', function (fieldname, val) { if (fieldname === 'plugin') object.plugin = val @@ -564,7 +564,7 @@ debugController.uploadPlugin = function (req, res) { return file.resume() } - var savePath = path.join(__dirname, '../../public/uploads/plugins') + const savePath = path.join(__dirname, '../../public/uploads/plugins') if (!fs.existsSync(savePath)) fs.mkdirSync(savePath) object.plugin = path.basename(filename) @@ -598,7 +598,7 @@ debugController.uploadPlugin = function (req, res) { // Everything Checks out lets make sure the file exists and then add it to the attachments array if (!fs.existsSync(object.filePath)) return res.status(500).send('File Failed to Save to Disk') - var unzipper = require('unzipper') + const unzipper = require('unzipper') fs.createReadStream(object.filePath).pipe(unzipper.Extract({ path: path.join(__dirname, '../../plugins') })) return res.sendStatus(200) @@ -608,7 +608,7 @@ debugController.uploadPlugin = function (req, res) { } function getSampleTags () { - var tags = [ + const tags = [ 'javascript', 'java', 'c#', @@ -750,7 +750,7 @@ function getSampleTags () { 'asp.net-mvc-3', 'debugging', 'dictionary', - 'variables', + 'constiables', 'session', 'unix', 'jquery-ui', diff --git a/src/controllers/departments.js b/src/controllers/departments.js index 096b07e5c..0d357e9fb 100644 --- a/src/controllers/departments.js +++ b/src/controllers/departments.js @@ -12,19 +12,19 @@ * Copyright (c) 2014-2019. All rights reserved. */ -var _ = require('lodash') -var permissions = require('../permissions') -var Department = require('../models/department') +const _ = require('lodash') +const permissions = require('../permissions') +const Department = require('../models/department') -var departmentController = {} +const departmentController = {} departmentController.get = function (req, res) { - var user = req.user + const user = req.user if (_.isUndefined(user) || !permissions.canThis(user.role, 'departments:view')) { return res.redirect('/') } - var content = {} + const content = {} content.title = 'Departments' content.nav = 'departments' diff --git a/src/controllers/editor.js b/src/controllers/editor.js index 34c821cbb..6cd78ac51 100644 --- a/src/controllers/editor.js +++ b/src/controllers/editor.js @@ -12,16 +12,16 @@ * Copyright (c) 2014-2019. All rights reserved. */ -var _ = require('lodash') -var path = require('path') -var fs = require('fs-extra') -var Busboy = require('busboy') -var templateSchema = require('../models/template') +const _ = require('lodash') +const path = require('path') +const fs = require('fs-extra') +const Busboy = require('busboy') +const templateSchema = require('../models/template') -var editor = {} +const editor = {} editor.page = function (req, res) { - var content = {} + const content = {} content.title = 'Editor' content.nav = 'settings' @@ -34,7 +34,7 @@ editor.page = function (req, res) { } editor.getAssets = function (req, res) { - var imageExts = ['.gif', '.png', '.jpg', '.jpeg', '.ico', '.bmp'] + const imageExts = ['.gif', '.png', '.jpg', '.jpeg', '.ico', '.bmp'] fs.ensureDirSync(path.join(__dirname, '../../public/uploads/assets/upload')) @@ -54,10 +54,10 @@ editor.getAssets = function (req, res) { } editor.removeAsset = function (req, res) { - var id = req.body.fileUrl + const id = req.body.fileUrl if (!id) return res.status(400).json({ success: false, error: 'Invalid File' }) - var file = path.basename(id) + const file = path.basename(id) fs.unlink(path.join(__dirname, '../../public/uploads/assets/upload', file), function (err) { if (err) return res.status(500).json({ success: false, error: err }) @@ -66,8 +66,8 @@ editor.removeAsset = function (req, res) { } editor.assetsUpload = function (req, res) { - // var chance = new Chance() - var busboy = new Busboy({ + // const chance = new Chance() + const busboy = new Busboy({ headers: req.headers, limits: { files: 1, @@ -75,8 +75,8 @@ editor.assetsUpload = function (req, res) { } }) - var object = {} - var error + const object = {} + let error busboy.on('file', function (fieldname, file, filename, encoding, mimetype) { if (mimetype.indexOf('image/') === -1) { @@ -88,10 +88,10 @@ editor.assetsUpload = function (req, res) { return file.resume() } - // var ext = path.extname(filename) + // const ext = path.extname(filename) - var savePath = path.join(__dirname, '../../public/uploads/assets/upload') - // var sanitizedFilename = chance.hash({ length: 20 }) + ext + const savePath = path.join(__dirname, '../../public/uploads/assets/upload') + // const sanitizedFilename = chance.hash({ length: 20 }) + ext if (!fs.existsSync(savePath)) fs.ensureDirSync(savePath) object.filePath = path.join(savePath, filename) @@ -130,9 +130,9 @@ editor.assetsUpload = function (req, res) { if (!fs.existsSync(object.filePath)) return res.status(500).json({ success: false, error: { message: 'File Failed to Save to Disk' } }) - var includePort = global.TRUDESK_PORT && global.TRUDESK_PORT !== (80 || 443) + const includePort = global.TRUDESK_PORT && global.TRUDESK_PORT !== (80 || 443) - var fileUrl = + const fileUrl = req.protocol + '://' + req.hostname + @@ -140,7 +140,7 @@ editor.assetsUpload = function (req, res) { '/uploads/assets/upload/' + object.filename - // var dimensions = sizeOf(fileUrl) + // const dimensions = sizeOf(fileUrl) return res.json({ success: true, @@ -165,7 +165,7 @@ editor.load = function (req, res) { } editor.save = function (req, res) { - var name = req.body.template + const name = req.body.template delete req.body.template templateSchema.findOneAndUpdate( { name: name }, diff --git a/src/controllers/groups.js b/src/controllers/groups.js index 9b3abde5a..ea0e9a5c2 100644 --- a/src/controllers/groups.js +++ b/src/controllers/groups.js @@ -12,24 +12,24 @@ * Copyright (c) 2014-2019. All rights reserved. */ -var async = require('async') -var _ = require('lodash') -var userSchema = require('../models/user') -var groupSchema = require('../models/group') -var permissions = require('../permissions') +const async = require('async') +const _ = require('lodash') +const userSchema = require('../models/user') +const groupSchema = require('../models/group') +const permissions = require('../permissions') -var groupsController = {} +const groupsController = {} groupsController.content = {} groupsController.get = function (req, res) { - var user = req.user + const user = req.user if (_.isUndefined(user) || !permissions.canThis(user.role, 'groups:view')) { req.flash('message', 'Permission Denied.') return res.redirect('/') } - var content = {} + const content = {} content.title = 'Groups' content.nav = 'groups' @@ -55,13 +55,13 @@ groupsController.get = function (req, res) { } groupsController.getCreate = function (req, res) { - var user = req.user + const user = req.user if (_.isUndefined(user) || !permissions.canThis(user.role, 'groups:create')) { req.flash('message', 'Permission Denied.') return res.redirect('/') } - var content = {} + const content = {} content.title = 'Groups' content.nav = 'groups' @@ -81,13 +81,13 @@ groupsController.getCreate = function (req, res) { } groupsController.edit = function (req, res) { - var user = req.user + const user = req.user if (_.isUndefined(user) || !permissions.canThis(user.role, 'groups:edit')) { req.flash('message', 'Permission Denied.') return res.redirect('/') } - var content = {} + const content = {} content.title = 'Groups' content.nav = 'groups' @@ -95,7 +95,7 @@ groupsController.edit = function (req, res) { content.data.user = req.user content.data.common = req.viewdata content.data.users = [] - var groupId = req.params.id + const groupId = req.params.id if (_.isUndefined(groupId)) return res.redirect('/groups/') async.parallel( diff --git a/src/controllers/index.js b/src/controllers/index.js index 13856055a..3f8f09926 100644 --- a/src/controllers/index.js +++ b/src/controllers/index.js @@ -12,7 +12,7 @@ * Copyright (c) 2014-2019. All rights reserved. */ -var Controllers = { +const Controllers = { install: require('./install'), main: require('./main'), tickets: require('./tickets'), diff --git a/src/controllers/install.js b/src/controllers/install.js index f6f956c81..769952b91 100644 --- a/src/controllers/install.js +++ b/src/controllers/install.js @@ -12,18 +12,18 @@ * Copyright (c) 2014-2019. All rights reserved. */ -var async = require('async') -var path = require('path') -var _ = require('lodash') -var winston = require('../logger') -var pkg = require('../../package') -var Chance = require('chance') - -var installController = {} +const async = require('async') +const path = require('path') +const _ = require('lodash') +const winston = require('../logger') +const pkg = require('../../package') +const Chance = require('chance') + +const installController = {} installController.content = {} installController.index = function (req, res) { - var content = {} + const content = {} content.title = 'Install Trudesk' content.layout = false @@ -34,10 +34,10 @@ installController.index = function (req, res) { } installController.elastictest = function (req, res) { - var data = req.body - var CONNECTION_URI = data.host + ':' + data.port + const data = req.body + const CONNECTION_URI = data.host + ':' + data.port - var child = require('child_process').fork(path.join(__dirname, '../../src/install/elasticsearchtest'), { + const child = require('child_process').fork(path.join(__dirname, '../../src/install/elasticsearchtest'), { env: { FORK: 1, NODE_ENV: global.env, ELASTICSEARCH_URI: CONNECTION_URI } }) global.forks.push({ name: 'elastictest', fork: child }) @@ -53,15 +53,15 @@ installController.elastictest = function (req, res) { } installController.mongotest = function (req, res) { - var data = req.body - var dbPassword = encodeURIComponent(data.password) - var CONNECTION_URI = + const data = req.body + const dbPassword = encodeURIComponent(data.password) + let CONNECTION_URI = 'mongodb://' + data.username + ':' + dbPassword + '@' + data.host + ':' + data.port + '/' + data.database if (data.port === '---') CONNECTION_URI = 'mongodb+srv://' + data.username + ':' + dbPassword + '@' + data.host + '/' + data.database - var child = require('child_process').fork(path.join(__dirname, '../../src/install/mongotest'), { + const child = require('child_process').fork(path.join(__dirname, '../../src/install/mongotest'), { env: { FORK: 1, NODE_ENV: global.env, MONGOTESTURI: CONNECTION_URI } }) @@ -79,21 +79,21 @@ installController.mongotest = function (req, res) { } installController.existingdb = function (req, res) { - var data = req.body + const data = req.body // Mongo - var host = data.host - var port = data.port - var database = data.database - var username = data.username - var password = data.password + const host = data.host + const port = data.port + const database = data.database + const username = data.username + const password = data.password // Write Configfile - var fs = require('fs') - var chance = new Chance() - var configFile = path.join(__dirname, '../../config.json') + const fs = require('fs') + const chance = new Chance() + const configFile = path.join(__dirname, '../../config.json') - var conf = { + const conf = { mongo: { host: host, port: port, @@ -118,33 +118,33 @@ installController.existingdb = function (req, res) { } installController.install = function (req, res) { - var db = require('../database') - var roleSchema = require('../models/role') - var roleOrderSchema = require('../models/roleorder') - var UserSchema = require('../models/user') - var GroupSchema = require('../models/group') - var Counters = require('../models/counters') - var TicketTypeSchema = require('../models/tickettype') - var SettingsSchema = require('../models/setting') + const db = require('../database') + const roleSchema = require('../models/role') + const roleOrderSchema = require('../models/roleorder') + const UserSchema = require('../models/user') + const GroupSchema = require('../models/group') + const Counters = require('../models/counters') + const TicketTypeSchema = require('../models/tickettype') + const SettingsSchema = require('../models/setting') - var data = req.body + const data = req.body // Mongo - var host = data['mongo[host]'] - var port = data['mongo[port]'] - var database = data['mongo[database]'] - var username = data['mongo[username]'] - var password = data['mongo[password]'] + const host = data['mongo[host]'] + const port = data['mongo[port]'] + const database = data['mongo[database]'] + const username = data['mongo[username]'] + const password = data['mongo[password]'] // ElasticSearch - var eEnabled = data['elastic[enable]'] + let eEnabled = data['elastic[enable]'] if (typeof eEnabled === 'string') eEnabled = eEnabled.toLowerCase() === 'true' - var eHost = data['elastic[host]'] - var ePort = data['elastic[port]'] + const eHost = data['elastic[host]'] + const ePort = data['elastic[port]'] // Account - var user = { + const user = { username: data['account[username]'], password: data['account[password]'], passconfirm: data['account[cpassword]'], @@ -152,8 +152,8 @@ installController.install = function (req, res) { fullname: data['account[fullname]'] } - var dbPassword = encodeURIComponent(password) - var conuri = 'mongodb://' + username + ':' + dbPassword + '@' + host + ':' + port + '/' + database + const dbPassword = encodeURIComponent(password) + let conuri = 'mongodb://' + username + ':' + dbPassword + '@' + host + ':' + port + '/' + database if (port === '---') conuri = 'mongodb+srv://' + username + ':' + dbPassword + '@' + host + '/' + database async.waterfall( @@ -164,7 +164,7 @@ installController.install = function (req, res) { }, conuri) }, function (next) { - var s = new SettingsSchema({ + const s = new SettingsSchema({ name: 'gen:version', value: require('../../package.json').version }) @@ -213,7 +213,7 @@ installController.install = function (req, res) { ) }, function (next) { - var Counter = new Counters({ + const Counter = new Counters({ _id: 'tickets', next: 1001 }) @@ -223,7 +223,7 @@ installController.install = function (req, res) { }) }, function (next) { - var Counter = new Counters({ + const Counter = new Counters({ _id: 'reports', next: 1001 }) @@ -233,7 +233,7 @@ installController.install = function (req, res) { }) }, function (next) { - var type = new TicketTypeSchema({ + const type = new TicketTypeSchema({ name: 'Issue' }) @@ -242,7 +242,7 @@ installController.install = function (req, res) { }) }, function (next) { - var type = new TicketTypeSchema({ + const type = new TicketTypeSchema({ name: 'Task' }) @@ -251,8 +251,8 @@ installController.install = function (req, res) { }) }, function (next) { - var defaults = require('../settings/defaults') - var roleResults = {} + const defaults = require('../settings/defaults') + const roleResults = {} async.parallel( [ function (done) { @@ -304,7 +304,7 @@ installController.install = function (req, res) { ) }, function (roleResults, next) { - var TeamSchema = require('../models/team') + const TeamSchema = require('../models/team') TeamSchema.create( { name: 'Support (Default)', @@ -330,8 +330,8 @@ installController.install = function (req, res) { return next('Passwords do not match!') } - var chance = new Chance() - var adminUser = new UserSchema({ + const chance = new Chance() + const adminUser = new UserSchema({ username: user.username, password: user.password, fullname: user.fullname, @@ -370,7 +370,7 @@ installController.install = function (req, res) { }) }, function (defaultTeam, next) { - var DepartmentSchema = require('../models/department') + const DepartmentSchema = require('../models/department') DepartmentSchema.create( { name: 'Support - All Groups (Default)', @@ -385,8 +385,8 @@ installController.install = function (req, res) { }, function (next) { if (!process.env.TRUDESK_DOCKER) return next() - var S = require('../models/setting') - var installed = new S({ + const S = require('../models/setting') + const installed = new S({ name: 'installed', value: true }) @@ -403,11 +403,11 @@ installController.install = function (req, res) { function (next) { if (process.env.TRUDESK_DOCKER) return next() // Write Configfile - var fs = require('fs') - var configFile = path.join(__dirname, '../../config.json') - var chance = new Chance() + const fs = require('fs') + const configFile = path.join(__dirname, '../../config.json') + const chance = new Chance() - var conf = { + const conf = { mongo: { host: host, port: port, @@ -443,7 +443,7 @@ installController.install = function (req, res) { } installController.restart = function (req, res) { - var pm2 = require('pm2') + const pm2 = require('pm2') pm2.connect(function (err) { if (err) { winston.error(err) diff --git a/src/controllers/main.js b/src/controllers/main.js index 8700cc924..a2ea5a45a 100644 --- a/src/controllers/main.js +++ b/src/controllers/main.js @@ -12,28 +12,28 @@ * Copyright (c) 2014-2019. All rights reserved. */ -var _ = require('lodash') -var async = require('async') -var path = require('path') -var passport = require('passport') -var winston = require('winston') -var pkg = require('../../package') -var xss = require('xss') +const _ = require('lodash') +const async = require('async') +const path = require('path') +const passport = require('passport') +const winston = require('winston') +const pkg = require('../../package') +const xss = require('xss') -var mainController = {} +const mainController = {} mainController.content = {} mainController.index = function (req, res) { - var content = {} + const content = {} content.title = 'Login' content.layout = false content.flash = req.flash('loginMessage') - var settingsUtil = require('../settings/settingsUtil') + const settingsUtil = require('../settings/settingsUtil') settingsUtil.getSettings(function (err, s) { if (err) throw new Error(err) - var settings = s.data.settings + const settings = s.data.settings content.siteTitle = settings.siteTitle.value content.allowUserRegistration = settings.allowUserRegistration.value @@ -55,9 +55,9 @@ mainController.index = function (req, res) { } mainController.about = function (req, res) { - var pkg = require('../../package.json') - var marked = require('marked') - var settings = require('../models/setting') + const pkg = require('../../package.json') + const marked = require('marked') + const settings = require('../models/setting') settings.getSettingByName('legal:privacypolicy', function (err, privacyPolicy) { if (err) return res.render('error', { @@ -66,7 +66,7 @@ mainController.about = function (req, res) { message: err.message }) - var content = {} + const content = {} content.title = 'About' content.nav = 'about' @@ -86,7 +86,7 @@ mainController.about = function (req, res) { } mainController.dashboard = function (req, res) { - var content = {} + const content = {} content.title = 'Dashboard' content.nav = 'dashboard' @@ -105,7 +105,7 @@ mainController.loginPost = function (req, res, next) { } if (!user) return res.redirect('/') - var redirectUrl = '/dashboard' + let redirectUrl = '/dashboard' if (req.session.redirectUrl) { redirectUrl = req.session.redirectUrl @@ -141,7 +141,7 @@ mainController.l2AuthPost = function (req, res, next) { req.session.l2auth = 'totp' - var redirectUrl = '/dashboard' + let redirectUrl = '/dashboard' if (req.session.redirectUrl) { redirectUrl = req.session.redirectUrl @@ -160,13 +160,13 @@ mainController.logout = function (req, res) { } mainController.forgotL2Auth = function (req, res) { - var data = req.body + const data = req.body if (_.isUndefined(data['forgotl2auth-email'])) { return res.status(400).send('No Form Data') } - var email = data['forgotl2auth-email'] - var userSchema = require('../models/user') + const email = data['forgotl2auth-email'] + const userSchema = require('../models/user') userSchema.getUserByEmail(email, function (err, user) { if (err) { return res.status(400).send(err.message) @@ -176,11 +176,11 @@ mainController.forgotL2Auth = function (req, res) { return res.status(400).send('Invalid Email: Account not found!') } - var Chance = require('chance') - var chance = new Chance() + const Chance = require('chance') + const chance = new Chance() user.resetL2AuthHash = chance.hash({ casing: 'upper' }) - var expireDate = new Date() + const expireDate = new Date() expireDate.setDate(expireDate.getDate() + 2) user.resetL2AuthExpire = expireDate @@ -189,11 +189,11 @@ mainController.forgotL2Auth = function (req, res) { return res.status(400).send(err.message) } - var mailer = require('../mailer') - var Email = require('email-templates') - var templateDir = path.resolve(__dirname, '..', 'mailer', 'templates') + const mailer = require('../mailer') + const Email = require('email-templates') + const templateDir = path.resolve(__dirname, '..', 'mailer', 'templates') - var email = new Email({ + const email = new Email({ views: { root: templateDir, options: { @@ -204,7 +204,7 @@ mainController.forgotL2Auth = function (req, res) { savedUser = savedUser.toJSON() - var data = { + const data = { base_url: req.protocol + '://' + req.get('host'), user: savedUser } @@ -212,7 +212,7 @@ mainController.forgotL2Auth = function (req, res) { email .render('l2auth-reset', data) .then(function (html) { - var mailOptions = { + const mailOptions = { to: savedUser.email, subject: '[Trudesk] Account Recovery', html: html, @@ -237,13 +237,13 @@ mainController.forgotL2Auth = function (req, res) { } mainController.forgotPass = function (req, res) { - var data = req.body + const data = req.body if (_.isUndefined(data['forgotPass-email'])) { return res.status(400).send('No Form Data') } - var email = data['forgotPass-email'] - var userSchema = require('../models/user') + const email = data['forgotPass-email'] + const userSchema = require('../models/user') userSchema.getUserByEmail(email, function (err, user) { if (err) { req.flash(err) @@ -257,11 +257,11 @@ mainController.forgotPass = function (req, res) { // Found user send Password Reset Email. // Set User Reset Hash and Expire Date. - var Chance = require('chance') - var chance = new Chance() + const Chance = require('chance') + const chance = new Chance() user.resetPassHash = chance.hash({ casing: 'upper' }) - var expireDate = new Date() + const expireDate = new Date() expireDate.setDate(expireDate.getDate() + 2) user.resetPassExpire = expireDate @@ -272,16 +272,16 @@ mainController.forgotPass = function (req, res) { } // Send mail - var mailer = require('../mailer') - var Email = require('email-templates') - var templateDir = path.resolve(__dirname, '..', 'mailer', 'templates') - var templateSchema = require('../models/template') + const mailer = require('../mailer') + const Email = require('email-templates') + const templateDir = path.resolve(__dirname, '..', 'mailer', 'templates') + const templateSchema = require('../models/template') - var email = null + let email = null savedUser = savedUser.toJSON() - var data = { + const data = { base_url: req.protocol + '://' + req.get('host'), user: savedUser } @@ -289,10 +289,10 @@ mainController.forgotPass = function (req, res) { async.waterfall( [ function (next) { - var settingsSchema = require('../models/setting') + const settingsSchema = require('../models/setting') settingsSchema.getSetting('beta:email', function (err, setting) { if (err) return next(err) - var betaEnabled = !setting ? false : setting.value + const betaEnabled = !setting ? false : setting.value return next(null, betaEnabled) }) @@ -310,7 +310,7 @@ mainController.forgotPass = function (req, res) { templateSchema.findOne({ name: view }, function (err, template) { if (err) return reject(err) if (!template) return reject(new Error('Invalid Template')) - var html = global.Handlebars.compile(template.data['gjs-fullHtml'])(locals) + const html = global.Handlebars.compile(template.data['gjs-fullHtml'])(locals) email.juiceResources(html).then(resolve) }) }) @@ -342,13 +342,13 @@ mainController.forgotPass = function (req, res) { return res.status(500).send(err) } - var subject = '[Trudesk] Password Reset Request' + let subject = '[Trudesk] Password Reset Request' if (template) subject = global.Handlebars.compile(template.subject)(data) email .render('password-reset', data) .then(function (html) { - var mailOptions = { + const mailOptions = { to: savedUser.email, subject: subject, html: html, @@ -375,12 +375,12 @@ mainController.forgotPass = function (req, res) { } mainController.resetl2auth = function (req, res) { - var hash = req.params.hash + const hash = req.params.hash if (_.isUndefined(hash)) { return res.status(400).send('Invalid Link!') } - var userSchema = require('../models/user') + const userSchema = require('../models/user') userSchema.getUserByL2ResetHash(hash, function (err, user) { if (err) { return res.status(400).send('Invalid Link!') @@ -390,7 +390,7 @@ mainController.resetl2auth = function (req, res) { return res.status(400).send('Invalid Link!') } - var now = new Date() + const now = new Date() if (now < user.resetL2AuthExpire) { user.tOTPKey = undefined user.hasL2Auth = false @@ -403,11 +403,11 @@ mainController.resetl2auth = function (req, res) { } // Send mail - var mailer = require('../mailer') - var Email = require('email-templates') - var templateDir = path.resolve(__dirname, '..', 'mailer', 'templates') + const mailer = require('../mailer') + const Email = require('email-templates') + const templateDir = path.resolve(__dirname, '..', 'mailer', 'templates') - var email = new Email({ + const email = new Email({ views: { root: templateDir, options: { @@ -421,7 +421,7 @@ mainController.resetl2auth = function (req, res) { email .render('l2auth-cleared', user) .then(function (html) { - var mailOptions = { + const mailOptions = { to: updated.email, subject: '[Trudesk] Two-Factor Authentication Removed!', html: html, @@ -452,13 +452,13 @@ mainController.resetl2auth = function (req, res) { } mainController.resetPass = function (req, res) { - var hash = req.params.hash + const hash = req.params.hash if (_.isUndefined(hash)) { return res.status(400).send('Invalid Link!') } - var userSchema = require('../models/user') + const userSchema = require('../models/user') userSchema.getUserByResetHash(hash, function (err, user) { if (err) { return res.status(400).send('Invalid Link!') @@ -468,11 +468,11 @@ mainController.resetPass = function (req, res) { return res.status(400).send('Invalid Link!') } - var now = new Date() + const now = new Date() if (now < user.resetPassExpire) { - var Chance = require('chance') - var chance = new Chance() - var gPass = chance.string({ length: 8 }) + const Chance = require('chance') + const chance = new Chance() + const gPass = chance.string({ length: 8 }) user.password = gPass user.resetPassHash = undefined @@ -484,11 +484,11 @@ mainController.resetPass = function (req, res) { } // Send mail - var mailer = require('../mailer') - var Email = require('email-templates') - var templateDir = path.resolve(__dirname, '..', 'mailer', 'templates') + const mailer = require('../mailer') + const Email = require('email-templates') + const templateDir = path.resolve(__dirname, '..', 'mailer', 'templates') - var email = new Email({ + const email = new Email({ views: { root: templateDir, options: { @@ -499,7 +499,7 @@ mainController.resetPass = function (req, res) { updated = updated.toJSON() - var data = { + const data = { password: gPass, user: updated } @@ -507,7 +507,7 @@ mainController.resetPass = function (req, res) { email .render('new-password', data) .then(function (html) { - var mailOptions = { + const mailOptions = { to: updated.email, subject: '[Trudesk] New Password', html: html, @@ -541,11 +541,11 @@ mainController.l2authget = function (req, res) { return res.redirect('/') } - var content = {} + const content = {} content.title = 'Login' content.layout = false - var settings = require('../models/setting') + const settings = require('../models/setting') settings.getSettingByName('mailer:enable', function (err, setting) { if (err) { throw new Error(err) diff --git a/src/controllers/messages.js b/src/controllers/messages.js index 73385724d..f4e091ba0 100644 --- a/src/controllers/messages.js +++ b/src/controllers/messages.js @@ -12,22 +12,17 @@ * Copyright (c) 2014-2019. All rights reserved. */ -var _ = require('lodash') - -var async = require('async') - -var winston = require('winston') - -var conversationSchema = require('../models/chat/conversation') - -var messageSchema = require('../models/chat/message') - -var messagesController = {} +const _ = require('lodash') +const async = require('async') +const winston = require('../logger') +const conversationSchema = require('../models/chat/conversation') +const messageSchema = require('../models/chat/message') +const messagesController = {} messagesController.content = {} messagesController.get = function (req, res) { - var content = {} + const content = {} content.title = 'Messages' content.nav = 'messages' content.data = {} @@ -45,9 +40,9 @@ messagesController.get = function (req, res) { async.eachSeries( convos, function (convo, done) { - var c = convo.toObject() + const c = convo.toObject() - var userMeta = + const userMeta = convo.userMeta[ _.findIndex(convo.userMeta, function (item) { return item.userId.toString() === req.user._id.toString() @@ -96,10 +91,10 @@ messagesController.get = function (req, res) { } messagesController.getConversation = function (req, res) { - var cid = req.params.convoid + const cid = req.params.convoid if (_.isUndefined(cid)) return handleError(res, 'Invalid Conversation ID!') - var content = {} + const content = {} content.title = 'Messages' content.nav = 'messages' content.data = {} @@ -116,7 +111,7 @@ messagesController.getConversation = function (req, res) { async.eachSeries( convos, function (convo, done) { - var userMeta = + const userMeta = convo.userMeta[ _.findIndex(convo.userMeta, function (item) { return item.userId.toString() === req.user._id.toString() @@ -131,7 +126,7 @@ messagesController.getConversation = function (req, res) { return done() } - var c = convo.toObject() + const c = convo.toObject() messageSchema.getMostRecentMessage(c._id, function (err, rm) { if (err) return done(err) @@ -185,7 +180,7 @@ messagesController.getConversation = function (req, res) { return res.redirect('/messages') } - var c = convo.toObject() + const c = convo.toObject() messageSchema.getConversationWithObject( { cid: c._id, userMeta: convo.userMeta, requestingUser: req.user }, function (err, messages) { diff --git a/src/controllers/notices.js b/src/controllers/notices.js index 9cf63cc20..77ab81e88 100644 --- a/src/controllers/notices.js +++ b/src/controllers/notices.js @@ -12,11 +12,11 @@ * Copyright (c) 2014-2019. All rights reserved. */ -var _ = require('lodash') -var noticeSchema = require('../models/notice') -var permissions = require('../permissions') +const _ = require('lodash') +const noticeSchema = require('../models/notice') +const permissions = require('../permissions') -var noticesController = {} +const noticesController = {} function handleError (res, err) { if (err) { @@ -29,13 +29,13 @@ function handleError (res, err) { } noticesController.get = function (req, res) { - var user = req.user + const user = req.user if (_.isUndefined(user) || !permissions.canThis(user.role, 'notices:create')) { req.flash('message', 'Permission Denied.') return res.redirect('/') } - var content = {} + const content = {} content.title = 'Notices' content.nav = 'notices' @@ -48,13 +48,13 @@ noticesController.get = function (req, res) { } noticesController.create = function (req, res) { - var user = req.user + const user = req.user if (_.isUndefined(user) || !permissions.canThis(user.role, 'notices:create')) { req.flash('message', 'Permission Denied.') return res.redirect('/') } - var content = {} + const content = {} content.title = 'Notices - Create' content.nav = 'notices' @@ -66,13 +66,13 @@ noticesController.create = function (req, res) { } noticesController.edit = function (req, res) { - var user = req.user + const user = req.user if (_.isUndefined(user) || !permissions.canThis(user.role, 'notices:update')) { req.flash('message', 'Permission Denied.') return res.redirect('/') } - var content = {} + const content = {} content.title = 'Notices - Edit' content.nav = 'notices' diff --git a/src/controllers/plugins.js b/src/controllers/plugins.js index d8bed49c6..c9b6e6f08 100644 --- a/src/controllers/plugins.js +++ b/src/controllers/plugins.js @@ -12,10 +12,10 @@ * Copyright (c) 2014-2019. All rights reserved. */ -var pluginsController = {} +const pluginsController = {} pluginsController.get = function (req, res) { - var content = {} + const content = {} content.title = 'Plugins' content.nav = 'plugins' diff --git a/src/controllers/reports.js b/src/controllers/reports.js index 62507ec12..027eccb83 100644 --- a/src/controllers/reports.js +++ b/src/controllers/reports.js @@ -12,21 +12,21 @@ * Copyright (c) 2014-2019. All rights reserved. */ -var _ = require('lodash') -var permissions = require('../permissions') +const _ = require('lodash') +const permissions = require('../permissions') -var reportsController = {} +const reportsController = {} reportsController.content = {} reportsController.overview = function (req, res) { - var user = req.user + const user = req.user if (_.isUndefined(user) || !permissions.canThis(user.role, 'reports:view')) { req.flash('message', 'Permission Denied.') return res.redirect('/') } - var content = {} + const content = {} content.title = 'Overview' content.nav = 'reports' content.subnav = 'reports-overview' @@ -42,13 +42,13 @@ reportsController.overview = function (req, res) { } reportsController.generate = function (req, res) { - var user = req.user + const user = req.user if (_.isUndefined(user) || !permissions.canThis(user.role, 'reports:create')) { req.flash('message', 'Permission Denied.') return res.redirect('/') } - var content = {} + const content = {} content.title = 'Generate Report' content.nav = 'reports' content.subnav = 'reports-generate' @@ -57,7 +57,7 @@ reportsController.generate = function (req, res) { content.data.user = req.user content.data.common = req.viewdata - var prioritySchema = require('../models/ticketpriority') + const prioritySchema = require('../models/ticketpriority') prioritySchema.getPriorities(function (err, priorities) { if (err) { return res.render('error', { @@ -74,13 +74,13 @@ reportsController.generate = function (req, res) { } reportsController.breakdownGroup = function (req, res) { - var user = req.user + const user = req.user if (_.isUndefined(user) || !permissions.canThis(user.role, 'reports:view')) { req.flash('message', 'Permission Denied.') return res.redirect('/') } - var content = {} + const content = {} content.title = 'Group Breakdown' content.nav = 'reports' content.subnav = 'reports-breakdown-group' @@ -96,13 +96,13 @@ reportsController.breakdownGroup = function (req, res) { } reportsController.breakdownUser = function (req, res) { - var user = req.user + const user = req.user if (_.isUndefined(user) || !permissions.canThis(user.role, 'reports:view')) { req.flash('message', 'Permission Denied.') return res.redirect('/') } - var content = {} + const content = {} content.title = 'User Breakdown' content.nav = 'reports' content.subnav = 'reports-breakdown-user' diff --git a/src/controllers/servers.js b/src/controllers/servers.js index 6901a1257..47514d783 100644 --- a/src/controllers/servers.js +++ b/src/controllers/servers.js @@ -12,12 +12,12 @@ * Copyright (c) 2014-2019. All rights reserved. */ -var serversController = {} +const serversController = {} serversController.content = {} serversController.get = function (req, res) { - var content = {} + const content = {} content.title = 'Servers' content.nav = 'servers' content.data = {} diff --git a/src/controllers/settings.js b/src/controllers/settings.js index 1b31371d6..ea7002904 100644 --- a/src/controllers/settings.js +++ b/src/controllers/settings.js @@ -12,16 +12,16 @@ * Copyright (c) 2014-2019. All rights reserved. */ -var _ = require('lodash') -var permissions = require('../permissions') -var settingsUtil = require('../settings/settingsUtil') +const _ = require('lodash') +const permissions = require('../permissions') +const settingsUtil = require('../settings/settingsUtil') -var settingsController = {} +const settingsController = {} settingsController.content = {} function initViewContent (view, req) { - var content = {} + const content = {} content.title = 'Settings' content.nav = 'settings' content.subnav = 'settings-' + view @@ -34,7 +34,7 @@ function initViewContent (view, req) { } function checkPerms (req, role) { - var user = req.user + const user = req.user if (_.isUndefined(user) || !permissions.canThis(user.role, role)) { req.flash('message', 'Permission Denied.') @@ -71,7 +71,7 @@ function renderView (res, content) { settingsController.general = function (req, res) { if (!checkPerms(req, 'settings:view')) return res.redirect('/') - var content = initViewContent('general', req) + const content = initViewContent('general', req) renderView(res, content) } @@ -79,7 +79,7 @@ settingsController.general = function (req, res) { settingsController.appearance = function (req, res) { if (!checkPerms(req, 'settings:view')) return res.redirect('/') - var content = initViewContent('appearance', req) + const content = initViewContent('appearance', req) renderView(res, content) } @@ -87,7 +87,7 @@ settingsController.appearance = function (req, res) { settingsController.ticketSettings = function (req, res) { if (!checkPerms(req, 'settings:tickets')) return res.redirect('/settings') - var content = initViewContent('tickets', req) + const content = initViewContent('tickets', req) renderView(res, content) } @@ -95,7 +95,7 @@ settingsController.ticketSettings = function (req, res) { settingsController.mailerSettings = function (req, res) { if (!checkPerms(req, 'settings:mailer')) return res.redirect('/settings') - var content = initViewContent('mailer', req) + const content = initViewContent('mailer', req) renderView(res, content) } @@ -103,7 +103,7 @@ settingsController.mailerSettings = function (req, res) { settingsController.permissionsSettings = function (req, res) { if (!checkPerms(req, 'settings:permissions')) return res.redirect('/settings') - var content = initViewContent('permissions', req) + const content = initViewContent('permissions', req) renderView(res, content) } @@ -111,7 +111,7 @@ settingsController.permissionsSettings = function (req, res) { settingsController.notificationsSettings = function (req, res) { if (!checkPerms(req, 'settings:notifications')) return res.redirect('/settings') - var content = initViewContent('notifications', req) + const content = initViewContent('notifications', req) renderView(res, content) } @@ -119,7 +119,7 @@ settingsController.notificationsSettings = function (req, res) { settingsController.elasticsearchSettings = function (req, res) { if (!checkPerms(req, 'settings:elasticsearch')) return res.redirect('/settings') - var content = initViewContent('elasticsearch', req) + const content = initViewContent('elasticsearch', req) renderView(res, content) } @@ -127,7 +127,7 @@ settingsController.elasticsearchSettings = function (req, res) { settingsController.tpsSettings = function (req, res) { if (!checkPerms(req, 'settings:tps')) return res.redirect('/settings') - var content = initViewContent('tps', req) + const content = initViewContent('tps', req) renderView(res, content) } @@ -135,13 +135,13 @@ settingsController.tpsSettings = function (req, res) { settingsController.backupSettings = function (req, res) { if (!checkPerms(req, 'settings:backup')) return res.redirect('/settings') - var content = initViewContent('backup', req) + const content = initViewContent('backup', req) renderView(res, content) } settingsController.serverSettings = function (req, res) { - var content = initViewContent('server', req) + const content = initViewContent('server', req) renderView(res, content) } @@ -149,7 +149,7 @@ settingsController.serverSettings = function (req, res) { settingsController.legal = function (req, res) { if (!checkPerms(req, 'settings:legal')) return res.redirect('/settings') - var content = initViewContent('legal', req) + const content = initViewContent('legal', req) renderView(res, content) } @@ -157,17 +157,17 @@ settingsController.legal = function (req, res) { settingsController.logs = function (req, res) { if (!checkPerms(req, 'settings:logs')) return res.redirect('/settings') - var content = initViewContent('logs', req) + const content = initViewContent('logs', req) - var fs = require('fs') + const fs = require('fs') - var path = require('path') + const path = require('path') - var AnsiUp = require('ansi_up') + const AnsiUp = require('ansi_up') - var ansiUp = new AnsiUp.default() + const ansiUp = new AnsiUp.default() - var file = path.join(__dirname, '../../logs/output.log') + const file = path.join(__dirname, '../../logs/output.log') fs.readFile(file, 'utf-8', function (err, data) { if (err) { diff --git a/src/controllers/teams.js b/src/controllers/teams.js index 72f0ec32b..24e4418a6 100644 --- a/src/controllers/teams.js +++ b/src/controllers/teams.js @@ -12,19 +12,19 @@ * Copyright (c) 2014-2019. All rights reserved. */ -var _ = require('lodash') -var permissions = require('../permissions') -var Team = require('../models/team') +const _ = require('lodash') +const permissions = require('../permissions') +const Team = require('../models/team') -var teamController = {} +const teamController = {} teamController.get = function (req, res) { - var user = req.user + const user = req.user if (_.isUndefined(user) || !permissions.canThis(user.role, 'teams:view')) { return res.redirect('/') } - var content = {} + const content = {} content.title = 'Teams' content.nav = 'teams' diff --git a/src/controllers/tickets.js b/src/controllers/tickets.js index caf1aa632..729a4df1a 100644 --- a/src/controllers/tickets.js +++ b/src/controllers/tickets.js @@ -9,15 +9,15 @@ ======================================================================== **/ -var ticketSchema = require('../models/ticket') -var async = require('async') -var path = require('path') -var _ = require('lodash') -var winston = require('../logger') -var groupSchema = require('../models/group') -var departmentSchema = require('../models/department') -var permissions = require('../permissions') -var xss = require('xss') +const ticketSchema = require('../models/ticket') +const async = require('async') +const path = require('path') +const _ = require('lodash') +const winston = require('../logger') +const groupSchema = require('../models/group') +const departmentSchema = require('../models/department') +const permissions = require('../permissions') +const xss = require('xss') /** * @since 1.0 * @author Chris Brame @@ -33,7 +33,7 @@ var xss = require('xss') * @requires {@link Emitter} * */ -var ticketsController = {} +const ticketsController = {} /** * @name ticketsController.content @@ -42,15 +42,15 @@ var ticketsController = {} ticketsController.content = {} ticketsController.pubNewIssue = function (req, res) { - var marked = require('marked') - var settings = require('../models/setting') + const marked = require('marked') + const settings = require('../models/setting') settings.getSettingByName('allowPublicTickets:enable', function (err, setting) { if (err) return handleError(res, err) if (setting && setting.value === true) { settings.getSettingByName('legal:privacypolicy', function (err, privacyPolicy) { if (err) return handleError(res, err) - var content = {} + const content = {} content.title = 'New Issue' content.layout = false content.data = {} @@ -76,11 +76,11 @@ ticketsController.pubNewIssue = function (req, res) { * @see Ticket */ ticketsController.getByStatus = function (req, res, next) { - var url = require('url') - var page = req.params.page + const url = require('url') + let page = req.params.page if (_.isUndefined(page)) page = 0 - var processor = {} + const processor = {} processor.title = 'Tickets' processor.nav = 'tickets' processor.subnav = 'tickets-' @@ -92,16 +92,16 @@ ticketsController.getByStatus = function (req, res, next) { status: [] } - var fullUrl = url.format({ + const fullUrl = url.format({ protocol: req.protocol, host: req.get('host'), pathname: req.originalUrl }) - var pathname = new url.URL(fullUrl).pathname - var arr = pathname.split('/') - var tType = 'new' - var s = 0 + const pathname = new url.URL(fullUrl).pathname + const arr = pathname.split('/') + let tType = 'new' + let s = 0 if (_.size(arr) > 2) tType = arr[2] switch (tType) { @@ -132,10 +132,10 @@ ticketsController.getByStatus = function (req, res, next) { * @see Ticket */ ticketsController.getActive = function (req, res, next) { - var page = req.params.page + let page = req.params.page if (_.isUndefined(page)) page = 0 - var processor = {} + const processor = {} processor.title = 'Tickets' processor.nav = 'tickets' processor.subnav = 'tickets-active' @@ -161,10 +161,10 @@ ticketsController.getActive = function (req, res, next) { * @see Ticket */ ticketsController.getAssigned = function (req, res, next) { - var page = req.params.page + let page = req.params.page if (_.isUndefined(page)) page = 0 - var processor = {} + const processor = {} processor.title = 'Tickets' processor.nav = 'tickets' processor.subnav = 'tickets-assigned' @@ -192,10 +192,10 @@ ticketsController.getAssigned = function (req, res, next) { * @see Ticket */ ticketsController.getUnassigned = function (req, res, next) { - var page = req.params.page + let page = req.params.page if (_.isUndefined(page)) page = 0 - var processor = {} + const processor = {} processor.title = 'Tickets' processor.nav = 'tickets' processor.subnav = 'tickets-unassigned' @@ -215,25 +215,23 @@ ticketsController.getUnassigned = function (req, res, next) { } ticketsController.filter = function (req, res, next) { - var page = req.query.page + let page = req.query.page if (_.isUndefined(page)) page = 0 - var queryString = req.query - var uid = queryString.uid - var subject = queryString.fs - var issue = queryString.it - var dateStart = queryString.ds - var dateEnd = queryString.de - var status = queryString.st - var priority = queryString.pr - var groups = queryString.gp - var types = queryString.tt - var tags = queryString.tag - var assignee = queryString.au - - var rawNoPage = req.originalUrl - .replace(new RegExp('[?&]page=[^&#]*(#.*)?$'), '$1') - .replace(new RegExp('([?&])page=[^&]*&'), '$1') + const queryString = req.query + const uid = queryString.uid + const subject = queryString.fs + const issue = queryString.it + const dateStart = queryString.ds + const dateEnd = queryString.de + let status = queryString.st + let priority = queryString.pr + let groups = queryString.gp + let types = queryString.tt + let tags = queryString.tag + let assignee = queryString.au + + const rawNoPage = req.originalUrl.replace(/[?&]page=[^&#]*(#.*)?$/, '$1').replace(/([?&])page=[^&]*&/, '$1') if (!_.isUndefined(status) && !_.isArray(status)) status = [status] if (!_.isUndefined(priority) && !_.isArray(priority)) priority = [priority] @@ -242,7 +240,7 @@ ticketsController.filter = function (req, res, next) { if (!_.isUndefined(tags) && !_.isArray(tags)) tags = [tags] if (!_.isUndefined(assignee) && !_.isArray(assignee)) assignee = [assignee] - var filter = { + const filter = { uid: uid, subject: subject, issue: issue, @@ -259,7 +257,7 @@ ticketsController.filter = function (req, res, next) { raw: rawNoPage } - var processor = {} + const processor = {} processor.title = 'Tickets' processor.nav = 'tickets' processor.renderpage = 'tickets' @@ -286,10 +284,10 @@ ticketsController.filter = function (req, res, next) { * @see Ticket */ ticketsController.processor = function (req, res) { - var processor = req.processor + const processor = req.processor if (_.isUndefined(processor)) return res.redirect('/') - var content = {} + const content = {} content.title = processor.title content.nav = processor.nav content.subnav = processor.subnav @@ -299,7 +297,7 @@ ticketsController.processor = function (req, res) { content.data.user = req.user content.data.common = req.viewdata - var object = processor.object + const object = processor.object content.data.page = object.page content.data.filter = object.filter @@ -307,8 +305,8 @@ ticketsController.processor = function (req, res) { } ticketsController.pdf = function (req, res) { - var TicketPDFGenerator = require('../pdf/ticketGenerator') - var uid = null + const TicketPDFGenerator = require('../pdf/ticketGenerator') + let uid = null try { uid = parseInt(req.params.uid) } catch (e) { @@ -319,7 +317,7 @@ ticketsController.pdf = function (req, res) { ticketSchema.getTicketByUid(uid, function (err, ticket) { if (err) return handleError(res, err) - var ticketGenerator = new TicketPDFGenerator(ticket) + const ticketGenerator = new TicketPDFGenerator(ticket) ticketGenerator.generate(function (err, obj) { if (err) return res.redirect('/tickets') @@ -336,8 +334,8 @@ ticketsController.pdf = function (req, res) { * @return {View} Subviews/PrintTicket View */ ticketsController.print = function (req, res) { - var user = req.user - var uid = null + const user = req.user + let uid = null try { uid = parseInt(req.params.uid) } catch (e) { @@ -345,7 +343,7 @@ ticketsController.print = function (req, res) { return res.redirect('/tickets') } - var content = {} + const content = {} content.title = 'Tickets - ' + req.params.uid content.nav = 'tickets' @@ -358,15 +356,15 @@ ticketsController.print = function (req, res) { if (err) return handleError(res, err) if (_.isNull(ticket) || _.isUndefined(ticket)) return res.redirect('/tickets') - var hasPublic = permissions.canThis(user.role, 'tickets:public') - var hasAccess = false + const hasPublic = permissions.canThis(user.role, 'tickets:public') + let hasAccess = false async.series( [ function (next) { if (user.role.isAdmin || user.role.isAgent) { departmentSchema.getDepartmentGroupsOfUser(user._id, function (err, groups) { if (err) return res.redirect('/tickets') - var gIds = groups.map(function (g) { + const gIds = groups.map(function (g) { return g._id }) @@ -388,7 +386,7 @@ ticketsController.print = function (req, res) { function (next) { if (hasAccess) return next() - var members = ticket.group.members.map(function (m) { + const members = ticket.group.members.map(function (m) { return m._id.toString() }) @@ -451,13 +449,13 @@ ticketsController.print = function (req, res) { * content.data.ticket.commentCount = _.size(ticket.comments); */ ticketsController.single = function (req, res) { - var user = req.user - var uid = req.params.id + const user = req.user + const uid = req.params.id if (isNaN(uid)) { return res.redirect('/tickets') } - var content = {} + const content = {} content.title = 'Tickets - ' + req.params.id content.nav = 'tickets' @@ -470,7 +468,7 @@ ticketsController.single = function (req, res) { if (err) return handleError(res, err) if (_.isNull(ticket) || _.isUndefined(ticket)) return res.redirect('/tickets') - var departmentSchema = require('../models/department') + const departmentSchema = require('../models/department') async.waterfall( [ function (next) { @@ -484,7 +482,7 @@ ticketsController.single = function (req, res) { return groupSchema.find({}, next) } - var groups = _.flattenDeep( + const groups = _.flattenDeep( departments.map(function (d) { return d.groups }) @@ -494,8 +492,8 @@ ticketsController.single = function (req, res) { }) }, function (userGroups, next) { - var hasPublic = permissions.canThis(user.role, 'tickets:public') - var groupIds = userGroups.map(function (g) { + const hasPublic = permissions.canThis(user.role, 'tickets:public') + const groupIds = userGroups.map(function (g) { return g._id.toString() }) @@ -531,11 +529,11 @@ ticketsController.single = function (req, res) { } ticketsController.uploadImageMDE = function (req, res) { - var Chance = require('chance') - var chance = new Chance() - var fs = require('fs-extra') - var Busboy = require('busboy') - var busboy = new Busboy({ + const Chance = require('chance') + const chance = new Chance() + const fs = require('fs-extra') + const Busboy = require('busboy') + const busboy = new Busboy({ headers: req.headers, limits: { files: 1, @@ -543,8 +541,8 @@ ticketsController.uploadImageMDE = function (req, res) { } }) - var object = {} - var error + const object = {} + let error object.ticketId = req.headers.ticketid if (!object.ticketId) return res.status(400).json({ success: false }) @@ -559,8 +557,8 @@ ticketsController.uploadImageMDE = function (req, res) { return file.resume() } - var ext = path.extname(filename) - var allowedExtensions = [ + const ext = path.extname(filename) + const allowedExtensions = [ '.jpg', '.jpeg', '.jpe', @@ -587,9 +585,9 @@ ticketsController.uploadImageMDE = function (req, res) { return file.resume() } - var savePath = path.join(__dirname, '../../public/uploads/tickets', object.ticketId) - // var sanitizedFilename = filename.replace(/[^a-z0-9.]/gi, '_').toLowerCase(); - var sanitizedFilename = chance.hash({ length: 20 }) + ext + const savePath = path.join(__dirname, '../../public/uploads/tickets', object.ticketId) + // const sanitizedFilename = filename.replace(/[^a-z0-9.]/gi, '_').toLowerCase(); + const sanitizedFilename = chance.hash({ length: 20 }) + ext if (!fs.existsSync(savePath)) fs.ensureDirSync(savePath) object.filePath = path.join(savePath, 'inline_' + sanitizedFilename) @@ -630,7 +628,7 @@ ticketsController.uploadImageMDE = function (req, res) { // Everything Checks out lets make sure the file exists and then add it to the attachments array if (!fs.existsSync(object.filePath)) return res.status(500).send('File Failed to Save to Disk') - var fileUrl = '/uploads/tickets/' + object.ticketId + '/inline_' + object.filename + const fileUrl = '/uploads/tickets/' + object.ticketId + '/inline_' + object.filename return res.json({ filename: fileUrl, ticketId: object.ticketId }) }) @@ -639,9 +637,9 @@ ticketsController.uploadImageMDE = function (req, res) { } ticketsController.uploadAttachment = function (req, res) { - var fs = require('fs-extra') - var Busboy = require('busboy') - var busboy = new Busboy({ + const fs = require('fs-extra') + const Busboy = require('busboy') + const busboy = new Busboy({ headers: req.headers, limits: { files: 1, @@ -649,10 +647,10 @@ ticketsController.uploadAttachment = function (req, res) { } }) - var object = { + const object = { ownerId: req.user._id } - var error + let error busboy.on('field', function (fieldname, val) { if (fieldname === 'ticketId') object.ticketId = val @@ -684,11 +682,11 @@ ticketsController.uploadAttachment = function (req, res) { return file.resume() } - var savePath = path.join(__dirname, '../../public/uploads/tickets', object.ticketId) - var sanitizedFilename = filename.replace(/[^a-z0-9.]/gi, '_').toLowerCase() + const savePath = path.join(__dirname, '../../public/uploads/tickets', object.ticketId) + const sanitizedFilename = filename.replace(/[^a-z0-9.]/gi, '_').toLowerCase() - var ext = path.extname(sanitizedFilename) - var badExts = ['.html', '.htm', '.js'] + const ext = path.extname(sanitizedFilename) + const badExts = ['.html', '.htm', '.js'] if (badExts.includes(ext)) { error = { @@ -746,7 +744,7 @@ ticketsController.uploadAttachment = function (req, res) { return res.status(500).send(err.message) } - var attachment = { + const attachment = { owner: object.ownerId, name: object.filename, path: '/uploads/tickets/' + object.ticketId + '/attachment_' + object.filename, @@ -754,7 +752,7 @@ ticketsController.uploadAttachment = function (req, res) { } ticket.attachments.push(attachment) - var historyItem = { + const historyItem = { action: 'ticket:added:attachment', description: 'Attachment ' + object.filename + ' was added.', owner: object.ownerId @@ -769,7 +767,7 @@ ticketsController.uploadAttachment = function (req, res) { return res.status(500).send(err.message) } - var returnData = { + const returnData = { ticket: t } diff --git a/src/helpers/plugins/index.js b/src/helpers/plugins/index.js index 24ea72350..9258e43ea 100644 --- a/src/helpers/plugins/index.js +++ b/src/helpers/plugins/index.js @@ -12,14 +12,14 @@ * Copyright (c) 2014-2019. All rights reserved. */ -var pluginHelpers = {} +const pluginHelpers = {} pluginHelpers.checkPermissions = function (userRole, permissions) { if (userRole === undefined || permissions === undefined) return false - var permissionArray = permissions.split(' ') - var result = false - for (var i = 0; i < permissionArray.length; i++) { + const permissionArray = permissions.split(' ') + let result = false + for (let i = 0; i < permissionArray.length; i++) { if (userRole.toString().toLowerCase() === permissionArray[i].toString().toLowerCase()) result = true } diff --git a/src/helpers/utils/index.js b/src/helpers/utils/index.js index 7cbee23c5..d5e542539 100644 --- a/src/helpers/utils/index.js +++ b/src/helpers/utils/index.js @@ -18,18 +18,14 @@ const fs = require('fs') const piexifjs = require('piexifjs') module.exports.sanitizeFieldPlainText = function (text) { - const t = xss(text, { + return xss(text, { whileList: {}, stripIgnoreTag: true, stripIgnoreTagBody: ['script'] }) - return t } module.exports.stripExifData = function (path) { - const fs = require('fs') - const piexifjs = require('piexifjs') - const imgData = fs.readFileSync(path).toString('binary') const newImgData = piexifjs.remove(imgData) fs.writeFileSync(path, newImgData, 'binary') @@ -56,7 +52,7 @@ module.exports.sendToAllClientsInRoom = function (io, room, method, data) { } module.exports.sendToUser = function (socketList, userList, username, method, data) { - var userOnline = null + let userOnline = null _.forEach(userList, function (v, k) { if (k.toLowerCase() === username.toLowerCase()) { userOnline = v @@ -67,8 +63,8 @@ module.exports.sendToUser = function (socketList, userList, username, method, da if (_.isNull(userOnline)) return true _.forEach(userOnline.sockets, function (socket) { - var o = _.findKey(socketList, { id: socket }) - var i = socketList[o] + const o = _.findKey(socketList, { id: socket }) + const i = socketList[o] if (_.isUndefined(i)) return true i.emit(method, data) }) diff --git a/src/helpers/viewdata/index.js b/src/helpers/viewdata/index.js index 9921fadd4..19e45db0b 100644 --- a/src/helpers/viewdata/index.js +++ b/src/helpers/viewdata/index.js @@ -12,14 +12,14 @@ * Copyright (c) 2014-2019. All rights reserved. */ -var async = require('async') -var _ = require('lodash') -var winston = require('winston') -var moment = require('moment') -var settingSchema = require('../../models/setting') - -var viewController = {} -var viewdata = {} +const async = require('async') +const _ = require('lodash') +const winston = require('../../logger') +const moment = require('moment') +const settingSchema = require('../../models/setting') + +const viewController = {} +const viewdata = {} viewdata.users = {} viewController.getData = function (request, cb) { @@ -322,8 +322,8 @@ viewController.getData = function (request, cb) { }) }, function (callback) { - var roleSchmea = require('../../models/role') - var roleOrder = require('../../models/roleorder') + const roleSchmea = require('../../models/role') + const roleOrder = require('../../models/roleorder') roleSchmea.getRoles(function (err, roles) { if (err) return callback(err) @@ -356,7 +356,7 @@ viewController.getData = function (request, cb) { }) }, function (callback) { - var settingsUtil = require('../../settings/settingsUtil') + const settingsUtil = require('../../settings/settingsUtil') settingsUtil.getSettings(function (err, res) { if (err) return callback(err) @@ -386,7 +386,7 @@ viewController.getData = function (request, cb) { } viewController.getActiveNotice = function (callback) { - var noticeSchema = require('../../models/notice') + const noticeSchema = require('../../models/notice') noticeSchema.getActive(function (err, notice) { if (err) { winston.warn(err.message) @@ -398,7 +398,7 @@ viewController.getActiveNotice = function (callback) { } viewController.getUserNotifications = function (request, callback) { - var notificationsSchema = require('../../models/notification') + const notificationsSchema = require('../../models/notification') notificationsSchema.findAllForUser(request.user._id, function (err, data) { if (err) { winston.warn(err.message) @@ -410,7 +410,7 @@ viewController.getUserNotifications = function (request, callback) { } viewController.getUnreadNotificationsCount = function (request, callback) { - var notificationsSchema = require('../../models/notification') + const notificationsSchema = require('../../models/notification') notificationsSchema.getUnreadCount(request.user._id, function (err, count) { if (err) { winston.warn(err.message) @@ -422,22 +422,22 @@ viewController.getUnreadNotificationsCount = function (request, callback) { } viewController.getConversations = function (request, callback) { - var conversationSchema = require('../../models/chat/conversation') - var messageSchema = require('../../models/chat/message') + const conversationSchema = require('../../models/chat/conversation') + const messageSchema = require('../../models/chat/message') conversationSchema.getConversationsWithLimit(request.user._id, 10, function (err, conversations) { if (err) { winston.warn(err.message) return callback(err) } - var convos = [] + const convos = [] async.eachSeries( conversations, function (convo, done) { - var c = convo.toObject() + const c = convo.toObject() - var userMeta = + const userMeta = convo.userMeta[ _.findIndex(convo.userMeta, function (item) { return item.userId.toString() === request.user._id.toString() @@ -481,7 +481,7 @@ viewController.getConversations = function (request, callback) { } viewController.getUsers = function (request, callback) { - var userSchema = require('../../models/user') + const userSchema = require('../../models/user') if (request.user.role.isAdmin || request.user.role.isAgent) { userSchema.findAll(function (err, users) { if (err) { @@ -489,7 +489,7 @@ viewController.getUsers = function (request, callback) { return callback() } - var u = _.reject(users, function (u) { + let u = _.reject(users, function (u) { return u.deleted === true }) u.password = null @@ -506,13 +506,13 @@ viewController.getUsers = function (request, callback) { return callback(u) }) } else { - var groupSchema = require('../../models/group') + const groupSchema = require('../../models/group') groupSchema.getAllGroupsOfUser(request.user._id, function (err, groups) { if (err) return callback(err) - var users = _.map(groups, function (g) { + let users = _.map(groups, function (g) { return _.map(g.members, function (m) { - var mFiltered = m + const mFiltered = m m.password = null m.role = null m.resetPassHash = null @@ -540,7 +540,7 @@ viewController.getUsers = function (request, callback) { } viewController.loggedInAccount = function (request, callback) { - var userSchema = require('../../models/user') + const userSchema = require('../../models/user') userSchema.getUser(request.user._id, function (err, data) { if (err) { return callback(err) @@ -551,13 +551,13 @@ viewController.loggedInAccount = function (request, callback) { } viewController.getTeams = function (request, callback) { - var Team = require('../../models/team') + const Team = require('../../models/team') return Team.getTeams(callback) } viewController.getGroups = function (request, callback) { - var groupSchema = require('../../models/group') - var Department = require('../../models/department') + const groupSchema = require('../../models/group') + const Department = require('../../models/department') if (request.user.role.isAdmin || request.user.role.isAgent) { Department.getDepartmentGroupsOfUser(request.user._id, function (err, groups) { if (err) { @@ -574,7 +574,7 @@ viewController.getGroups = function (request, callback) { return callback(err) } - var p = require('../../permissions') + const p = require('../../permissions') if (p.canThis(request.user.role, 'ticket:public')) { groupSchema.getAllPublicGroups(function (err, groups) { if (err) { @@ -593,7 +593,7 @@ viewController.getGroups = function (request, callback) { } viewController.getTypes = function (request, callback) { - var typeSchema = require('../../models/tickettype') + const typeSchema = require('../../models/tickettype') typeSchema.getTypes(function (err, data) { if (err) { @@ -606,14 +606,14 @@ viewController.getTypes = function (request, callback) { } viewController.getDefaultTicketType = function (request, callback) { - var settingSchema = require('../../models/setting') + const settingSchema = require('../../models/setting') settingSchema.getSetting('ticket:type:default', function (err, defaultType) { if (err) { winston.debug('Error viewController:getDefaultTicketType: ', err) return callback(err) } - var typeSchema = require('../../models/tickettype') + const typeSchema = require('../../models/tickettype') typeSchema.getType(defaultType.value, function (err, type) { if (err) { winston.debug('Error viewController:getDefaultTicketType: ', err) @@ -626,7 +626,7 @@ viewController.getDefaultTicketType = function (request, callback) { } viewController.getPriorities = function (request, callback) { - var ticketPrioritySchema = require('../../models/ticketpriority') + const ticketPrioritySchema = require('../../models/ticketpriority') ticketPrioritySchema.getPriorities(function (err, priorities) { if (err) { winston.debug('Error viewController:getPriorities: ' + err) @@ -640,7 +640,7 @@ viewController.getPriorities = function (request, callback) { } viewController.getTags = function (request, callback) { - var tagSchema = require('../../models/tag') + const tagSchema = require('../../models/tag') tagSchema.getTags(function (err, data) { if (err) { @@ -655,7 +655,7 @@ viewController.getTags = function (request, callback) { } viewController.getOverdueSetting = function (request, callback) { - var settingSchema = require('../../models/setting') + const settingSchema = require('../../models/setting') settingSchema.getSettingByName('showOverdueTickets:enable', function (err, data) { if (err) { winston.debug(err) @@ -667,7 +667,7 @@ viewController.getOverdueSetting = function (request, callback) { } viewController.getShowTourSetting = function (request, callback) { - var settingSchema = require('../../models/setting') + const settingSchema = require('../../models/setting') settingSchema.getSettingByName('showTour:enable', function (err, data) { if (err) { winston.debug(err) @@ -678,11 +678,11 @@ viewController.getShowTourSetting = function (request, callback) { return callback(null, true) } - var userSchema = require('../../models/user') + const userSchema = require('../../models/user') userSchema.getUser(request.user._id, function (err, user) { if (err) return callback(err) - var hasTourCompleted = false + let hasTourCompleted = false if (user.preferences.tourCompleted) { hasTourCompleted = user.preferences.tourCompleted @@ -699,19 +699,19 @@ viewController.getShowTourSetting = function (request, callback) { viewController.getPluginsInfo = function (request, callback) { // Load Plugin routes - var dive = require('dive') - var path = require('path') - var fs = require('fs') - var pluginDir = path.join(__dirname, '../../../plugins') + const dive = require('dive') + const path = require('path') + const fs = require('fs') + const pluginDir = path.join(__dirname, '../../../plugins') if (!fs.existsSync(pluginDir)) fs.mkdirSync(pluginDir) - var plugins = [] + const plugins = [] dive( pluginDir, { directories: true, files: false, recursive: false }, function (err, dir) { if (err) throw err delete require.cache[require.resolve(path.join(dir, '/plugin.json'))] - var pluginPackage = require(path.join(dir, '/plugin.json')) + const pluginPackage = require(path.join(dir, '/plugin.json')) plugins.push(pluginPackage) }, function () { diff --git a/src/install/mongotest.js b/src/install/mongotest.js index e35597da4..2c1fd75e4 100644 --- a/src/install/mongotest.js +++ b/src/install/mongotest.js @@ -12,13 +12,13 @@ * Copyright (c) 2014-2019. All rights reserved. */ -var database = require('../database') +const database = require('../database') global.env = process.env.NODE_ENV || 'production' ;(function () { - var CONNECTION_URI = process.env.MONGOTESTURI + const CONNECTION_URI = process.env.MONGOTESTURI if (!CONNECTION_URI) return process.send({ error: { message: 'Invalid connection uri' } }) - var options = { + const options = { connectTimeoutMS: 5000 } database.init( diff --git a/src/taskrunner/index.js b/src/taskrunner/index.js index ee0a43e54..33649ba51 100644 --- a/src/taskrunner/index.js +++ b/src/taskrunner/index.js @@ -9,22 +9,21 @@ ======================================================================== */ -var _ = require('lodash') -var async = require('async') -var winston = require('winston') -var request = require('request') -var ticketSchema = require('../models/ticket') -var userSchema = require('../models/user') -var groupSchema = require('../models/group') -var conversationSchema = require('../models/chat/conversation') -var settingSchema = require('../models/setting') - -var taskRunner = {} +const _ = require('lodash') +const async = require('async') +const request = require('request') +const ticketSchema = require('../models/ticket') +const userSchema = require('../models/user') +const groupSchema = require('../models/group') +const conversationSchema = require('../models/chat/conversation') +const settingSchema = require('../models/setting') + +const taskRunner = {} taskRunner.init = function (callback) { - taskRunner.sendStats(function (err) { - if (!err) setInterval(taskRunner.sendStats, 86400000) // 24 hours - }) + // taskRunner.sendStats(function (err) { + // if (!err) setInterval(taskRunner.sendStats, 86400000) // 24 hours + // }) return callback() } @@ -34,14 +33,14 @@ taskRunner.sendStats = function (callback) { if (err) return callback(err) if (!settings || settings.length < 1) return callback() - var versionSetting = _.find(settings, function (x) { + let versionSetting = _.find(settings, function (x) { return x.name === 'gen:version' }) - var installIdSetting = _.find(settings, function (x) { + const installIdSetting = _.find(settings, function (x) { return x.name === 'gen:installid' }) - var hostnameSetting = _.find(settings, function (x) { + let hostnameSetting = _.find(settings, function (x) { return x.name === 'gen:siteurl' }) @@ -51,7 +50,7 @@ taskRunner.sendStats = function (callback) { hostnameSetting = _.isUndefined(hostnameSetting) ? { value: '--' } : hostnameSetting - var result = { + const result = { ticketCount: 0, agentCount: 0, customerGroupCount: 0,