diff --git a/back/models/account.js b/back/models/account.js index 7cc196852..a0b08dd57 100644 --- a/back/models/account.js +++ b/back/models/account.js @@ -15,20 +15,6 @@ module.exports = Self => { Self.observe('before save', async function(ctx) { if (ctx.currentInstance && ctx.currentInstance.id && ctx.data && ctx.data.password) ctx.data.password = md5(ctx.data.password); - - if (!ctx.isNewInstance && ctx.data && (ctx.data.name || ctx.data.active)) { - let instance = JSON.parse(JSON.stringify(ctx.currentInstance)); - let userId = ctx.options.accessToken.userId; - let logRecord = { - originFk: ctx.currentInstance.id, - userFk: userId, - action: 'update', - changedModel: 'Account', - oldInstance: {name: instance.name, active: instance.active}, - newInstance: ctx.data - }; - await Self.app.models.ClientLog.create(logRecord); - } }); Self.remoteMethod('getCurrentUserData', { diff --git a/modules/client/back/models/client.js b/modules/client/back/models/client.js index cf3ded2f8..8ceff0c2a 100644 --- a/modules/client/back/models/client.js +++ b/modules/client/back/models/client.js @@ -218,6 +218,36 @@ module.exports = Self => { await Self.app.models.ClientCredit.create(newCredit); } }); + const app = require('vn-loopback/server/server'); + + app.on('started', function() { + let account = app.models.Account; + + account.observe('before save', async ctx => { + if (ctx.isNewInstance) return; + ctx.hookState.oldInstance = JSON.parse(JSON.stringify(ctx.currentInstance)); + }); + + account.observe('after save', async ctx => { + let changes = ctx.data || ctx.instance; + if (!ctx.isNewInstance && changes) { + let oldData = ctx.hookState.oldInstance; + let hasChanges = oldData.name != changes.name || oldData.active != changes.active; + if (!hasChanges) return; + + let userId = ctx.options.accessToken.userId; + let logRecord = { + originFk: oldData.id, + userFk: userId, + action: 'update', + changedModel: 'Account', + oldInstance: {name: oldData.name, active: oldData.active}, + newInstance: {name: changes.name, active: changes.active} + }; + await Self.app.models.ClientLog.create(logRecord); + } + }); + }); Self.observe('after save', async ctx => { if (ctx.isNewInstance) return;