From d4a48c6c73b57059d0831cd325ee80bf54acba17 Mon Sep 17 00:00:00 2001 From: Mike Koch Date: Sat, 19 May 2018 10:50:57 -0400 Subject: [PATCH] Fix admin visibility of tickets on calendar, included assignedByMe to filer --- api/BusinessLogic/Calendar/SearchEventsFilter.php | 3 +++ api/Controllers/Calendar/CalendarController.php | 6 ++++-- api/DataAccess/Calendar/CalendarGateway.php | 4 ++++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/api/BusinessLogic/Calendar/SearchEventsFilter.php b/api/BusinessLogic/Calendar/SearchEventsFilter.php index 72e31b3d..28ce9304 100644 --- a/api/BusinessLogic/Calendar/SearchEventsFilter.php +++ b/api/BusinessLogic/Calendar/SearchEventsFilter.php @@ -27,4 +27,7 @@ class SearchEventsFilter { /* @var $includeTicketsAssignedToOthers bool */ public $includeTicketsAssignedToOthers; + + /* @var $includeTicketsAssignedToMe bool */ + public $includeTicketsAssignedToMe; } \ No newline at end of file diff --git a/api/Controllers/Calendar/CalendarController.php b/api/Controllers/Calendar/CalendarController.php index df9a1cc3..d730472d 100644 --- a/api/Controllers/Calendar/CalendarController.php +++ b/api/Controllers/Calendar/CalendarController.php @@ -45,6 +45,7 @@ class CalendarController extends \BaseClass { $searchEventsFilter->includeTicketsAssignedToOthers = false; $searchEventsFilter->includeUnassignedTickets = false; $searchEventsFilter->includeTickets = false; + $searchEventsFilter->includeTicketsAssignedToMe = false; /* @var $categoryHandler CategoryHandler */ $categoryHandler = $applicationContext->get(CategoryHandler::clazz()); @@ -56,9 +57,10 @@ class CalendarController extends \BaseClass { } $searchEventsFilter->categories = $ids; } else { - $searchEventsFilter->includeTicketsAssignedToOthers = in_array(UserPrivilege::CAN_VIEW_ASSIGNED_TO_OTHER, $userContext->permissions); - $searchEventsFilter->includeUnassignedTickets = in_array(UserPrivilege::CAN_VIEW_UNASSIGNED, $userContext->permissions); + $searchEventsFilter->includeTicketsAssignedToOthers = $userContext->admin ? true : in_array(UserPrivilege::CAN_VIEW_ASSIGNED_TO_OTHER, $userContext->permissions); + $searchEventsFilter->includeUnassignedTickets = $userContext->admin ? true : in_array(UserPrivilege::CAN_VIEW_UNASSIGNED, $userContext->permissions); $searchEventsFilter->includeTickets = true; + $searchEventsFilter->includeTicketsAssignedToMe = $userContext->admin ? true : in_array(UserPrivilege::CAN_VIEW_ASSIGNED_BY_ME, $userContext->permissions); $searchEventsFilter->categories = $userContext->admin ? null : $userContext->categories; } diff --git a/api/DataAccess/Calendar/CalendarGateway.php b/api/DataAccess/Calendar/CalendarGateway.php index f0f95885..a946d8e6 100644 --- a/api/DataAccess/Calendar/CalendarGateway.php +++ b/api/DataAccess/Calendar/CalendarGateway.php @@ -138,6 +138,10 @@ class CalendarGateway extends CommonDao { $sql .= " OR `owner` = 0 "; } + if ($searchEventsFilter->includeTicketsAssignedToMe) { + $sql .= " OR `assignedby` = " . intval($searchEventsFilter->includeTicketsAssignedToMe); + } + if ($searchEventsFilter->includeTicketsAssignedToOthers) { $sql .= " OR `owner` NOT IN (0, " . $searchEventsFilter->reminderUserId . ") "; }