show unreplied ticket marker in queue summary, #41670
[freeside.git] / rt / lib / RT / Search / UnrepliedTickets.pm
index a996901..12d847a 100644 (file)
@@ -6,9 +6,9 @@
 
 =head1 DESCRIPTION
 
-Find all unresolved tickets owned by the current user where the last correspondence
-from a requestor (or ticket creation) is more recent than the last
-correspondence from a non-requestor (if there is any).
+Find all unresolved tickets owned by the current user where the last
+correspondence from a requestor (or ticket creation) is more recent than the
+last correspondence from a non-requestor (if there is any).
 
 =head1 METHODS
 
@@ -30,14 +30,23 @@ sub Prepare  {
   my $self = shift;
 
   my $TicketsObj = $self->TicketsObj;
+  # if SystemUser does this search (as in QueueSummaryByLifecycle), they
+  # should get all tickets regardless of ownership
+  if ($TicketsObj->CurrentUser->id != RT->SystemUser->id) {
+    $TicketsObj->Limit(
+      FIELD => 'Owner',
+      VALUE => $TicketsObj->CurrentUser->id
+    );
+  }
   $TicketsObj->Limit(
-    FIELD => 'Owner',
-    VALUE => $TicketsObj->CurrentUser->id
+    FIELD => 'Status',
+    OPERATOR => '!=',
+    VALUE => 'resolved'
   );
   $TicketsObj->Limit(
     FIELD => 'Status',
     OPERATOR => '!=',
-    VALUE => 'resolved'
+    VALUE => 'rejected',
   );
   my $txn_alias = $TicketsObj->JoinTransactions;
   $TicketsObj->Limit(