eventlog: mail list add,remove events

This commit is contained in:
Girish Ramakrishnan
2018-11-09 18:49:55 -08:00
parent 003789265c
commit 4aa76a859f
3 changed files with 19 additions and 10 deletions
+5 -2
View File
@@ -25,8 +25,11 @@ exports = module.exports = {
ACTION_CERTIFICATE_RENEWAL: 'certificate.renew', ACTION_CERTIFICATE_RENEWAL: 'certificate.renew',
ACTION_MAILBOX_ADD: 'mailbox.add', ACTION_MAIL_MAILBOX_ADD: 'mail.box.add',
ACTION_MAILBOX_REMOVE: 'mailbox.remove', ACTION_MAIL_MAILBOX_REMOVE: 'mail.box.remove',
ACTION_MAIL_LIST_ADD: 'mail.list.add',
ACTION_MAIL_LIST_REMOVE: 'mail.list.remove',
ACTION_START: 'cloudron.start', ACTION_START: 'cloudron.start',
ACTION_UPDATE: 'cloudron.update', ACTION_UPDATE: 'cloudron.update',
+12 -6
View File
@@ -933,7 +933,7 @@ function addMailbox(name, domain, userId, auditSource, callback) {
if (error && error.reason === DatabaseError.ALREADY_EXISTS) return callback(new MailError(MailError.ALREADY_EXISTS, `mailbox ${name} already exists`)); if (error && error.reason === DatabaseError.ALREADY_EXISTS) return callback(new MailError(MailError.ALREADY_EXISTS, `mailbox ${name} already exists`));
if (error) return callback(new MailError(MailError.INTERNAL_ERROR, error)); if (error) return callback(new MailError(MailError.INTERNAL_ERROR, error));
eventlog.add(eventlog.ACTION_MAILBOX_ADD, auditSource, { name, domain, userId }); eventlog.add(eventlog.ACTION_MAIL_MAILBOX_ADD, auditSource, { name, domain, userId });
callback(null); callback(null);
}); });
@@ -968,7 +968,7 @@ function removeMailbox(name, domain, auditSource, callback) {
if (error && error.reason === DatabaseError.NOT_FOUND) return callback(new MailError(MailError.NOT_FOUND, 'no such mailbox')); if (error && error.reason === DatabaseError.NOT_FOUND) return callback(new MailError(MailError.NOT_FOUND, 'no such mailbox'));
if (error) return callback(new MailError(MailError.INTERNAL_ERROR, error)); if (error) return callback(new MailError(MailError.INTERNAL_ERROR, error));
eventlog.add(eventlog.ACTION_MAILBOX_REMOVE, auditSource, { name, domain }); eventlog.add(eventlog.ACTION_MAIL_MAILBOX_REMOVE, auditSource, { name, domain });
callback(null); callback(null);
}); });
@@ -1054,10 +1054,11 @@ function getList(domain, listName, callback) {
}); });
} }
function addList(name, domain, members, callback) { function addList(name, domain, members, auditSource, callback) {
assert.strictEqual(typeof domain, 'string'); assert.strictEqual(typeof domain, 'string');
assert.strictEqual(typeof name, 'string'); assert.strictEqual(typeof name, 'string');
assert(Array.isArray(members)); assert(Array.isArray(members));
assert.strictEqual(typeof auditSource, 'object');
assert.strictEqual(typeof callback, 'function'); assert.strictEqual(typeof callback, 'function');
name = name.toLowerCase(); name = name.toLowerCase();
@@ -1076,6 +1077,8 @@ function addList(name, domain, members, callback) {
if (error && error.reason === DatabaseError.ALREADY_EXISTS) return callback(new MailError(MailError.ALREADY_EXISTS, 'list already exits')); if (error && error.reason === DatabaseError.ALREADY_EXISTS) return callback(new MailError(MailError.ALREADY_EXISTS, 'list already exits'));
if (error) return callback(new MailError(MailError.INTERNAL_ERROR, error)); if (error) return callback(new MailError(MailError.INTERNAL_ERROR, error));
eventlog.add(eventlog.ACTION_MAIL_LIST_ADD, auditSource, { name, domain });
callback(); callback();
}); });
} }
@@ -1106,15 +1109,18 @@ function updateList(name, domain, members, callback) {
}); });
} }
function removeList(domain, listName, callback) { function removeList(name, domain, auditSource, callback) {
assert.strictEqual(typeof name, 'string');
assert.strictEqual(typeof domain, 'string'); assert.strictEqual(typeof domain, 'string');
assert.strictEqual(typeof listName, 'string'); assert.strictEqual(typeof auditSource, 'object');
assert.strictEqual(typeof callback, 'function'); assert.strictEqual(typeof callback, 'function');
mailboxdb.del(listName, domain, function (error) { mailboxdb.del(name, domain, function (error) {
if (error && error.reason === DatabaseError.NOT_FOUND) return callback(new MailError(MailError.NOT_FOUND, 'no such list')); if (error && error.reason === DatabaseError.NOT_FOUND) return callback(new MailError(MailError.NOT_FOUND, 'no such list'));
if (error) return callback(new MailError(MailError.INTERNAL_ERROR, error)); if (error) return callback(new MailError(MailError.INTERNAL_ERROR, error));
eventlog.add(eventlog.ACTION_MAIL_LIST_ADD, auditSource, { name, domain });
callback(); callback();
}); });
} }
+2 -2
View File
@@ -354,7 +354,7 @@ function addList(req, res, next) {
if (typeof req.body.members[i] !== 'string') return next(new HttpError(400, 'member must be a string')); if (typeof req.body.members[i] !== 'string') return next(new HttpError(400, 'member must be a string'));
} }
mail.addList(req.body.name, req.params.domain, req.body.members, function (error) { mail.addList(req.body.name, req.params.domain, req.body.members, auditSource(req), function (error) {
if (error && error.reason === MailError.NOT_FOUND) return next(new HttpError(404, error.message)); if (error && error.reason === MailError.NOT_FOUND) return next(new HttpError(404, error.message));
if (error && error.reason === MailError.ALREADY_EXISTS) return next(new HttpError(409, 'list already exists')); if (error && error.reason === MailError.ALREADY_EXISTS) return next(new HttpError(409, 'list already exists'));
if (error && error.reason === MailError.BAD_FIELD) return next(new HttpError(400, error.message)); if (error && error.reason === MailError.BAD_FIELD) return next(new HttpError(400, error.message));
@@ -387,7 +387,7 @@ function removeList(req, res, next) {
assert.strictEqual(typeof req.params.domain, 'string'); assert.strictEqual(typeof req.params.domain, 'string');
assert.strictEqual(typeof req.params.name, 'string'); assert.strictEqual(typeof req.params.name, 'string');
mail.removeList(req.params.domain, req.params.name, function (error) { mail.removeList(req.params.name, req.params.domain, auditSource(req), function (error) {
if (error && error.reason === MailError.NOT_FOUND) return next(new HttpError(404, error.message)); if (error && error.reason === MailError.NOT_FOUND) return next(new HttpError(404, error.message));
if (error) return next(new HttpError(500, error)); if (error) return next(new HttpError(500, error));