Fixed path object in meshuser.js

This commit is contained in:
Ylian Saint-Hilaire 2019-03-20 09:53:44 -07:00
parent af6c9acace
commit 1a5b3ba596
2 changed files with 11 additions and 11 deletions

View File

@ -81,7 +81,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
} else return null; } else return null;
var rootfolder = meshpath[0], rootfoldersplit = rootfolder.split('/'), domainx = 'domain'; var rootfolder = meshpath[0], rootfoldersplit = rootfolder.split('/'), domainx = 'domain';
if (rootfoldersplit[1].length > 0) domainx = 'domain-' + rootfoldersplit[1]; if (rootfoldersplit[1].length > 0) domainx = 'domain-' + rootfoldersplit[1];
var path = path.join(parent.filespath, domainx, rootfoldersplit[0] + "-" + rootfoldersplit[2]); var path = parent.path.join(parent.filespath, domainx, rootfoldersplit[0] + "-" + rootfoldersplit[2]);
for (var i = 1; i < meshpath.length; i++) { if (common.IsFilenameValid(meshpath[i]) == false) { path = null; break; } path += ("/" + meshpath[i]); } for (var i = 1; i < meshpath.length; i++) { if (common.IsFilenameValid(meshpath[i]) == false) { path = null; break; } path += ("/" + meshpath[i]); }
return path; return path;
} }
@ -419,7 +419,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
if (common.validateArray(command.delfiles, 1) == false) return; if (common.validateArray(command.delfiles, 1) == false) return;
for (i in command.delfiles) { for (i in command.delfiles) {
if (common.IsFilenameValid(command.delfiles[i]) == true) { if (common.IsFilenameValid(command.delfiles[i]) == true) {
var fullpath = path.join(path, command.delfiles[i]); var fullpath = parent.path.join(path, command.delfiles[i]);
if (command.rec == true) { if (command.rec == true) {
deleteFolderRecursive(fullpath); // TODO, make this an async function deleteFolderRecursive(fullpath); // TODO, make this an async function
} else { } else {
@ -448,7 +448,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
if (scpath == null) break; if (scpath == null) break;
// TODO: Check quota if this is a copy!!!!!!!!!!!!!!!! // TODO: Check quota if this is a copy!!!!!!!!!!!!!!!!
for (i in command.names) { for (i in command.names) {
var s = path.join(scpath, command.names[i]), d = path.join(path, command.names[i]); var s = parent.path.join(scpath, command.names[i]), d = parent.path.join(path, command.names[i]);
sendUpdate = false; sendUpdate = false;
copyFile(s, d, function (op) { if (op != null) { fs.unlink(op, function (err) { parent.parent.DispatchEvent([user._id], obj, 'updatefiles'); }); } else { parent.parent.DispatchEvent([user._id], obj, 'updatefiles'); } }, ((command.fileop == 'move') ? s : null)); copyFile(s, d, function (op) { if (op != null) { fs.unlink(op, function (err) { parent.parent.DispatchEvent([user._id], obj, 'updatefiles'); }); } else { parent.parent.DispatchEvent([user._id], obj, 'updatefiles'); } }, ((command.fileop == 'move') ? s : null));
} }
@ -2109,7 +2109,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
function deleteFolderRecursive(path) { function deleteFolderRecursive(path) {
if (fs.existsSync(path)) { if (fs.existsSync(path)) {
fs.readdirSync(path).forEach(function (file, index) { fs.readdirSync(path).forEach(function (file, index) {
var curPath = path.join(path, file);; var curPath = parent.path.join(path, file);;
if (fs.lstatSync(curPath).isDirectory()) { // recurse if (fs.lstatSync(curPath).isDirectory()) { // recurse
deleteFolderRecursive(curPath); deleteFolderRecursive(curPath);
} else { // delete file } else { // delete file
@ -2134,15 +2134,15 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
// Read all files recursively // Read all files recursively
try { try {
files.filetree.f[user._id].f = readFilesRec(path.join(parent.filespath, domainx + "/user-" + usersplit[2])); files.filetree.f[user._id].f = readFilesRec(parent.path.join(parent.filespath, domainx + "/user-" + usersplit[2]));
} catch (e) { } catch (e) {
// TODO: We may want to fake this file structure until it's needed. // TODO: We may want to fake this file structure until it's needed.
// Got an error, try to create all the folders and try again... // Got an error, try to create all the folders and try again...
try { fs.mkdirSync(parent.filespath); } catch (e) { } try { fs.mkdirSync(parent.filespath); } catch (e) { }
try { fs.mkdirSync(path.join(parent.filespath, domainx)); } catch (e) { } try { fs.mkdirSync(parent.path.join(parent.filespath, domainx)); } catch (e) { }
try { fs.mkdirSync(path.join(parent.filespath, domainx + "/user-" + usersplit[2])); } catch (e) { } try { fs.mkdirSync(parent.path.join(parent.filespath, domainx + "/user-" + usersplit[2])); } catch (e) { }
try { fs.mkdirSync(path.join(parent.filespath, domainx + "/user-" + usersplit[2] + "/Public")); } catch (e) { } try { fs.mkdirSync(parent.path.join(parent.filespath, domainx + "/user-" + usersplit[2] + "/Public")); } catch (e) { }
try { files.filetree.f[user._id].f = readFilesRec(path.join(parent.filespath, domainx + "/user-" + usersplit[2])); } catch (e) { } try { files.filetree.f[user._id].f = readFilesRec(parent.path.join(parent.filespath, domainx + "/user-" + usersplit[2])); } catch (e) { }
} }
// Add files for each mesh // Add files for each mesh
@ -2156,7 +2156,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
// Read all files recursively // Read all files recursively
try { try {
files.filetree.f[mesh._id].f = readFilesRec(path.join(parent.filespath, domainx + "/mesh-" + meshsplit[2])); files.filetree.f[mesh._id].f = readFilesRec(parent.path.join(parent.filespath, domainx + "/mesh-" + meshsplit[2]));
} catch (e) { } catch (e) {
files.filetree.f[mesh._id].f = {}; // Got an error, return empty folder. We will create the folder only when needed. files.filetree.f[mesh._id].f = {}; // Got an error, return empty folder. We will create the folder only when needed.
} }

View File

@ -1,6 +1,6 @@
{ {
"name": "meshcentral", "name": "meshcentral",
"version": "0.3.0-q", "version": "0.3.0-r",
"keywords": [ "keywords": [
"Remote Management", "Remote Management",
"Intel AMT", "Intel AMT",