Fix brainstorm delete and plan button
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user