Fix admin visibility of tickets on calendar, included assignedByMe to filer

master^2
Mike Koch 6 years ago
parent 26de217fef
commit d4a48c6c73
No known key found for this signature in database
GPG Key ID: 9BA5D7F8391455ED

@ -27,4 +27,7 @@ class SearchEventsFilter {
/* @var $includeTicketsAssignedToOthers bool */
public $includeTicketsAssignedToOthers;
/* @var $includeTicketsAssignedToMe bool */
public $includeTicketsAssignedToMe;
}

@ -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;
}

@ -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 . ") ";
}

Loading…
Cancel
Save