我们正在使用grails审核日志插件来审核项目中的少数域对象 https://grails.org/plugin/audit-logging
面对与之相关的几个问题:
我们有一个我们想要审核的用户域对象。 我们还在系统设置期间创建了大量用户。因此,当我们为User域生成auditable = true时,它也审核它 - 在audit_log_event表中为每个创建的用户创建一个新行。
有没有办法避免这种情况?我们只想审核管理员用户创建/更新用户的时间(基本上是在管理员用户登录时)
对于我们正在审核的域对象的某些属性,我们希望对新值进行一些修改。 示例:假设User对象的电子邮件地址从a@gmail.com更新为b@gmail.com,然后我们要在new_value列中插入“*** B@gmail.com-12:23:47” audit_log_event表。
我认为通过在onChange()方法中更新newMap [key]的值,我们可以做到这一点,但这似乎不起作用。 有没有办法做到这一点?
试过这个:
def onChange = {
oldMap,newMap ->
println "User was changed ..."
oldMap.each({ key, oldVal ->
if(oldVal != newMap[key]) {
println " * $key changed from $oldVal to " + newMap[key]
if(key == "email") {
newMap[key] = "*****Some value udpated****"
println "email is now again changed ..."
println " * $key changed from $oldVal to " + newMap[key]
}
}
})
}
控制台输出:
User was changed ...
* email changed from a@gmail.com to b@gmail.com
email is now again changed ...
* email changed from a@gmail.com to *****Some value udpated****
但是,在DB中:
old_value = a@gmail.com
new_value = b@gmail.com