UNPKG

1.7 kBJavaScriptView Raw
1/**
2 * Module dependencies
3 */
4var mongoose = require('mongoose');
5
6function MongooseAdminAudit() {
7 this.fields = {};
8
9 var AuditData = new mongoose.Schema({
10 created:{type:Date, required:true, 'default':new Date},
11 user:{type:mongoose.Schema.ObjectId, required:true},
12 modelName:{type:String},
13 collectionName:{type:String},
14 documentId:{type:mongoose.Schema.ObjectId},
15 action:{type:String, required:true},
16 note:{type:String}
17 });
18 mongoose.model('_MongooseAdminAudit', AuditData);
19};
20
21/**
22 * Records a single audited activity
23 *
24 * @param {Object} user
25 * @param {String} modelName
26 * @param {String} collectionName
27 * @param {String} documentId
28 * @param {String} action
29 * @param {String} note
30 *
31 * @api private
32 */
33MongooseAdminAudit.logActivity = function(user, modelName, collectionName, documentId, action, note, onReady) {
34 var auditLog = new MongooseAdminAudit();
35 var auditLogModel = mongoose.model('_MongooseAdminAudit');
36
37 auditLogData = new auditLogModel();
38 auditLogData.user = user.fields._id;
39 auditLogData.modelName = modelName;
40 auditLogData.collectionName = collectionName;
41 auditLogData.documentId = documentId;
42 auditLogData.action = action;
43 auditLogData.note = note;
44
45 auditLogData.save(function(err) {
46 if (err) {
47 console.log('Unable to store item in audit log because: ' + err);
48 onReady('Unable to store item in log', null);
49 } else {
50 auditLog.fields = auditLogData;
51 onReady(null, auditLog);
52 }
53 });
54};
55
56exports.MongooseAdminAudit = MongooseAdminAudit;