From c6c9d9006650e50c3ad9e0fca9d0a6117f12ba3b Mon Sep 17 00:00:00 2001 From: Ylian Saint-Hilaire Date: Tue, 19 Jun 2018 12:25:57 -0700 Subject: [PATCH] Fixed and improved server file storage --- meshuser.js | 4 +++- package.json | 2 +- public/images/MeshIcon100.png | Bin 0 -> 16542 bytes public/images/meshicon16.png | Bin 0 -> 754 bytes public/styles/style.css | 10 ++++++++++ views/default-mobile.handlebars | 29 +++++++++++++++++++++-------- views/default.handlebars | 10 +++++----- 7 files changed, 40 insertions(+), 15 deletions(-) create mode 100644 public/images/MeshIcon100.png create mode 100644 public/images/meshicon16.png diff --git a/meshuser.js b/meshuser.js index 7c3d4d27..57a63ce6 100644 --- a/meshuser.js +++ b/meshuser.js @@ -37,6 +37,8 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain) { } else if (splitid[0] == 'mesh') { // Check mesh access var meshrights = user.links[meshpath[0]]; + if (meshrights == null) return null; // No meth rights for this user + meshrights = meshrights.rights; // Get the rights bit mask if ((meshrights == null) || ((meshrights & 32) == 0)) return null; // This user must have mesh rights to "server files" } else return null; var rootfolder = meshpath[0], rootfoldersplit = rootfolder.split('/'), domainx = 'domain'; @@ -1283,7 +1285,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain) { var mesh = obj.parent.meshes[i]; if (mesh) { var meshsplit = mesh._id.split('/'); - files.filetree.f[mesh._id] = { t: 1, n: mesh.name, f: {} }; + files.filetree.f[mesh._id] = { t: 4, n: mesh.name, f: {} }; files.filetree.f[mesh._id].maxbytes = obj.parent.getQuota(mesh._id, domain); // Read all files recursively diff --git a/package.json b/package.json index 8f1c3f44..b3b52b7b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "meshcentral", - "version": "0.1.8-e", + "version": "0.1.8-f", "keywords": [ "Remote Management", "Intel AMT", diff --git a/public/images/MeshIcon100.png b/public/images/MeshIcon100.png new file mode 100644 index 0000000000000000000000000000000000000000..cd063f97ff937faeeb4a2815e55ef5c766363d9f GIT binary patch literal 16542 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 R2W|jk@O1TaS?83{1ON@Nse}Lk literal 0 HcmV?d00001 diff --git a/public/images/meshicon16.png b/public/images/meshicon16.png new file mode 100644 index 0000000000000000000000000000000000000000..64fbc82662e047ca7ce02b09914116d62d8ee3dd GIT binary patch literal 754 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02p*dSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E;(#7eog=Y0%J);K~y+TWB5-ZfNJ>t`|rwa=bM-8%$c?` zw{QQ1`Nxl+zw`UgUx+L+0BLyt=||7TgPt=x3U~G8Zdn;J^<;GamGJH*OE;eS{{0t3 z9UL%x`~JIP{&xM{_UoQ4K6me8`Id8$TkpiozM3{|S5)<)ZF{bM{rVHC77Q2`tv@Ea zBGCJZ&!hi)etvp2=hD;IN;Zu4(? zl->wmm*aY!N1-V&tY8yVEf_GEWpo?GtT2e(WmvMpq-=>@)lQd+Gmi16bZeV5Cx&WA zPDm-<4OI&U43$j>v@ADkC->@~4GX)Q6@RkXuXej#^yzC?&Oy+X%V$rYI&$Lpp(BU) z9oWB{;mFB*rViUxb86YvS;!v^w7iz$cBa^BN;gm`E6)aTjib@|pEjNTxBk?>{?%W1 z@7@lIhpBT<=~``*%q$ey>?nW2Q|X$k#m@3;SI%-utP$1N#vpaQclL|@XZ~+I_+$IF z%^(dwe*9Xx`l4(2a?!E?iTU1oeXRjadoG+iDWSevSb3$A$!?E`GrjY^mv_Hgw{|r& zX?*S z`}XhOy=V819ox68S+i>8%H_+JEm^#H5l#&d@a@~TbLY-1TsZ&BmoE?z0vaw|I)CWk ko|P+?9XN0R#Q*;v0BHR!J34BnZ2$lO07*qoM6N<$f>E - - +
 
+ + + +
 
@@ -1013,8 +1026,8 @@ if (f.s != null) { fsize = getFileSizeStr(f.s); } var h = ''; - if (f.t < 3) { - var right = (f.t == 1)?p5getQuotabar(f):'', title = ''; + if (f.t < 3 || f.t == 4) { + var right = (f.t == 1 || f.t == 4)?p5getQuotabar(f):'', title = ''; h = "

"; } else { var link = shortname; @@ -1028,7 +1041,7 @@ } //if (f.parent == null) { } - //QH('p5rightOfButtons', p5getQuotabar(filetreex)); + QH('p5rightOfButtons', p5getQuotabar(filetreex)); QH('p5files', html1 + html2); QH('p5currentpath', displayPath); @@ -1047,8 +1060,8 @@ } function p5getQuotabar(f) { - while (f.t > 1) { f = f.parent; } - if ((f.t != 1) || (f.maxbytes == null)) return ''; + while (f.t > 1 && f.t != 4) { f = f.parent; } + if ((f.t != 1 && f.t != 4) || (f.maxbytes == null)) return ''; var tf = Math.floor(f.s / 1024), tq = Math.floor((f.maxbytes - f.s) / 1024); return ' 1?'s':'') + ". " + (Math.floor(f.maxbytes / 1024)) + 'k maxinum">' + ((tq < 0)?('Storage limit exceed'):(tq + 'k remaining')) + ' '; } @@ -1081,7 +1094,7 @@ Q('p5SelectAllButton').value = (cc > 0 ? 'Select None' : 'Select All'); QE('p5CutButton', (sfc > 0) && (cc == sfc)); QE('p5CopyButton', (sfc > 0) && (cc == sfc)); - QE('p5PasteButton', (p5clipboard != null) && (p5clipboard.length > 0)); + QE('p5PasteButton', (p5clipboard != null) && (p5clipboard.length > 0) && (filetreelocation.length > 0)); } function getFileSelCount(includeDirs) { var cc = 0; var checkboxes = document.getElementsByName('fc'); for (var i = 0; i < checkboxes.length; i++) { if ((checkboxes[i].checked) && ((includeDirs != false) || (checkboxes[i].attributes.file.value == "3"))) cc++; } return cc; } diff --git a/views/default.handlebars b/views/default.handlebars index d061bb86..886e57a3 100644 --- a/views/default.handlebars +++ b/views/default.handlebars @@ -4899,8 +4899,8 @@ if (f.s != null) { fsize = getFileSizeStr(f.s); } var h = ''; - if (f.t < 3) { - var right = (f.t == 1)?p5getQuotabar(f):'', title = ''; + if (f.t < 3 || f.t == 4) { + var right = (f.t == 1 || f.t == 4)?p5getQuotabar(f):'', title = ''; h = "
 " + right + "
" + shortname + "
"; } else { var link = shortname; @@ -4933,8 +4933,8 @@ } function p5getQuotabar(f) { - while (f.t > 1) { f = f.parent; } - if ((f.t != 1) || (f.maxbytes == null)) return ''; + while (f.t > 1 && f.t != 4) { f = f.parent; } + if ((f.t != 1 && f.t != 4) || (f.maxbytes == null)) return ''; var tf = Math.floor(f.s / 1024), tq = Math.floor((f.maxbytes - f.s) / 1024); return ' 1?'s':'') + ". " + (Math.floor(f.maxbytes / 1024)) + 'k maxinum">' + ((tq < 0)?('Storage limit exceed'):(tq + 'k remaining')) + ' '; } @@ -4967,7 +4967,7 @@ Q('p5SelectAllButton').value = (cc > 0 ? 'Select None' : 'Select All'); QE('p5CutButton', (sfc > 0) && (cc == sfc)); QE('p5CopyButton', (sfc > 0) && (cc == sfc)); - QE('p5PasteButton', (p5clipboard != null) && (p5clipboard.length > 0)); + QE('p5PasteButton', (p5clipboard != null) && (p5clipboard.length > 0) && (filetreelocation.length > 0)); } function getFileSelCount(includeDirs) { var cc = 0; var checkboxes = document.getElementsByName('fc'); for (var i = 0; i < checkboxes.length; i++) { if ((checkboxes[i].checked) && ((includeDirs != false) || (checkboxes[i].attributes.file.value == "3"))) cc++; } return cc; }