mirror of
https://github.com/itflow-org/itflow
synced 2026-03-15 18:24:50 +00:00
Add a 0 IN ticket_client_id for no client tickets so agents that are restricted to certain clients and still view no clients in tickets list by using a , also restrict change clients on tickets for restricted agents
This commit is contained in:
@@ -35,7 +35,7 @@ ob_start();
|
|||||||
</div>
|
</div>
|
||||||
<select class="form-control select2" name="new_client_id" id="client_select" required>
|
<select class="form-control select2" name="new_client_id" id="client_select" required>
|
||||||
<?php
|
<?php
|
||||||
$sql_clients = mysqli_query($mysqli, "SELECT client_id, client_name FROM clients WHERE client_lead = 0 AND client_archived_at IS NULL ORDER BY client_name ASC");
|
$sql_clients = mysqli_query($mysqli, "SELECT client_id, client_name FROM clients WHERE client_lead = 0 AND client_archived_at IS NULL $access_permission_query ORDER BY client_name ASC");
|
||||||
while ($row = mysqli_fetch_assoc($sql_clients)) {
|
while ($row = mysqli_fetch_assoc($sql_clients)) {
|
||||||
$client_id_select = intval($row['client_id']);
|
$client_id_select = intval($row['client_id']);
|
||||||
$client_name = nullable_htmlentities($row['client_name']);
|
$client_name = nullable_htmlentities($row['client_name']);
|
||||||
|
|||||||
@@ -2,9 +2,15 @@
|
|||||||
|
|
||||||
require_once '../../../includes/modal_header.php';
|
require_once '../../../includes/modal_header.php';
|
||||||
|
|
||||||
|
// Ticket client access overide
|
||||||
|
$access_permission_query_overide = '';
|
||||||
|
if (!empty($client_access_string)) {
|
||||||
|
$access_permission_query_overide = "AND ticket_client_id IN (0,$client_access_string)";
|
||||||
|
}
|
||||||
|
|
||||||
$ticket_id = intval($_GET['id']);
|
$ticket_id = intval($_GET['id']);
|
||||||
|
|
||||||
$sql = mysqli_query($mysqli, "SELECT * FROM tickets LEFT JOIN clients ON client_id = ticket_client_id WHERE ticket_id = $ticket_id $access_permission_query LIMIT 1");
|
$sql = mysqli_query($mysqli, "SELECT * FROM tickets LEFT JOIN clients ON client_id = ticket_client_id WHERE ticket_id = $ticket_id $access_permission_query_overide LIMIT 1");
|
||||||
|
|
||||||
$row = mysqli_fetch_assoc($sql);
|
$row = mysqli_fetch_assoc($sql);
|
||||||
$client_id = intval($row['client_id']);
|
$client_id = intval($row['client_id']);
|
||||||
|
|||||||
@@ -9,6 +9,12 @@ if (isset($_GET['client_id'])) {
|
|||||||
$client_url = '';
|
$client_url = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Ticket client access overide
|
||||||
|
$access_permission_query_overide = '';
|
||||||
|
if (!empty($client_access_string)) {
|
||||||
|
$access_permission_query_overide = "AND ticket_client_id IN (0,$client_access_string)";
|
||||||
|
}
|
||||||
|
|
||||||
// Perms
|
// Perms
|
||||||
enforceUserPermission('module_support');
|
enforceUserPermission('module_support');
|
||||||
|
|
||||||
@@ -39,7 +45,7 @@ if (isset($_GET['ticket_id'])) {
|
|||||||
LEFT JOIN ticket_statuses ON ticket_status = ticket_status_id
|
LEFT JOIN ticket_statuses ON ticket_status = ticket_status_id
|
||||||
LEFT JOIN categories ON ticket_category = category_id
|
LEFT JOIN categories ON ticket_category = category_id
|
||||||
WHERE ticket_id = $ticket_id
|
WHERE ticket_id = $ticket_id
|
||||||
$access_permission_query
|
$access_permission_query_overide
|
||||||
LIMIT 1"
|
LIMIT 1"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ $sql = mysqli_query(
|
|||||||
ticket_vendor_ticket_number LIKE '%$q%'
|
ticket_vendor_ticket_number LIKE '%$q%'
|
||||||
)
|
)
|
||||||
$ticket_project_snippet
|
$ticket_project_snippet
|
||||||
$ticket_permission_snippet
|
$access_permission_query_overide
|
||||||
$ordering_snippet"
|
$ordering_snippet"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -88,15 +88,14 @@ if (isset($_GET['project']) & !empty($_GET['project']) && $_GET['project'] > '0'
|
|||||||
$ticket_project_filter_id = intval($_GET['project']);
|
$ticket_project_filter_id = intval($_GET['project']);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ticket client access snippet
|
// Ticket client access overide
|
||||||
$ticket_permission_snippet = '';
|
$access_permission_query_overide = '';
|
||||||
if (!empty($client_access_string)) {
|
if (!empty($client_access_string)) {
|
||||||
$ticket_permission_snippet = "AND ticket_client_id IN ($client_access_string)";
|
$access_permission_query_overide = "AND ticket_client_id IN (0,$client_access_string)";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Main ticket query:
|
// Main ticket query:
|
||||||
$sql = mysqli_query(
|
$query =
|
||||||
$mysqli,
|
|
||||||
"SELECT SQL_CALC_FOUND_ROWS * FROM tickets
|
"SELECT SQL_CALC_FOUND_ROWS * FROM tickets
|
||||||
LEFT JOIN clients ON ticket_client_id = client_id
|
LEFT JOIN clients ON ticket_client_id = client_id
|
||||||
LEFT JOIN contacts ON ticket_contact_id = contact_id
|
LEFT JOIN contacts ON ticket_contact_id = contact_id
|
||||||
@@ -112,8 +111,7 @@ $sql = mysqli_query(
|
|||||||
AND (CONCAT(ticket_prefix,ticket_number) LIKE '%$q%' OR client_name LIKE '%$q%' OR ticket_subject LIKE '%$q%' OR ticket_status_name LIKE '%$q%' OR ticket_priority LIKE '%$q%' OR user_name LIKE '%$q%' OR contact_name LIKE '%$q%' OR asset_name LIKE '%$q%' OR vendor_name LIKE '%$q%' OR ticket_vendor_ticket_number LIKE '%q%')
|
AND (CONCAT(ticket_prefix,ticket_number) LIKE '%$q%' OR client_name LIKE '%$q%' OR ticket_subject LIKE '%$q%' OR ticket_status_name LIKE '%$q%' OR ticket_priority LIKE '%$q%' OR user_name LIKE '%$q%' OR contact_name LIKE '%$q%' OR asset_name LIKE '%$q%' OR vendor_name LIKE '%$q%' OR ticket_vendor_ticket_number LIKE '%q%')
|
||||||
$ticket_billable_snippet
|
$ticket_billable_snippet
|
||||||
$ticket_project_snippet
|
$ticket_project_snippet
|
||||||
$ticket_permission_snippet
|
$access_permission_query_overide
|
||||||
$access_permission_query
|
|
||||||
$client_query
|
$client_query
|
||||||
ORDER BY
|
ORDER BY
|
||||||
CASE
|
CASE
|
||||||
@@ -127,28 +125,29 @@ $sql = mysqli_query(
|
|||||||
ELSE NULL
|
ELSE NULL
|
||||||
END $order,
|
END $order,
|
||||||
$sort $order -- Apply normal sorting by $sort and $order
|
$sort $order -- Apply normal sorting by $sort and $order
|
||||||
LIMIT $record_from, $record_to"
|
LIMIT $record_from, $record_to";
|
||||||
);
|
|
||||||
|
$sql = mysqli_query($mysqli,$query);
|
||||||
|
|
||||||
$num_rows = mysqli_fetch_row(mysqli_query($mysqli, "SELECT FOUND_ROWS()"));
|
$num_rows = mysqli_fetch_row(mysqli_query($mysqli, "SELECT FOUND_ROWS()"));
|
||||||
|
|
||||||
//Get Total tickets open
|
//Get Total tickets open
|
||||||
$sql_total_tickets_open = mysqli_query($mysqli, "SELECT COUNT(ticket_id) AS total_tickets_open FROM tickets WHERE ticket_resolved_at IS NULL $client_query $ticket_permission_snippet");
|
$sql_total_tickets_open = mysqli_query($mysqli, "SELECT COUNT(ticket_id) AS total_tickets_open FROM tickets WHERE ticket_resolved_at IS NULL $client_query $access_permission_query_overide");
|
||||||
$row = mysqli_fetch_assoc($sql_total_tickets_open);
|
$row = mysqli_fetch_assoc($sql_total_tickets_open);
|
||||||
$total_tickets_open = intval($row['total_tickets_open']);
|
$total_tickets_open = intval($row['total_tickets_open']);
|
||||||
|
|
||||||
//Get Total tickets closed
|
//Get Total tickets closed
|
||||||
$sql_total_tickets_closed = mysqli_query($mysqli, "SELECT COUNT(ticket_id) AS total_tickets_closed FROM tickets WHERE ticket_resolved_at IS NOT NULL $client_query $ticket_permission_snippet");
|
$sql_total_tickets_closed = mysqli_query($mysqli, "SELECT COUNT(ticket_id) AS total_tickets_closed FROM tickets WHERE ticket_resolved_at IS NOT NULL $client_query $access_permission_query_overide");
|
||||||
$row = mysqli_fetch_assoc($sql_total_tickets_closed);
|
$row = mysqli_fetch_assoc($sql_total_tickets_closed);
|
||||||
$total_tickets_closed = intval($row['total_tickets_closed']);
|
$total_tickets_closed = intval($row['total_tickets_closed']);
|
||||||
|
|
||||||
//Get Unassigned tickets
|
//Get Unassigned tickets
|
||||||
$sql_total_tickets_unassigned = mysqli_query($mysqli, "SELECT COUNT(ticket_id) AS total_tickets_unassigned FROM tickets WHERE ticket_assigned_to = '0' AND ticket_resolved_at IS NULL $client_query $ticket_permission_snippet");
|
$sql_total_tickets_unassigned = mysqli_query($mysqli, "SELECT COUNT(ticket_id) AS total_tickets_unassigned FROM tickets WHERE ticket_assigned_to = '0' AND ticket_resolved_at IS NULL $client_query $access_permission_query_overide");
|
||||||
$row = mysqli_fetch_assoc($sql_total_tickets_unassigned);
|
$row = mysqli_fetch_assoc($sql_total_tickets_unassigned);
|
||||||
$total_tickets_unassigned = intval($row['total_tickets_unassigned']);
|
$total_tickets_unassigned = intval($row['total_tickets_unassigned']);
|
||||||
|
|
||||||
//Get Total tickets assigned to me
|
//Get Total tickets assigned to me
|
||||||
$sql_total_tickets_assigned = mysqli_query($mysqli, "SELECT COUNT(ticket_id) AS total_tickets_assigned FROM tickets WHERE ticket_assigned_to = $session_user_id AND ticket_resolved_at IS NULL $client_query $ticket_permission_snippet");
|
$sql_total_tickets_assigned = mysqli_query($mysqli, "SELECT COUNT(ticket_id) AS total_tickets_assigned FROM tickets WHERE ticket_assigned_to = $session_user_id AND ticket_resolved_at IS NULL $client_query $access_permission_query_overide");
|
||||||
$row = mysqli_fetch_assoc($sql_total_tickets_assigned);
|
$row = mysqli_fetch_assoc($sql_total_tickets_assigned);
|
||||||
$user_active_assigned_tickets = intval($row['total_tickets_assigned']);
|
$user_active_assigned_tickets = intval($row['total_tickets_assigned']);
|
||||||
|
|
||||||
@@ -160,8 +159,6 @@ $sql_categories_filter = mysqli_query(
|
|||||||
ORDER BY category_name"
|
ORDER BY category_name"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
?>
|
?>
|
||||||
<style>
|
<style>
|
||||||
.popover {
|
.popover {
|
||||||
|
|||||||
@@ -61,5 +61,5 @@ while ($row = mysqli_fetch_assoc($user_client_access_result)) {
|
|||||||
$client_access_string = implode(',', $client_access_array);
|
$client_access_string = implode(',', $client_access_array);
|
||||||
$access_permission_query = "";
|
$access_permission_query = "";
|
||||||
if ($client_access_string && !$session_is_admin) {
|
if ($client_access_string && !$session_is_admin) {
|
||||||
$access_permission_query = "AND clients.client_id IN ($client_access_string)";
|
$access_permission_query = "AND clients.client_id IN (0,$client_access_string)";
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user