Dokumenttien poisto kaikille + versioiden säilytysrajoitus

- Poisto-nappi näkyy dokumentin luojalle (ei enää vain admin)
- API: document_delete sallii poiston adminille tai luojalle
- Uusi max_versions-sarake documents-tauluun (oletus 10)
- Versioiden automaattinen pruning: uuden version tallennuksen yhteydessä
  poistetaan vanhimmat versiot jos yli max_versions (tiedostot levyltä myös)
- Valittavissa per dokumentti: 5, 10, 20, 50 tai rajaton

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-11 23:35:50 +02:00
parent f40b387383
commit cb52dbfabe
4 changed files with 57 additions and 6 deletions

View File

@@ -4283,7 +4283,7 @@ switch ($action) {
break;
case 'document_delete':
requireAdmin();
requireAuth();
$companyId = requireCompany();
if ($method !== 'POST') break;
try {
@@ -4295,6 +4295,12 @@ switch ($action) {
echo json_encode(['error' => 'Dokumenttia ei löytynyt']);
break;
}
// Salli poisto adminille tai dokumentin luojalle
if (!isCompanyAdmin() && $doc['created_by'] !== currentUser()) {
http_response_code(403);
echo json_encode(['error' => 'Ei oikeutta poistaa']);
break;
}
// Poista tiedostot levyltä
$docDir = DATA_DIR . '/companies/' . $companyId . '/documents/' . $docId;
if (is_dir($docDir)) {