mirror of
				https://github.com/NodeBB/NodeBB.git
				synced 2025-10-31 02:55:58 +01:00 
			
		
		
		
	Fix #5416, uploads path config setting
- Finish moving uploads route to `/assets/uploads` - Remove `upload_url` config setting, it was broken
This commit is contained in:
		
							
								
								
									
										3
									
								
								app.js
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								app.js
									
									
									
									
									
								
							| @@ -99,6 +99,7 @@ function loadConfig(callback) { | |||||||
| 	nconf.defaults({ | 	nconf.defaults({ | ||||||
| 		base_dir: __dirname, | 		base_dir: __dirname, | ||||||
| 		themes_path: path.join(__dirname, 'node_modules'), | 		themes_path: path.join(__dirname, 'node_modules'), | ||||||
|  | 		upload_path: 'public/uploads', | ||||||
| 		views_dir: path.join(__dirname, 'build/public/templates'), | 		views_dir: path.join(__dirname, 'build/public/templates'), | ||||||
| 		version: pkg.version | 		version: pkg.version | ||||||
| 	}); | 	}); | ||||||
| @@ -113,6 +114,8 @@ function loadConfig(callback) { | |||||||
| 	nconf.set('core_templates_path', path.join(__dirname, 'src/views')); | 	nconf.set('core_templates_path', path.join(__dirname, 'src/views')); | ||||||
| 	nconf.set('base_templates_path', path.join(nconf.get('themes_path'), 'nodebb-theme-persona/templates')); | 	nconf.set('base_templates_path', path.join(nconf.get('themes_path'), 'nodebb-theme-persona/templates')); | ||||||
| 	 | 	 | ||||||
|  | 	nconf.set('upload_path', path.resolve(nconf.get('base_dir'), nconf.get('upload_path'))); | ||||||
|  |  | ||||||
| 	if (nconf.get('url')) { | 	if (nconf.get('url')) { | ||||||
| 		nconf.set('url_parsed', url.parse(nconf.get('url'))); | 		nconf.set('url_parsed', url.parse(nconf.get('url'))); | ||||||
| 	} | 	} | ||||||
|   | |||||||
| @@ -558,7 +558,7 @@ app.cacheBuster = null; | |||||||
|  |  | ||||||
| 		var scriptEl = document.createElement('script'); | 		var scriptEl = document.createElement('script'); | ||||||
| 		scriptEl.type = 'text/javascript'; | 		scriptEl.type = 'text/javascript'; | ||||||
| 		scriptEl.src = config.relative_path + '/vendor/jquery/js/jquery-ui.js' + '?' + config['cache-buster']; | 		scriptEl.src = config.relative_path + '/assets/vendor/jquery/js/jquery-ui.js' + '?' + config['cache-buster']; | ||||||
| 		scriptEl.onload = callback; | 		scriptEl.onload = callback; | ||||||
| 		document.head.appendChild(scriptEl); | 		document.head.appendChild(scriptEl); | ||||||
| 	}; | 	}; | ||||||
|   | |||||||
| @@ -70,7 +70,7 @@ uploadsController.uploadTouchIcon = function (req, res, next) { | |||||||
| 				async.series([ | 				async.series([ | ||||||
| 					async.apply(file.saveFileToLocal, 'touchicon-' + size + '.png', 'system', uploadedFile.path), | 					async.apply(file.saveFileToLocal, 'touchicon-' + size + '.png', 'system', uploadedFile.path), | ||||||
| 					async.apply(image.resizeImage, { | 					async.apply(image.resizeImage, { | ||||||
| 						path: path.join(nconf.get('base_dir'), nconf.get('upload_path'), 'system', 'touchicon-' + size + '.png'), | 						path: path.join(nconf.get('upload_path'), 'system', 'touchicon-' + size + '.png'), | ||||||
| 						extension: 'png', | 						extension: 'png', | ||||||
| 						width: size, | 						width: size, | ||||||
| 						height: size | 						height: size | ||||||
| @@ -106,7 +106,7 @@ uploadsController.uploadSound = function (req, res, next) { | |||||||
| 		} | 		} | ||||||
|  |  | ||||||
| 		var	soundsPath = path.join(__dirname, '../../../build/public/sounds'), | 		var	soundsPath = path.join(__dirname, '../../../build/public/sounds'), | ||||||
| 			filePath = path.join(__dirname, '../../../public/uploads/sounds', uploadedFile.name); | 			filePath = path.join(nconf.get('upload_path'), 'sounds', uploadedFile.name); | ||||||
|  |  | ||||||
| 		file.link(filePath, path.join(soundsPath, path.basename(filePath))); | 		file.link(filePath, path.join(soundsPath, path.basename(filePath))); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -290,32 +290,32 @@ Controllers.manifest = function (req, res) { | |||||||
|  |  | ||||||
| 	if (meta.config['brand:touchIcon']) { | 	if (meta.config['brand:touchIcon']) { | ||||||
| 		manifest.icons.push({ | 		manifest.icons.push({ | ||||||
| 			src: nconf.get('relative_path') + '/uploads/system/touchicon-36.png', | 			src: nconf.get('relative_path') + '/assets/uploads/system/touchicon-36.png', | ||||||
| 			sizes: '36x36', | 			sizes: '36x36', | ||||||
| 			type: 'image/png', | 			type: 'image/png', | ||||||
| 			density: 0.75 | 			density: 0.75 | ||||||
| 		}, { | 		}, { | ||||||
| 			src: nconf.get('relative_path') + '/uploads/system/touchicon-48.png', | 			src: nconf.get('relative_path') + '/assets/uploads/system/touchicon-48.png', | ||||||
| 			sizes: '48x48', | 			sizes: '48x48', | ||||||
| 			type: 'image/png', | 			type: 'image/png', | ||||||
| 			density: 1.0 | 			density: 1.0 | ||||||
| 		}, { | 		}, { | ||||||
| 			src: nconf.get('relative_path') + '/uploads/system/touchicon-72.png', | 			src: nconf.get('relative_path') + '/assets/uploads/system/touchicon-72.png', | ||||||
| 			sizes: '72x72', | 			sizes: '72x72', | ||||||
| 			type: 'image/png', | 			type: 'image/png', | ||||||
| 			density: 1.5 | 			density: 1.5 | ||||||
| 		}, { | 		}, { | ||||||
| 			src: nconf.get('relative_path') + '/uploads/system/touchicon-96.png', | 			src: nconf.get('relative_path') + '/assets/uploads/system/touchicon-96.png', | ||||||
| 			sizes: '96x96', | 			sizes: '96x96', | ||||||
| 			type: 'image/png', | 			type: 'image/png', | ||||||
| 			density: 2.0 | 			density: 2.0 | ||||||
| 		}, { | 		}, { | ||||||
| 			src: nconf.get('relative_path') + '/uploads/system/touchicon-144.png', | 			src: nconf.get('relative_path') + '/assets/uploads/system/touchicon-144.png', | ||||||
| 			sizes: '144x144', | 			sizes: '144x144', | ||||||
| 			type: 'image/png', | 			type: 'image/png', | ||||||
| 			density: 3.0 | 			density: 3.0 | ||||||
| 		}, { | 		}, { | ||||||
| 			src: nconf.get('relative_path') + '/uploads/system/touchicon-192.png', | 			src: nconf.get('relative_path') + '/assets/uploads/system/touchicon-192.png', | ||||||
| 			sizes: '192x192', | 			sizes: '192x192', | ||||||
| 			type: 'image/png', | 			type: 'image/png', | ||||||
| 			density: 4.0 | 			density: 4.0 | ||||||
|   | |||||||
							
								
								
									
										13
									
								
								src/file.js
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								src/file.js
									
									
									
									
									
								
							| @@ -5,6 +5,7 @@ var nconf = require('nconf'); | |||||||
| var path = require('path'); | var path = require('path'); | ||||||
| var winston = require('winston'); | var winston = require('winston'); | ||||||
| var jimp = require('jimp'); | var jimp = require('jimp'); | ||||||
|  | var mkdirp = require('mkdirp'); | ||||||
|  |  | ||||||
| var utils = require('../public/src/utils'); | var utils = require('../public/src/utils'); | ||||||
|  |  | ||||||
| @@ -20,27 +21,31 @@ file.saveFileToLocal = function (filename, folder, tempPath, callback) { | |||||||
| 	}); | 	}); | ||||||
| 	filename = filename.join('.'); | 	filename = filename.join('.'); | ||||||
|  |  | ||||||
| 	var uploadPath = path.join(nconf.get('base_dir'), nconf.get('upload_path'), folder, filename); | 	var uploadPath = path.join(nconf.get('upload_path'), folder, filename); | ||||||
|  |  | ||||||
| 	winston.verbose('Saving file ' + filename + ' to : ' + uploadPath); | 	winston.verbose('Saving file ' + filename + ' to : ' + uploadPath); | ||||||
|  | 	mkdirp(path.dirname(uploadPath), function (err) { | ||||||
|  | 		if (err) { | ||||||
|  | 			callback(err); | ||||||
|  | 		} | ||||||
|  |  | ||||||
| 		var is = fs.createReadStream(tempPath); | 		var is = fs.createReadStream(tempPath); | ||||||
| 		var os = fs.createWriteStream(uploadPath); | 		var os = fs.createWriteStream(uploadPath); | ||||||
| 		is.on('end', function () { | 		is.on('end', function () { | ||||||
| 			callback(null, { | 			callback(null, { | ||||||
| 			url: nconf.get('upload_url') + '/' + folder + '/' + filename, | 				url: '/assets/uploads/' + folder + '/' + filename, | ||||||
| 				path: uploadPath | 				path: uploadPath | ||||||
| 			}); | 			}); | ||||||
| 		}); | 		}); | ||||||
|  |  | ||||||
| 		os.on('error', callback); | 		os.on('error', callback); | ||||||
|  |  | ||||||
| 		is.pipe(os); | 		is.pipe(os); | ||||||
|  | 	}); | ||||||
| }; | }; | ||||||
|  |  | ||||||
| file.base64ToLocal = function (imageData, uploadPath, callback) { | file.base64ToLocal = function (imageData, uploadPath, callback) { | ||||||
| 	var buffer = new Buffer(imageData.slice(imageData.indexOf('base64') + 7), 'base64'); | 	var buffer = new Buffer(imageData.slice(imageData.indexOf('base64') + 7), 'base64'); | ||||||
| 	uploadPath = path.join(nconf.get('base_dir'), nconf.get('upload_path'), uploadPath); | 	uploadPath = path.join(nconf.get('upload_path'), uploadPath); | ||||||
|  |  | ||||||
| 	fs.writeFile(uploadPath, buffer, { | 	fs.writeFile(uploadPath, buffer, { | ||||||
| 		encoding: 'base64' | 		encoding: 'base64' | ||||||
|   | |||||||
| @@ -105,7 +105,7 @@ module.exports = function (Groups) { | |||||||
| 		md5sum = md5sum.digest('hex'); | 		md5sum = md5sum.digest('hex'); | ||||||
|  |  | ||||||
| 		// Save image | 		// Save image | ||||||
| 		var tempPath = path.join(nconf.get('base_dir'), nconf.get('upload_path'), md5sum) + '.png'; | 		var tempPath = path.join(nconf.get('upload_path'), md5sum + '.png'); | ||||||
| 		var buffer = new Buffer(imageData.slice(imageData.indexOf('base64') + 7), 'base64'); | 		var buffer = new Buffer(imageData.slice(imageData.indexOf('base64') + 7), 'base64'); | ||||||
|  |  | ||||||
| 		fs.writeFile(tempPath, buffer, { | 		fs.writeFile(tempPath, buffer, { | ||||||
|   | |||||||
| @@ -32,11 +32,23 @@ module.exports = function (Meta) { | |||||||
| 				fs.readdir(path.join(__dirname, '../../build/public/sounds'), next); | 				fs.readdir(path.join(__dirname, '../../build/public/sounds'), next); | ||||||
| 			}, | 			}, | ||||||
| 			function (sounds, next) { | 			function (sounds, next) { | ||||||
| 				fs.readdir(path.join(__dirname, '../../public/uploads/sounds'), function (err, uploaded) { | 				fs.readdir(path.join(nconf.get('upload_path'), 'sounds'), function (err, uploaded) { | ||||||
| 					next(err, sounds.concat(uploaded)); | 					if (err) { | ||||||
|  | 						if (err.code === 'ENOENT') { | ||||||
|  | 							return next(null, sounds); | ||||||
|  | 						} | ||||||
|  | 						return next(err); | ||||||
|  | 					} | ||||||
|  | 					next(null, sounds.concat(uploaded)); | ||||||
| 				}); | 				}); | ||||||
| 			} | 			} | ||||||
| 		], function (err, files) { | 		], function (err, files) { | ||||||
|  | 			if (err) { | ||||||
|  | 				winston.error('Could not get local sound files:' + err.message); | ||||||
|  | 				console.log(err.stack); | ||||||
|  | 				return callback(null, []); | ||||||
|  | 			} | ||||||
|  |  | ||||||
| 			var	localList = {}; | 			var	localList = {}; | ||||||
|  |  | ||||||
| 			// Filter out hidden files | 			// Filter out hidden files | ||||||
| @@ -44,15 +56,9 @@ module.exports = function (Meta) { | |||||||
| 				return !filename.startsWith('.'); | 				return !filename.startsWith('.'); | ||||||
| 			}); | 			}); | ||||||
|  |  | ||||||
| 			if (err) { |  | ||||||
| 				winston.error('Could not get local sound files:' + err.message); |  | ||||||
| 				console.log(err.stack); |  | ||||||
| 				return callback(null, []); |  | ||||||
| 			} |  | ||||||
|  |  | ||||||
| 			// Return proper paths | 			// Return proper paths | ||||||
| 			files.forEach(function (filename) { | 			files.forEach(function (filename) { | ||||||
| 				localList[filename] = nconf.get('relative_path') + '/sounds/' + filename; | 				localList[filename] = nconf.get('relative_path') + '/assets/sounds/' + filename; | ||||||
| 			}); | 			}); | ||||||
|  |  | ||||||
| 			callback(null, localList); | 			callback(null, localList); | ||||||
| @@ -93,13 +99,22 @@ module.exports = function (Meta) { | |||||||
|  |  | ||||||
| 		async.waterfall([ | 		async.waterfall([ | ||||||
| 			function (next) { | 			function (next) { | ||||||
| 				fs.readdir(path.join(__dirname, '../../public/uploads/sounds'), next); | 				fs.readdir(path.join(nconf.get('upload_path'), 'sounds'), function (err, files) { | ||||||
|  | 					if (err) { | ||||||
|  | 						if (err.code === 'ENOENT') { | ||||||
|  | 							return next(null, []); | ||||||
|  | 						} | ||||||
|  | 						return next(err); | ||||||
|  | 					} | ||||||
|  |  | ||||||
|  | 					next(null, files); | ||||||
|  | 				}); | ||||||
| 			}, | 			}, | ||||||
| 			function (uploaded, next) { | 			function (uploaded, next) { | ||||||
| 				uploaded = uploaded.filter(function (filename) { | 				uploaded = uploaded.filter(function (filename) { | ||||||
| 					return !filename.startsWith('.'); | 					return !filename.startsWith('.'); | ||||||
| 				}).map(function (filename) { | 				}).map(function (filename) { | ||||||
| 					return path.join(__dirname, '../../public/uploads/sounds', filename); | 					return path.join(nconf.get('upload_path'), 'sounds', filename); | ||||||
| 				}); | 				}); | ||||||
|  |  | ||||||
| 				plugins.fireHook('filter:sounds.get', uploaded, function (err, filePaths) { | 				plugins.fireHook('filter:sounds.get', uploaded, function (err, filePaths) { | ||||||
|   | |||||||
| @@ -60,27 +60,27 @@ module.exports = function (Meta) { | |||||||
| 					}, { | 					}, { | ||||||
| 						rel: 'icon', | 						rel: 'icon', | ||||||
| 						sizes: '36x36', | 						sizes: '36x36', | ||||||
| 						href: nconf.get('relative_path') + '/uploads/system/touchicon-36.png' | 						href: nconf.get('relative_path') + '/assets/uploads/system/touchicon-36.png' | ||||||
| 					}, { | 					}, { | ||||||
| 						rel: 'icon', | 						rel: 'icon', | ||||||
| 						sizes: '48x48', | 						sizes: '48x48', | ||||||
| 						href: nconf.get('relative_path') + '/uploads/system/touchicon-48.png' | 						href: nconf.get('relative_path') + '/assets/uploads/system/touchicon-48.png' | ||||||
| 					}, { | 					}, { | ||||||
| 						rel: 'icon', | 						rel: 'icon', | ||||||
| 						sizes: '72x72', | 						sizes: '72x72', | ||||||
| 						href: nconf.get('relative_path') + '/uploads/system/touchicon-72.png' | 						href: nconf.get('relative_path') + '/assets/uploads/system/touchicon-72.png' | ||||||
| 					}, { | 					}, { | ||||||
| 						rel: 'icon', | 						rel: 'icon', | ||||||
| 						sizes: '96x96', | 						sizes: '96x96', | ||||||
| 						href: nconf.get('relative_path') + '/uploads/system/touchicon-96.png' | 						href: nconf.get('relative_path') + '/assets/uploads/system/touchicon-96.png' | ||||||
| 					}, { | 					}, { | ||||||
| 						rel: 'icon', | 						rel: 'icon', | ||||||
| 						sizes: '144x144', | 						sizes: '144x144', | ||||||
| 						href: nconf.get('relative_path') + '/uploads/system/touchicon-144.png' | 						href: nconf.get('relative_path') + '/assets/uploads/system/touchicon-144.png' | ||||||
| 					}, { | 					}, { | ||||||
| 						rel: 'icon', | 						rel: 'icon', | ||||||
| 						sizes: '192x192', | 						sizes: '192x192', | ||||||
| 						href: nconf.get('relative_path') + '/uploads/system/touchicon-192.png' | 						href: nconf.get('relative_path') + '/assets/uploads/system/touchicon-192.png' | ||||||
| 					}); | 					}); | ||||||
| 				} | 				} | ||||||
| 				plugins.fireHook('filter:meta.getLinkTags', defaultLinks, next); | 				plugins.fireHook('filter:meta.getLinkTags', defaultLinks, next); | ||||||
|   | |||||||
| @@ -162,7 +162,7 @@ middleware.privateUploads = function (req, res, next) { | |||||||
| 	if (req.user || parseInt(meta.config.privateUploads, 10) !== 1) { | 	if (req.user || parseInt(meta.config.privateUploads, 10) !== 1) { | ||||||
| 		return next(); | 		return next(); | ||||||
| 	} | 	} | ||||||
| 	if (req.path.startsWith('/uploads/files')) { | 	if (req.path.startsWith('/assets/uploads/files')) { | ||||||
| 		return res.status(403).json('not-allowed'); | 		return res.status(403).json('not-allowed'); | ||||||
| 	} | 	} | ||||||
| 	next(); | 	next(); | ||||||
|   | |||||||
| @@ -144,6 +144,11 @@ module.exports = function (app, middleware, hotswapIds) { | |||||||
|  |  | ||||||
| 	app.use(middleware.privateUploads); | 	app.use(middleware.privateUploads); | ||||||
|  |  | ||||||
|  | 	if (path.resolve(__dirname, '../../public/uploads') !== nconf.get('upload_path')) { | ||||||
|  | 		app.use(relativePath + '/assets/uploads', express.static(nconf.get('upload_path'), { | ||||||
|  | 			maxAge: app.enabled('cache') ? 5184000000 : 0 | ||||||
|  | 		})); | ||||||
|  | 	} | ||||||
| 	app.use(relativePath + '/assets', express.static(path.join(__dirname, '../../build/public'), { | 	app.use(relativePath + '/assets', express.static(path.join(__dirname, '../../build/public'), { | ||||||
| 		maxAge: app.enabled('cache') ? 5184000000 : 0 | 		maxAge: app.enabled('cache') ? 5184000000 : 0 | ||||||
| 	})); | 	})); | ||||||
|   | |||||||
| @@ -86,7 +86,7 @@ module.exports = function (SocketUser) { | |||||||
| 			function (userData, next) { | 			function (userData, next) { | ||||||
| 				if (userData.uploadedpicture && !userData.uploadedpicture.startsWith('http')) { | 				if (userData.uploadedpicture && !userData.uploadedpicture.startsWith('http')) { | ||||||
| 					var pathToFile = path.join(nconf.get('base_dir'), 'public', userData.uploadedpicture); | 					var pathToFile = path.join(nconf.get('base_dir'), 'public', userData.uploadedpicture); | ||||||
| 					if (pathToFile.startsWith(path.join(nconf.get('base_dir'), nconf.get('upload_path')))) { | 					if (pathToFile.startsWith(nconf.get('upload_path'))) { | ||||||
| 						require('fs').unlink(pathToFile, function (err) { | 						require('fs').unlink(pathToFile, function (err) { | ||||||
| 							if (err) { | 							if (err) { | ||||||
| 								winston.error(err); | 								winston.error(err); | ||||||
|   | |||||||
| @@ -88,9 +88,6 @@ start.start = function () { | |||||||
|  |  | ||||||
| function setupConfigs() { | function setupConfigs() { | ||||||
| 	// nconf defaults, if not set in config | 	// nconf defaults, if not set in config | ||||||
| 	if (!nconf.get('upload_path')) { |  | ||||||
| 		nconf.set('upload_path', '/public/uploads'); |  | ||||||
| 	} |  | ||||||
| 	if (!nconf.get('sessionKey')) { | 	if (!nconf.get('sessionKey')) { | ||||||
| 		nconf.set('sessionKey', 'express.sid'); | 		nconf.set('sessionKey', 'express.sid'); | ||||||
| 	} | 	} | ||||||
| @@ -102,7 +99,6 @@ function setupConfigs() { | |||||||
| 	nconf.set('use_port', !!urlObject.port); | 	nconf.set('use_port', !!urlObject.port); | ||||||
| 	nconf.set('relative_path', relativePath); | 	nconf.set('relative_path', relativePath); | ||||||
| 	nconf.set('port', urlObject.port || nconf.get('port') || nconf.get('PORT') || (nconf.get('PORT_ENV_VAR') ? nconf.get(nconf.get('PORT_ENV_VAR')) : false) || 4567); | 	nconf.set('port', urlObject.port || nconf.get('port') || nconf.get('PORT') || (nconf.get('PORT_ENV_VAR') ? nconf.get(nconf.get('PORT_ENV_VAR')) : false) || 4567); | ||||||
| 	nconf.set('upload_url', nconf.get('upload_path').replace(/^\/public/, '')); |  | ||||||
| } | } | ||||||
|  |  | ||||||
| function printStartupInfo() { | function printStartupInfo() { | ||||||
|   | |||||||
| @@ -41,7 +41,7 @@ module.exports = function (Topics) { | |||||||
| 					extension = '.' + mime.extension(type); | 					extension = '.' + mime.extension(type); | ||||||
| 				} | 				} | ||||||
| 				filename = Date.now() + '-topic-thumb' + extension; | 				filename = Date.now() + '-topic-thumb' + extension; | ||||||
| 				pathToUpload = path.join(nconf.get('base_dir'), nconf.get('upload_path'), 'files', filename); | 				pathToUpload = path.join(nconf.get('upload_path'), 'files', filename); | ||||||
|  |  | ||||||
| 				request(data.thumb).pipe(fs.createWriteStream(pathToUpload)).on('close', next); | 				request(data.thumb).pipe(fs.createWriteStream(pathToUpload)).on('close', next); | ||||||
| 			}, | 			}, | ||||||
| @@ -59,7 +59,7 @@ module.exports = function (Topics) { | |||||||
| 			}, | 			}, | ||||||
| 			function (next) { | 			function (next) { | ||||||
| 				if (!plugins.hasListeners('filter:uploadImage')) { | 				if (!plugins.hasListeners('filter:uploadImage')) { | ||||||
| 					data.thumb = path.join(nconf.get('upload_url'), 'files', filename); | 					data.thumb = '/assets/uploads/files/' + filename; | ||||||
| 					return callback(); | 					return callback(); | ||||||
| 				} | 				} | ||||||
|  |  | ||||||
|   | |||||||
| @@ -19,7 +19,7 @@ | |||||||
| 	nconf.defaults({ | 	nconf.defaults({ | ||||||
| 		base_dir: path.join(__dirname,'../..'), | 		base_dir: path.join(__dirname,'../..'), | ||||||
| 		themes_path: path.join(__dirname, '../../node_modules'), | 		themes_path: path.join(__dirname, '../../node_modules'), | ||||||
| 		upload_url: path.join(path.sep, '../../uploads', path.sep), | 		upload_path: 'public/uploads', | ||||||
| 		views_dir: path.join(__dirname, '../../build/public/templates'), | 		views_dir: path.join(__dirname, '../../build/public/templates'), | ||||||
| 		relative_path: '' | 		relative_path: '' | ||||||
| 	}); | 	}); | ||||||
| @@ -121,9 +121,6 @@ | |||||||
| 			}, | 			}, | ||||||
| 			function (next) { | 			function (next) { | ||||||
| 				// nconf defaults, if not set in config | 				// nconf defaults, if not set in config | ||||||
| 				if (!nconf.get('upload_path')) { |  | ||||||
| 					nconf.set('upload_path', '/public/uploads'); |  | ||||||
| 				} |  | ||||||
| 				if (!nconf.get('sessionKey')) { | 				if (!nconf.get('sessionKey')) { | ||||||
| 					nconf.set('sessionKey', 'express.sid'); | 					nconf.set('sessionKey', 'express.sid'); | ||||||
| 				} | 				} | ||||||
| @@ -135,7 +132,7 @@ | |||||||
| 				nconf.set('use_port', !!urlObject.port); | 				nconf.set('use_port', !!urlObject.port); | ||||||
| 				nconf.set('relative_path', relativePath); | 				nconf.set('relative_path', relativePath); | ||||||
| 				nconf.set('port', urlObject.port || nconf.get('port') || nconf.get('PORT') || (nconf.get('PORT_ENV_VAR') ? nconf.get(nconf.get('PORT_ENV_VAR')) : false) || 4567); | 				nconf.set('port', urlObject.port || nconf.get('port') || nconf.get('PORT') || (nconf.get('PORT_ENV_VAR') ? nconf.get(nconf.get('PORT_ENV_VAR')) : false) || 4567); | ||||||
| 				nconf.set('upload_url', nconf.get('upload_path').replace(/^\/public/, '')); | 				nconf.set('upload_path', path.join(nconf.get('base_dir'), nconf.get('upload_path'))); | ||||||
|  |  | ||||||
| 				nconf.set('core_templates_path', path.join(__dirname, '../../src/views')); | 				nconf.set('core_templates_path', path.join(__dirname, '../../src/views')); | ||||||
| 				nconf.set('base_templates_path', path.join(nconf.get('themes_path'), 'nodebb-theme-persona/templates')); | 				nconf.set('base_templates_path', path.join(nconf.get('themes_path'), 'nodebb-theme-persona/templates')); | ||||||
|   | |||||||
| @@ -72,7 +72,7 @@ describe('Upload Controllers', function () { | |||||||
| 				assert.equal(res.statusCode, 200); | 				assert.equal(res.statusCode, 200); | ||||||
| 				assert(Array.isArray(body)); | 				assert(Array.isArray(body)); | ||||||
| 				assert.equal(body.length, 1); | 				assert.equal(body.length, 1); | ||||||
| 				assert.equal(body[0].url, '/uploads/profile/' + regularUid + '-profileimg.png'); | 				assert.equal(body[0].url, '/assets/uploads/profile/' + regularUid + '-profileimg.png'); | ||||||
| 				done(); | 				done(); | ||||||
| 			}); | 			}); | ||||||
| 		}); | 		}); | ||||||
| @@ -122,7 +122,7 @@ describe('Upload Controllers', function () { | |||||||
| 				assert.ifError(err); | 				assert.ifError(err); | ||||||
| 				assert.equal(res.statusCode, 200); | 				assert.equal(res.statusCode, 200); | ||||||
| 				assert(Array.isArray(body)); | 				assert(Array.isArray(body)); | ||||||
| 				assert.equal(body[0].url, '/uploads/system/site-logo.png'); | 				assert.equal(body[0].url, '/assets/uploads/system/site-logo.png'); | ||||||
| 				done(); | 				done(); | ||||||
| 			}); | 			}); | ||||||
| 		}); | 		}); | ||||||
| @@ -132,7 +132,7 @@ describe('Upload Controllers', function () { | |||||||
| 				assert.ifError(err); | 				assert.ifError(err); | ||||||
| 				assert.equal(res.statusCode, 200); | 				assert.equal(res.statusCode, 200); | ||||||
| 				assert(Array.isArray(body)); | 				assert(Array.isArray(body)); | ||||||
| 				assert.equal(body[0].url, '/uploads/category/category-1.png'); | 				assert.equal(body[0].url, '/assets/uploads/category/category-1.png'); | ||||||
| 				done(); | 				done(); | ||||||
| 			}); | 			}); | ||||||
| 		}); | 		}); | ||||||
| @@ -142,7 +142,7 @@ describe('Upload Controllers', function () { | |||||||
| 				assert.ifError(err); | 				assert.ifError(err); | ||||||
| 				assert.equal(res.statusCode, 200); | 				assert.equal(res.statusCode, 200); | ||||||
| 				assert(Array.isArray(body)); | 				assert(Array.isArray(body)); | ||||||
| 				assert.equal(body[0].url, '/uploads/system/favicon.ico'); | 				assert.equal(body[0].url, '/assets/uploads/system/favicon.ico'); | ||||||
| 				done(); | 				done(); | ||||||
| 			}); | 			}); | ||||||
| 		}); | 		}); | ||||||
| @@ -152,7 +152,7 @@ describe('Upload Controllers', function () { | |||||||
| 				assert.ifError(err); | 				assert.ifError(err); | ||||||
| 				assert.equal(res.statusCode, 200); | 				assert.equal(res.statusCode, 200); | ||||||
| 				assert(Array.isArray(body)); | 				assert(Array.isArray(body)); | ||||||
| 				assert.equal(body[0].url, '/uploads/system/touchicon-orig.png'); | 				assert.equal(body[0].url, '/assets/uploads/system/touchicon-orig.png'); | ||||||
| 				done(); | 				done(); | ||||||
| 			}); | 			}); | ||||||
| 		}); | 		}); | ||||||
|   | |||||||
| @@ -503,7 +503,7 @@ describe('User', function () { | |||||||
| 			}; | 			}; | ||||||
| 			User.uploadPicture(uid, picture, function (err, uploadedPicture) { | 			User.uploadPicture(uid, picture, function (err, uploadedPicture) { | ||||||
| 				assert.ifError(err); | 				assert.ifError(err); | ||||||
| 				assert.equal(uploadedPicture.url, '/uploads/profile/' + uid + '-profileimg.png'); | 				assert.equal(uploadedPicture.url, '/assets/uploads/profile/' + uid + '-profileimg.png'); | ||||||
| 				assert.equal(uploadedPicture.path, path.join(nconf.get('base_dir'), 'public', 'uploads', 'profile', uid + '-profileimg.png')); | 				assert.equal(uploadedPicture.path, path.join(nconf.get('base_dir'), 'public', 'uploads', 'profile', uid + '-profileimg.png')); | ||||||
| 				done(); | 				done(); | ||||||
| 			}); | 			}); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user