Logic flaw in Transaction::IsInbound

I’ve been tracking down several unexplained status changes in RT 2.0.XX. The logic in Transaction.pm considers a message inbound if the creator of the transaction is a requestor of the ticket. This logic also exists in RT3.0

We have two common scenarios that break this assumption:

  1. A privileged RT user creates a ticket on behalf of an external requestor with the external requestor as a CC. Any correspondance from the RT user is then marked “inbound”.

  2. A ticket is created on one non-privleged Id, but responded to on another non-privileged id.(using ticket # in subject line). This is incorrectly identified as “outbound”.

I think the fix for #2 above is to consider ALL transactions from a non-privileged user as Inbound. I can’t think of an easy fix for #1 however.

The hard fix is to include a “inbound/outbound” flag in the transaction table and have IsInbound return it.

Any thoughts/comments?

Bill George