mirror of
https://codeberg.org/PostERG/xamxam.git
synced 2026-05-06 19:19:19 +02:00
Fix two backend correctness issues
- Wrap setThesisJury() in a transaction: the method did a DELETE then multiple INSERTs with no atomicity guarantee. A partial failure (e.g. findOrCreateSupervisor throwing) would leave the jury table with orphaned rows. The fix uses pdo->inTransaction() to avoid nesting when called from within an outer transaction, and performs beginTransaction/commit/rollBack otherwise. - Replace raw PDO query in admin/thanks.php with db->getThesisFiles(): the file listing after TFE submission was manually preparing a SELECT on thesis_files instead of calling the existing Database::getThesisFiles() method. Removes the getPDO() call entirely from that file.
This commit is contained in:
@@ -25,7 +25,6 @@ if (isset($_GET['id'])) {
|
||||
if ($thesisId !== false && $thesisId > 0) {
|
||||
try {
|
||||
$db = new Database();
|
||||
$pdo = $db->getPDO();
|
||||
|
||||
// Get thesis data
|
||||
$thesis = $db->getThesis($thesisId);
|
||||
@@ -33,15 +32,7 @@ if (isset($_GET['id'])) {
|
||||
if (!$thesis) {
|
||||
$error = "TFE non trouvé.";
|
||||
} else {
|
||||
// Get associated files
|
||||
$stmt = $pdo->prepare("
|
||||
SELECT file_type, file_name, file_size, mime_type, uploaded_at
|
||||
FROM thesis_files
|
||||
WHERE thesis_id = ?
|
||||
ORDER BY file_type, uploaded_at
|
||||
");
|
||||
$stmt->execute([$thesisId]);
|
||||
$files = $stmt->fetchAll();
|
||||
$files = $db->getThesisFiles($thesisId);
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
error_log("Error loading thesis: " . $e->getMessage());
|
||||
|
||||
Reference in New Issue
Block a user