Fix brainstorm delete and plan button

This commit is contained in:
2026-09-14 10:29:01 +02:00
parent cd6071902d
commit 5a31f0948a
4 changed files with 288 additions and 22 deletions
+47
View File
@@ -368,6 +368,53 @@ try {
exit;
}
// 5. Brainstormsessie verwijderen (inclusief bijbehorende kaarten)
if ($action === 'delete_session') {
$data = json_decode(file_get_contents('php://input'), true) ?: $_POST;
$sessionId = (int)($data['session_id'] ?? 0);
if (!$sessionId) {
echo json_encode(['success' => false, 'error' => 'Geen geldig sessie ID opgegeven.']);
exit;
}
$stmtCheck = $db->prepare("SELECT id, title, created_by_id FROM brainstorm_sessions WHERE id = ?");
$stmtCheck->execute([$sessionId]);
$session = $stmtCheck->fetch();
if (!$session) {
echo json_encode(['success' => false, 'error' => 'Brainstormsessie niet gevonden.']);
exit;
}
$isCreator = ((int)$session['created_by_id'] === (int)$user['id']);
$isAdmin = ($user['role'] === 'ADMIN');
if (!$isCreator && !$isAdmin) {
http_response_code(403);
echo json_encode(['success' => false, 'error' => 'Alleen de maker van deze sessie of een beheerder kan deze verwijderen.']);
exit;
}
$db->beginTransaction();
try {
// Verwijder kaarten behorend bij deze sessie
$stmtDelCards = $db->prepare("DELETE FROM brainstorm_cards WHERE session_id = ?");
$stmtDelCards->execute([$sessionId]);
// Verwijder de sessie zelf
$stmtDelSession = $db->prepare("DELETE FROM brainstorm_sessions WHERE id = ?");
$stmtDelSession->execute([$sessionId]);
$db->commit();
echo json_encode(['success' => true, 'message' => 'Brainstormsessie en alle bijbehorende kaarten zijn definitief verwijderd.']);
exit;
} catch (Throwable $t) {
if ($db->inTransaction()) $db->rollBack();
throw $t;
}
}
echo json_encode(['error' => 'Onbekende actie']);
} catch (Exception $e) {
if ($db->inTransaction()) $db->rollBack();