Socket
Socket
Sign inDemoInstall

oils-plugin-braziw-cms

Package Overview
Dependencies
Maintainers
1
Versions
20
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

oils-plugin-braziw-cms - npm Package Compare versions

Comparing version 3.0.1 to 3.0.2

.npmignore

1

conf/conf.js

@@ -23,2 +23,3 @@ const path = require('path');

"showIconDescrip": true,
"autoCreateAdminUser": false,
"uploadDir": uploadDir,

@@ -25,0 +26,0 @@ "adminTemplate": pluginPath + "/views/templates/admin-template.html",

3

controllers/document/list.js

@@ -30,4 +30,3 @@ module.exports = function(pluginConf, web) {

context: context,
folderId:
folderId,
folderId: folderId,
parentFolders: parentFolders,

@@ -34,0 +33,0 @@ folderPath: folderPath,

{
"name": "oils-plugin-braziw-cms",
"version": "3.0.1",
"version": "3.0.2",
"description": "Content and document management system plugin for oils js",

@@ -5,0 +5,0 @@ "keywords": [

@@ -227,3 +227,3 @@ module.exports = function(pluginConf, web, next) {

function cmsRunOnce() {
if (web.auth) {
if (web.auth && pluginConf.autoCreateAdminUser) {
let User = web.auth.UserModel;

@@ -233,9 +233,13 @@

let saveAdminUser = function() {
//deprecated, auth plugin now handles admin registration for new websites
if (!pluginConf.defaultAdminPassword) {
throw new Error("cms-pluginConf.defaultAdminPassword is required");
}
let user = new User();
user.username = 'admin';
user.password = 'abcd1234';
user.birthday= new Date();
user.lastname ='John';
user.firstname = 'Doe';
user.middlename = 'Admin';
user.password = pluginConf.defaultAdminPassword;
user.birthday = new Date();
user.role = 'ADMIN';

@@ -242,0 +246,0 @@ user.fullname = 'Admin';

@@ -12,47 +12,59 @@ const _path = require('path');

self.handleFolder = function(parentFolderId, req, res, callback, parentFolders) {
if (parentFolderId) {
try {
parentFolderId = mongoose.Types.ObjectId(parentFolderId)
} catch(e) {
console.error('Folder id error: ' + parentFolderId, e);
redirectToMainWithError(req, res, 'Invalid folder.');
return;
}
}
Document.findOne({_id: parentFolderId}, function(err, folder) {
return new Promise(function(resolve, reject) {
if (parentFolderId) {
if (!folder) {
console.error('Folder not found error: ' + parentFolderId);
redirectToMainWithError(req, res, 'Folder not found.');
return
try {
parentFolderId = mongoose.Types.ObjectId(parentFolderId)
} catch(e) {
console.error('Folder id error: ' + parentFolderId, e);
redirectToMainWithError(req, res, 'Invalid folder.');
return;
}
}
if (folder) {
if (parentFolders == null) {
parentFolders = [];
Document.findOne({_id: parentFolderId}, function(err, folder) {
if (parentFolderId) {
if (!folder) {
console.error('Folder not found error: ' + parentFolderId);
redirectToMainWithError(req, res, 'Folder not found.');
return
}
}
parentFolders.unshift(folder);
if (folder.parentFolderId) {
self.handleFolder(folder.parentFolderId.toString(), req, res, callback, parentFolders);
//WARNING this will return
return;
if (folder) {
if (parentFolders == null) {
parentFolders = [];
}
parentFolders.unshift(folder);
if (folder.parentFolderId) {
self.handleFolder(folder.parentFolderId.toString(), req, res, callback, parentFolders);
//WARNING this will return
return;
}
}
}
let folderId = null;
if (parentFolders) {
folder = parentFolders[parentFolders.length-1];
folderId = folder._id.toString();
}
callback(err, folder, folderId, parentFolders);
let folderId = null;
if (parentFolders) {
folder = parentFolders[parentFolders.length-1];
folderId = folder._id.toString();
}
})
if (callback) {
callback(err, folder, folderId, parentFolders);
}
if (err) {
reject(err);
} else {
resolve(folder, folderId, parentFolders);
}
})
});
}

@@ -115,7 +127,14 @@

self.getChildren = function(doc, callback) {
Document.find({parentFolderId:doc._id}, function(err, docs) {
if (err) throw err;
return new Promise(function(resolve, reject) {
Document.find({parentFolderId:doc._id}, function(err, docs) {
if (err) throw err;
callback(err, docs);
if (callback) {
callback(err, docs);
}
resolve(docs);
});
});
}

@@ -125,3 +144,3 @@

//breadth first search delete
self._breadthFirstSearchDelete([doc], callback);
return self._breadthFirstSearchDelete([doc], callback);
}

@@ -131,16 +150,25 @@

self._breadthFirstSearchDelete = function(arrDocs, callback) {
async.whilst(function() {
return arrDocs.length > 0;
}, function(asyncCallback) {
let lastDoc = arrDocs.pop();
if (lastDoc.isFolder) {
self.getChildren(lastDoc, function(err, docs) {
for (let i in docs) {
arrDocs.unshift(docs[i]);
}
return new Promise(function(resolve, reject) {
async.whilst(function() {
return arrDocs.length > 0;
}, function(asyncCallback) {
let lastDoc = arrDocs.pop();
if (lastDoc.isFolder) {
self.getChildren(lastDoc, function(err, docs) {
for (let i in docs) {
arrDocs.unshift(docs[i]);
}
if (console.isDebug) {
console.debug('Deleting ' + lastDoc.name);
}
lastDoc.remove(function(err) {
if (err) throw err;
asyncCallback();
})
})
} else {
if (console.isDebug) {
console.debug('Deleting ' + lastDoc.name);
}
console.debug('Deleting ' + lastDoc.name);
}
lastDoc.remove(function(err) {

@@ -150,19 +178,20 @@ if (err) throw err;

})
})
} else {
if (console.isDebug) {
console.debug('Deleting ' + lastDoc.name);
}
lastDoc.remove(function(err) {
if (err) throw err;
asyncCallback();
})
}
}
},
},
function(err) {
callback(err);
})
function(err) {
if (callback) {
callback(err);
}
if (err) {
reject(err);
} else {
resolve();
}
})
});

@@ -173,19 +202,26 @@ }

self.deletePath = function(path, callback) {
self.retrieveDoc(path, function(err, doc) {
if (err) throw err;
return new Promise(function(resolve, reject) {
self.retrieveDoc(path, function(err, doc) {
if (err) throw err;
if (!doc) {
console.warn('Delete path do not exist ' + path);
if (callback) {
callback();
}
} else {
self.deleteDoc(doc, function(err) {
if (err) throw err;
if (!doc) {
console.warn('Delete path do not exist ' + path);
if (callback) {
callback();
}
})
}
resolve();
} else {
self.deleteDoc(doc, function(err) {
if (err) throw err;
if (callback) {
callback();
}
resolve();
})
}
})
})
}

@@ -198,53 +234,91 @@

}
let SpecificObject = null;
if (optionalDocType) {
SpecificObject = web.cms.getCmsModel(optionalDocType);
} else {
SpecificObject = Document;
}
SpecificObject.findOne({parentFolderId: parentDocId, lowerCaseName: name.toLowerCase()}, function(err, doc) {
callback(err, doc);
})
return new Promise(function(resolve, reject) {
let SpecificObject = null;
if (optionalDocType) {
SpecificObject = web.cms.getCmsModel(optionalDocType);
} else {
SpecificObject = Document;
}
SpecificObject.findOne({parentFolderId: parentDocId, lowerCaseName: name.toLowerCase()}, function(err, doc) {
if (callback) {
callback(err, doc);
}
if (err) {
reject(err);
} else {
resolve(doc);
}
})
});
};
self.retrieveDoc = function(path, callback) {
let arrPaths = self.getPathAsArray(path);
return new Promise(function(resolve, reject) {
let arrPaths = self.getPathAsArray(path);
self._retrieveDocFromArray(arrPaths, function(err, doc) {
if (err) throw err;
callback(err, doc);
})
self._retrieveDocFromArray(arrPaths, function(err, doc) {
if (err) throw err;
if (callback) {
callback(err, doc);
}
resolve(doc);
})
});
}
self.retrieveDocById = function(id, callback) {
Document.findOne({_id: id}, function(err, doc) {
callback(err, doc);
})
return new Promise(function(resolve, reject) {
Document.findOne({_id: id}, function(err, doc) {
if (callback) {
callback(err, doc);
}
if (err) {
reject(err);
} else {
resolve(doc);
}
})
});
}
self._retrieveDocFromArray = function(arrPaths, callback, currDoc) {
if (arrPaths.length == 0) {
callback(null, currDoc);
return;
}
return new Promise(function(resolve, reject) {
// if (console.isDebug) {
// console.debug('Retrieve doc from array: ' + arrPaths);
// }
let firstFile = arrPaths[0];
if (arrPaths.length == 0) {
if (callback) {
callback(null, currDoc);
}
resolve(currDoc);
return;
}
arrPaths.shift();
// if (console.isDebug) {
// console.debug('Retrieve doc from array: ' + arrPaths);
// }
let firstFile = arrPaths[0];
let parentDocId = currDoc ? currDoc._id : null;
arrPaths.shift();
self.checkExistence(firstFile, parentDocId, function(err, doc) {
if (err) throw err;
let parentDocId = currDoc ? currDoc._id : null;
if (!doc) {
self.checkExistence(firstFile, parentDocId, function(err, doc) {
if (err) throw err;
callback();
} else {
self._retrieveDocFromArray(arrPaths, callback, doc);
}
if (!doc) {
if (callback) {
callback();
}
resolve();
} else {
self._retrieveDocFromArray(arrPaths, callback, doc);
}
});
});

@@ -254,25 +328,32 @@ }

self.getFolderPath = function(doc, cb, parentFolders) {
if (doc.folderPath && !parentFolders) {
//console.log('Hello!!', doc.folderPath);
cb(null, doc.folderPath);
return;
}
if (parentFolders == null) {
parentFolders = [];
}
if (!doc.parentFolderId) {
let folderPath = '/';
if (parentFolders && parentFolders.length > 0) {
folderPath = folderPath + parentFolders.join('/') + '/';
return new Promise(function(resolve, reject) {
if (doc.folderPath && !parentFolders) {
//console.log('Hello!!', doc.folderPath);
if (cb) {
cb(null, doc.folderPath);
}
resolve(doc.folderPath);
return;
}
cb(null, folderPath);
return;
}
//console.log('!!!' + doc.parentFolderId);
self.retrieveDocById(doc.parentFolderId, function(err, doc) {
if (err) {cb(err, null)}
parentFolders.unshift(doc.name);
self.getFolderPath(doc, cb, parentFolders);
if (parentFolders == null) {
parentFolders = [];
}
if (!doc.parentFolderId) {
let folderPath = '/';
if (parentFolders && parentFolders.length > 0) {
folderPath = folderPath + parentFolders.join('/') + '/';
}
cb(null, folderPath);
return;
}
//console.log('!!!' + doc.parentFolderId);
self.retrieveDocById(doc.parentFolderId, function(err, doc) {
if (err) {cb(err, null)}
parentFolders.unshift(doc.name);
self.getFolderPath(doc, cb, parentFolders);
});
});

@@ -287,61 +368,78 @@ }

if (optionalContent !== null && typeof optionalContent === 'string') {
let strValue = optionalContent;
optionalContent = new Object();
optionalContent.content = strValue;
}
return new Promise(function(resolve, reject) {
let parentDir = _path.dirname(path);
self.mkdirs(parentDir, function(err, parentDoc) {
if (err) throw err;
if (optionalContent !== null && typeof optionalContent === 'string') {
let strValue = optionalContent;
optionalContent = new Object();
optionalContent.content = strValue;
}
let basename = _path.basename(path);
let parentDocId = parentDoc ? parentDoc._id : null
let parentDir = _path.dirname(path);
self.mkdirs(parentDir, function(err, parentDoc) {
let myDocType = null;
if (optionalContent && optionalContent.docType) {
myDocType = optionalContent.docType;
}
self.checkExistence(basename, parentDoc, myDocType, function(err, doc) {
if (err) throw err;
if (!doc) {
if (myDocType) {
let SpecificObject = web.cms.getCmsModel(myDocType);
doc = new SpecificObject();
} else {
doc = new Document();
}
doc.name = basename;
if (parentDoc) {
doc.parentFolderId = parentDoc._id;
}
let basename = _path.basename(path);
let parentDocId = parentDoc ? parentDoc._id : null
doc.docType = web.cms.constants.file;
let myDocType = null;
if (optionalContent && optionalContent.docType) {
myDocType = optionalContent.docType;
}
if (optionalContent) {
for (let i in optionalContent) {
doc[i] = new Buffer(optionalContent[i], "utf8");
}
}
self.checkExistence(basename, parentDoc, myDocType, function(err, doc) {
if (err) throw err;
doc.save(function(err) {
if (err) {
callback(err);
if (!doc) {
if (myDocType) {
let SpecificObject = web.cms.getCmsModel(myDocType);
doc = new SpecificObject();
} else {
callback(null, doc, false);
doc = new Document();
}
});
doc.name = basename;
if (parentDoc) {
doc.parentFolderId = parentDoc._id;
}
doc.docType = web.cms.constants.file;
} else {
callback(null, doc, true);
}
})
if (optionalContent) {
for (let i in optionalContent) {
doc[i] = new Buffer(optionalContent[i], "utf8");
}
}
doc.save(function(err) {
if (err) {
if (callback) {
callback(err);
}
reject(err);
} else {
if (callback) {
callback(null, doc, false);
}
resolve(doc, false);
}
});
} else {
if (callback) {
callback(null, doc, true);
}
resolve(doc, true);
}
})
});
});
};

@@ -358,3 +456,3 @@

//console.log('!' + arrFolders);
_mkdirs(arrFolders, callback, 0);
return _mkdirs(arrFolders, callback, 0);

@@ -364,23 +462,38 @@ };

let _mkdirs = function(arrFolders, callback, index, parentFolderId) {
let folderName = arrFolders[index];
//console.log('ZZZ!!!' + folderName);
Document.findOne({parentFolderId: parentFolderId, lowerCaseName: folderName.toLowerCase()}, function(err, doc) {
if (!doc) {
doc = new Document();
doc.name = folderName;
doc.parentFolderId = parentFolderId;
doc.docType = web.cms.constants.folder;
doc.save(function(err) {
return new Promise(function(resolve, reject) {
let folderName = arrFolders[index];
//console.log('ZZZ!!!' + folderName);
Document.findOne({parentFolderId: parentFolderId, lowerCaseName: folderName.toLowerCase()}, function(err, doc) {
let myCb = function(err, doc) {
if (callback) {
callback(err, doc);
}
if (err) {
console.error(err);
reject(err);
} else {
_handleMkdirsCallback(doc, arrFolders, callback, index, parentFolderId);
resolve(doc);
}
});
} else {
_handleMkdirsCallback(doc, arrFolders, callback, index, parentFolderId);
}
})
}
if (!doc) {
doc = new Document();
doc.name = folderName;
doc.parentFolderId = parentFolderId;
doc.docType = web.cms.constants.folder;
doc.save(function(err) {
if (err) {
console.error(err);
} else {
_handleMkdirsCallback(doc, arrFolders, myCb, index, parentFolderId);
}
});
} else {
_handleMkdirsCallback(doc, arrFolders, myCb, index, parentFolderId);
}
})
});
};

@@ -387,0 +500,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc