also hide unreplied status for Deleted tickets, #41670
[freeside.git] / rt / lib / RT / Search / UnrepliedTickets.pm
index 4bb59d9..0328983 100644 (file)
@@ -30,20 +30,22 @@ sub Prepare  {
   my $self = shift;
 
   my $TicketsObj = $self->TicketsObj;
-  $TicketsObj->Limit(
-    FIELD => 'Owner',
-    VALUE => $TicketsObj->CurrentUser->id
-  );
-  $TicketsObj->Limit(
-    FIELD => 'Status',
-    OPERATOR => '!=',
-    VALUE => 'resolved'
-  );
-  $TicketsObj->Limit(
-    FIELD => 'Status',
-    OPERATOR => '!=',
-    VALUE => 'rejected',
-  );
+  # 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
+    );
+  }
+  foreach my $status (qw(resolved rejected deleted)) {
+    $TicketsObj->Limit(
+      FIELD => 'Status',
+      OPERATOR => '!=',
+      ENTRYAGGREGATOR => 'AND',
+      VALUE => $status,
+    );
+  }
   my $txn_alias = $TicketsObj->JoinTransactions;
   $TicketsObj->Limit(
     ALIAS => $txn_alias,