summaryrefslogtreecommitdiff
path: root/rt/lib/RT/Condition/OwnerChange.pm
diff options
context:
space:
mode:
Diffstat (limited to 'rt/lib/RT/Condition/OwnerChange.pm')
-rw-r--r--rt/lib/RT/Condition/OwnerChange.pm16
1 files changed, 10 insertions, 6 deletions
diff --git a/rt/lib/RT/Condition/OwnerChange.pm b/rt/lib/RT/Condition/OwnerChange.pm
index 867e632..7368971 100644
--- a/rt/lib/RT/Condition/OwnerChange.pm
+++ b/rt/lib/RT/Condition/OwnerChange.pm
@@ -62,12 +62,16 @@ If we're changing the owner return true, otherwise return false
sub IsApplicable {
my $self = shift;
- if ( ( $self->TransactionObj->Field || '' ) eq 'Owner' ) {
- return(1);
- }
- else {
- return(undef);
- }
+ return unless ( $self->TransactionObj->Field || '' ) eq 'Owner';
+
+ # For tickets, there is both a Set txn (for the column) and a
+ # SetWatcher txn (for the group); we fire on the former for
+ # historical consistency. Non-ticket objects will not have a
+ # denormalized Owner column, and thus need fire on the SetWatcher.
+ return if $self->TransactionObj->Type eq "SetWatcher"
+ and $self->TransactionObj->ObjectType eq "RT::Ticket";
+
+ return(1);
}
RT::Base->_ImportOverlays();