From 6e507d4c53d50ca7b9cf9c0c4cbf4ee93a051ca3 Mon Sep 17 00:00:00 2001
From: Peter Rotich <peter@osticket.com>
Date: Sat, 3 Oct 2015 05:34:15 +0000
Subject: [PATCH] locks: Exclude expired locks via constrain

Fixes a bug where a lock icon is shown on tickets listing even when the lock
in question is expired.
---
 include/staff/templates/tickets.tmpl.php | 5 +++++
 include/staff/tickets.inc.php            | 5 +++++
 2 files changed, 10 insertions(+)

diff --git a/include/staff/templates/tickets.tmpl.php b/include/staff/templates/tickets.tmpl.php
index 038ed8057..c140f6890 100644
--- a/include/staff/templates/tickets.tmpl.php
+++ b/include/staff/templates/tickets.tmpl.php
@@ -25,6 +25,11 @@ if (!$thisstaff->hasPerm(SearchBackend::PERM_EVERYTHING)) {
     $tickets->filter(Q::any($visibility));
 }
 
+
+$tickets->constrain(array('lock' => array(
+                'lock__expire__gt' => SqlFunction::NOW())));
+
+
 $tickets->annotate(array(
     'collab_count' => SqlAggregate::COUNT('thread__collaborators', true),
     'attachment_count' => SqlAggregate::COUNT(SqlCase::N()
diff --git a/include/staff/tickets.inc.php b/include/staff/tickets.inc.php
index 5adab6cec..2bdb8ba5e 100644
--- a/include/staff/tickets.inc.php
+++ b/include/staff/tickets.inc.php
@@ -319,6 +319,11 @@ $tickets->annotate(array(
         ->aggregate(array('count' => SqlAggregate::COUNT('entries__id'))),
 ));
 
+
+// Make sure we're only getting active locks
+$tickets->constrain(array('lock' => array(
+                'lock__expire__gt' => SqlFunction::NOW())));
+
 ?>
 
 <!-- SEARCH FORM START -->
-- 
GitLab