Change/edit

This commit is contained in:
2026-02-03 03:34:59 +01:00
parent 0c3a2bffeb
commit aedffcda2d
4 changed files with 79 additions and 29 deletions

View File

@@ -1240,6 +1240,7 @@ class ApiKernel
$versionId = (int)$this->val($this->in, ['id', 'version_id', 'version'], 0);
if ($versionId <= 0) $this->fail('version id required', null, 422);
$contentId = (int)$this->val($this->in, ['content_id', 'content'], 0);
$force = (int)$this->val($this->in, ['force', 'override'], 0) === 1;
$versionsTable = $this->contentVersionsTable();
$itemsTable = $this->contentItemsTable();
@@ -1323,32 +1324,35 @@ class ApiKernel
if ($customerId <= 0) $this->fail('Customer context missing', null, 500);
$contentId = (int)$this->val($this->in, ['content_id', 'content'], 0);
if ($contentId <= 0) $this->fail('content_id required', null, 422);
$force = (int)$this->val($this->in, ['force', 'override'], 0) === 1;
$refsDebug = [];
$refs = $this->findTemplateReferences($customerId, $contentId, $refsDebug);
if (!empty($refsDebug)) {
$this->writeDebugLog('templates_references_debug', $refsDebug);
}
if (!empty($refs)) {
debug_log_write('templates_toggle', [
'time' => date(DATE_ATOM),
'action' => 'content_versions.deactivate.blocked',
'customer_id' => $customerId,
'content_id' => $contentId,
'references' => $refs,
'input' => $this->in,
], [
'append' => true,
'json' => true,
'newline' => true,
]);
$this->respond([
'ok' => false,
'error' => 'Template wird in anderen Templates verwendet',
'content_id' => $contentId,
'count' => count($refs),
'references' => $refs,
], 409);
if (!$force) {
$refsDebug = [];
$refs = $this->findTemplateReferences($customerId, $contentId, $refsDebug);
if (!empty($refsDebug)) {
$this->writeDebugLog('templates_references_debug', $refsDebug);
}
if (!empty($refs)) {
debug_log_write('templates_toggle', [
'time' => date(DATE_ATOM),
'action' => 'content_versions.deactivate.blocked',
'customer_id' => $customerId,
'content_id' => $contentId,
'references' => $refs,
'input' => $this->in,
], [
'append' => true,
'json' => true,
'newline' => true,
]);
$this->respond([
'ok' => false,
'error' => 'Template wird in anderen Templates verwendet',
'content_id' => $contentId,
'count' => count($refs),
'references' => $refs,
], 409);
}
}
$ok = $this->deactivateContentVersion($customerId, $contentId);
@@ -1395,6 +1399,37 @@ class ApiKernel
$this->fail('Active versions cannot be deleted', ['id' => $versionId], 422);
}
if (!$force && $contentId > 0) {
$refsDebug = [];
$refs = $this->findTemplateReferences($customerId, $contentId, $refsDebug);
if (!empty($refsDebug)) {
$this->writeDebugLog('templates_references_debug', $refsDebug);
}
if (!empty($refs)) {
debug_log_write('templates_toggle', [
'time' => date(DATE_ATOM),
'action' => 'content_versions.delete.blocked',
'customer_id' => $customerId,
'content_id' => $contentId,
'version_id' => $versionId,
'references' => $refs,
'input' => $this->in,
], [
'append' => true,
'json' => true,
'newline' => true,
]);
$this->respond([
'ok' => false,
'error' => 'Template wird in anderen Templates verwendet',
'content_id' => $contentId,
'version_id' => $versionId,
'count' => count($refs),
'references' => $refs,
], 409);
}
}
$stmt = $this->pdo->prepare("DELETE FROM `$table` WHERE `id` = :id AND `customer_id` = :cid LIMIT 1");
$stmt->execute([':id' => $versionId, ':cid' => $customerId]);
$this->respond(['ok' => true, 'deleted' => true, 'id' => $versionId]);