func assignUpdatedBy(scope *gorm.Scope) { if isAuditable(scope) { if user, ok := getCurrentUser(scope); ok { if attrs, ok := scope.InstanceGet("gorm:update_attrs"); ok { updateAttrs := attrs.(map[string]interface{}) updateAttrs["updated_by"] = user scope.InstanceSet("gorm:update_attrs", updateAttrs) } else { scope.SetColumn("UpdatedBy", user) } } } }
func assignUpdatedBy(scope *gorm.Scope) { if isAuditable(scope) { if user, ok := scope.DB().Get("audited:current_user"); ok { var currentUser string if primaryField := scope.New(user).PrimaryField(); primaryField != nil { currentUser = fmt.Sprintf("%v", primaryField.Field.Interface()) } else { currentUser = fmt.Sprintf("%v", user) } if attrs, ok := scope.InstanceGet("gorm:update_attrs"); ok { updateAttrs := attrs.(map[string]interface{}) updateAttrs["updated_by"] = currentUser scope.InstanceSet("gorm:update_attrs", updateAttrs) } else { scope.SetColumn("UpdatedBy", currentUser) } } } }