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;
|
||||
}
|
||||
|
||||
$sourceTicketId = (int)$data['ticket_id'];
|
||||
if ($sourceTicketId <= 0) {
|
||||
$sourceTicketIdRaw = trim((string)$data['ticket_id']);
|
||||
if (!ctype_digit($sourceTicketIdRaw) || (int)$sourceTicketIdRaw <= 0) {
|
||||
http_response_code(400);
|
||||
echo json_encode(['success' => false, 'error' => 'Invalid ticket ID']);
|
||||
exit;
|
||||
}
|
||||
$sourceTicketId = $sourceTicketIdRaw;
|
||||
$userId = $_SESSION['user']['user_id'];
|
||||
$isAdmin = $_SESSION['user']['is_admin'] ?? false;
|
||||
|
||||
@@ -102,14 +103,14 @@ try {
|
||||
$auditLog = new AuditLogModel($conn);
|
||||
$auditLog->log($userId, 'create', 'ticket', $result['ticket_id'], [
|
||||
'action' => 'clone',
|
||||
'source_ticket_id' => $sourceTicketId,
|
||||
'source_ticket_id' => $sourceTicket['ticket_id'],
|
||||
'title' => $clonedTicketData['title']
|
||||
]);
|
||||
|
||||
// Optionally create a "relates_to" dependency
|
||||
require_once dirname(__DIR__) . '/models/DependencyModel.php';
|
||||
$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';
|
||||
(new StatsModel($conn))->invalidateCache();
|
||||
|
||||
Reference in New Issue
Block a user