Fix leading-zero ticket ID in clone_ticket.php
- Preserve source ticket ID as string (ctype_digit validation) instead of int-casting with (int) - Use $sourceTicket['ticket_id'] (canonical DB form) when creating the relates_to dependency and audit log entry; avoids storing "123456" instead of "000123456" which breaks string-based depends_on_id lookups in DependencyModel Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -54,12 +54,13 @@ try {
|
|||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
$sourceTicketId = (int)$data['ticket_id'];
|
$sourceTicketIdRaw = trim((string)$data['ticket_id']);
|
||||||
if ($sourceTicketId <= 0) {
|
if (!ctype_digit($sourceTicketIdRaw) || (int)$sourceTicketIdRaw <= 0) {
|
||||||
http_response_code(400);
|
http_response_code(400);
|
||||||
echo json_encode(['success' => false, 'error' => 'Invalid ticket ID']);
|
echo json_encode(['success' => false, 'error' => 'Invalid ticket ID']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
$sourceTicketId = $sourceTicketIdRaw;
|
||||||
$userId = $_SESSION['user']['user_id'];
|
$userId = $_SESSION['user']['user_id'];
|
||||||
$isAdmin = $_SESSION['user']['is_admin'] ?? false;
|
$isAdmin = $_SESSION['user']['is_admin'] ?? false;
|
||||||
|
|
||||||
@@ -102,14 +103,14 @@ try {
|
|||||||
$auditLog = new AuditLogModel($conn);
|
$auditLog = new AuditLogModel($conn);
|
||||||
$auditLog->log($userId, 'create', 'ticket', $result['ticket_id'], [
|
$auditLog->log($userId, 'create', 'ticket', $result['ticket_id'], [
|
||||||
'action' => 'clone',
|
'action' => 'clone',
|
||||||
'source_ticket_id' => $sourceTicketId,
|
'source_ticket_id' => $sourceTicket['ticket_id'],
|
||||||
'title' => $clonedTicketData['title']
|
'title' => $clonedTicketData['title']
|
||||||
]);
|
]);
|
||||||
|
|
||||||
// Optionally create a "relates_to" dependency
|
// Optionally create a "relates_to" dependency
|
||||||
require_once dirname(__DIR__) . '/models/DependencyModel.php';
|
require_once dirname(__DIR__) . '/models/DependencyModel.php';
|
||||||
$dependencyModel = new DependencyModel($conn);
|
$dependencyModel = new DependencyModel($conn);
|
||||||
$dependencyModel->addDependency($result['ticket_id'], $sourceTicketId, 'relates_to', $userId);
|
$dependencyModel->addDependency($result['ticket_id'], $sourceTicket['ticket_id'], 'relates_to', $userId);
|
||||||
|
|
||||||
require_once dirname(__DIR__) . '/models/StatsModel.php';
|
require_once dirname(__DIR__) . '/models/StatsModel.php';
|
||||||
(new StatsModel($conn))->invalidateCache();
|
(new StatsModel($conn))->invalidateCache();
|
||||||
|
|||||||
Reference in New Issue
Block a user