diff --git a/src/user.js b/src/user.js index b3fac24ed..c4c8c2d77 100644 --- a/src/user.js +++ b/src/user.js @@ -397,14 +397,19 @@ function updateUser(userId, data, auditSource, callback) { if (error) return callback(error); } - userdb.update(userId, data, function (error) { - if (error && error.reason === DatabaseError.ALREADY_EXISTS) return callback(new UserError(UserError.ALREADY_EXISTS, error.message)); - if (error && error.reason === DatabaseError.NOT_FOUND) return callback(new UserError(UserError.NOT_FOUND, error)); + userdb.get(userId, function (error) { + if (error && error.reason === DatabaseError.NOT_FOUND) return callback(new UserError(UserError.NOT_FOUND)); if (error) return callback(new UserError(UserError.INTERNAL_ERROR, error)); - eventlog.add(eventlog.ACTION_USER_UPDATE, auditSource, { userId: userId }); + userdb.update(userId, data, function (error) { + if (error && error.reason === DatabaseError.ALREADY_EXISTS) return callback(new UserError(UserError.ALREADY_EXISTS, error.message)); + if (error && error.reason === DatabaseError.NOT_FOUND) return callback(new UserError(UserError.NOT_FOUND, error)); + if (error) return callback(new UserError(UserError.INTERNAL_ERROR, error)); - callback(); + eventlog.add(eventlog.ACTION_USER_UPDATE, auditSource, { userId: userId }); + + callback(); + }); }); } diff --git a/src/userdb.js b/src/userdb.js index aaeeebe96..99dee6aad 100644 --- a/src/userdb.js +++ b/src/userdb.js @@ -257,7 +257,7 @@ function update(userId, user, callback) { return callback(new DatabaseError(DatabaseError.ALREADY_EXISTS, msg)); } if (error) return callback(new DatabaseError(DatabaseError.INTERNAL_ERROR, error)); - if (result[0].affectedRows !== 1) return callback(new DatabaseError(DatabaseError.NOT_FOUND)); + if (result[0].affectedRows !== 1) return callback(new DatabaseError(DatabaseError.NOT_FOUND)); // mailbox? return callback(null); });