diff --git a/arbre-img-prive.php b/arbre-img-prive.php index 2f12529..b9ca09a 100644 --- a/arbre-img-prive.php +++ b/arbre-img-prive.php @@ -25,16 +25,16 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { switch ($_POST['action']) { case 'upload': $uploadedFiles = $_FILES['images'] ?? []; - $successCount = 0; + $successCount = 0; // Initialiser le compteur $errors = []; - + // Gérer les uploads multiples for ($i = 0; $i < count($uploadedFiles['name']); $i++) { if ($uploadedFiles['error'][$i] === UPLOAD_ERR_OK) { $tmpName = $uploadedFiles['tmp_name'][$i]; $fileName = sanitizeFilename($uploadedFiles['name'][$i]); $extension = strtolower(pathinfo($fileName, PATHINFO_EXTENSION)); - + // Vérifier l'extension if (in_array($extension, ALLOWED_EXTENSIONS)) { $destination = $currentPath . '/' . $fileName; @@ -49,9 +49,9 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { $counter++; } } - + if (move_uploaded_file($tmpName, $destination)) { - $successCount++; + $successCount++; // Incrémenter le compteur en cas de succès } else { $errors[] = "Erreur lors du déplacement de $fileName"; } @@ -60,7 +60,17 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { } } } - + + // Loguer l'action une fois que tous les uploads sont terminés + if ($successCount > 0) { + logAdminAction( + $_SESSION['admin_id'], + 'UPLOAD_PRIVATE_IMAGES', // Notez le changement ici pour les images privées + "Téléversement de $successCount image(s) privée(s)", // Message adapté pour les images privées + $currentPath + ); + } + if ($successCount > 0) { $_SESSION['success_message'] = "$successCount image(s) téléversée(s) avec succès."; } @@ -97,20 +107,34 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { case 'delete': $images = $_POST['images'] ?? []; - $deleteCount = 0; + $deleteCount = 0; // Initialiser le compteur + $errors = []; foreach ($images as $image) { $imagePath = $currentPath . '/' . basename($image); - if (isSecurePrivatePath($imagePath) && file_exists($imagePath)) { + if (isSecurePrivatePath($imagePath) && file_exists($imagePath)) { // Notez l'utilisation de isSecurePrivatePath if (unlink($imagePath)) { - $deleteCount++; + $deleteCount++; // Incrémenter le compteur en cas de succès + } else { + $errors[] = "Erreur lors de la suppression de " . basename($image); } } } + // Loguer l'action une fois que toutes les suppressions sont terminées if ($deleteCount > 0) { + logAdminAction( + $_SESSION['admin_id'], + 'DELETE_PRIVATE_IMAGES', // Notez le changement ici pour les images privées + "Suppression de $deleteCount image(s) privée(s)", // Message adapté pour les images privées + $currentPath + ); $_SESSION['success_message'] = "$deleteCount image(s) supprimée(s)."; } + + if (!empty($errors)) { + $_SESSION['error_message'] = implode("\n", $errors); + } break; } } diff --git a/arbre-img.php b/arbre-img.php index 046b9ca..0e3b28e 100644 --- a/arbre-img.php +++ b/arbre-img.php @@ -25,16 +25,16 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { switch ($_POST['action']) { case 'upload': $uploadedFiles = $_FILES['images'] ?? []; - $successCount = 0; + $successCount = 0; // Initialiser le compteur $errors = []; - + // Gérer les uploads multiples for ($i = 0; $i < count($uploadedFiles['name']); $i++) { if ($uploadedFiles['error'][$i] === UPLOAD_ERR_OK) { $tmpName = $uploadedFiles['tmp_name'][$i]; $fileName = sanitizeFilename($uploadedFiles['name'][$i]); $extension = strtolower(pathinfo($fileName, PATHINFO_EXTENSION)); - + // Vérifier l'extension if (in_array($extension, ALLOWED_EXTENSIONS)) { $destination = $currentPath . '/' . $fileName; @@ -49,9 +49,9 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { $counter++; } } - + if (move_uploaded_file($tmpName, $destination)) { - $successCount++; + $successCount++; // Incrémenter le compteur en cas de succès } else { $errors[] = "Erreur lors du déplacement de $fileName"; } @@ -60,7 +60,17 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { } } } - + + // Loguer l'action une fois que tous les uploads sont terminés + if ($successCount > 0) { + logAdminAction( + $_SESSION['admin_id'], + 'UPLOAD_IMAGES', + "Téléversement de $successCount image(s)", + $currentPath + ); + } + if ($successCount > 0) { $_SESSION['success_message'] = "$successCount image(s) téléversée(s) avec succès."; } @@ -95,28 +105,49 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { } break; - case 'delete': - $images = $_POST['images'] ?? []; - $deleteCount = 0; - - foreach ($images as $image) { - $imagePath = $currentPath . '/' . basename($image); - if (isSecurePath($imagePath) && file_exists($imagePath)) { - if (unlink($imagePath)) { - $deleteCount++; + case 'delete': + $images = $_POST['images'] ?? []; + $deleteCount = 0; // Initialiser le compteur + $errors = []; + + foreach ($images as $image) { + $imagePath = $currentPath . '/' . basename($image); + if (isSecurePath($imagePath) && file_exists($imagePath)) { + if (unlink($imagePath)) { + $deleteCount++; // Incrémenter le compteur en cas de succès + } else { + $errors[] = "Erreur lors de la suppression de " . basename($image); + } + } } - } - } - - if ($deleteCount > 0) { - $_SESSION['success_message'] = "$deleteCount image(s) supprimée(s)."; - } - break; + + // Loguer l'action une fois que toutes les suppressions sont terminées + if ($deleteCount > 0) { + logAdminAction( + $_SESSION['admin_id'], + 'DELETE_IMAGES', + "Suppression de $deleteCount image(s)", + $currentPath + ); + $_SESSION['success_message'] = "$deleteCount image(s) supprimée(s)."; + } + + if (!empty($errors)) { + $_SESSION['error_message'] = implode("\n", $errors); + } + break; case 'move': $images = $_POST['images'] ?? []; $destinationPath = $_POST['destination_path'] ?? ''; - $moveCount = 0; + if ($moveCount > 0) { + logAdminAction( + $_SESSION['admin_id'], + 'MOVE_IMAGES', + "Déplacement de $moveCount image(s) vers " . basename($_POST['destination_path']), + $currentPath . ' -> ' . $_POST['destination_path'] + ); + } $errors = []; // Vérifier que le dossier de destination existe et est valide diff --git a/arbre-prive.php b/arbre-prive.php index 8f4032c..f2d865d 100644 --- a/arbre-prive.php +++ b/arbre-prive.php @@ -24,6 +24,12 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action']) && $_POST[' if ($shareKey) { $shareUrl = getBaseUrl() . '/galeries-privees.php?key=' . urlencode($shareKey); + logAdminAction( + $_SESSION['admin_id'], + 'GENERATE_SHARE_LINK', + "Création d'un lien de partage valide " . $duration . " heures", + $albumPath + ); $_SESSION['success_message'] = "Lien de partage généré avec succès. URL : " . $shareUrl; $_SESSION['share_url'] = $shareUrl; } else { @@ -60,6 +66,12 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { } else { $_SESSION['error_message'] = "Ce dossier existe déjà."; } + logAdminAction( + $_SESSION['admin_id'], + 'CREATE_PRIVATE_FOLDER', + "Création du dossier privé : " . $newName, + $newPath + ); } break; @@ -73,6 +85,12 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { } else { $_SESSION['error_message'] = "Erreur lors de la modification du dossier."; } + logAdminAction( + $_SESSION['admin_id'], + 'EDIT_PRIVATE_FOLDER', + "Modification du dossier privé : " . $newName, + $path + ); } break; @@ -93,6 +111,12 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { rmdir($dir); } } + logAdminAction( + $_SESSION['admin_id'], + 'DELETE_PRIVATE_FOLDER', + "Suppression du dossier privé", + $path + ); rrmdir($path); $_SESSION['success_message'] = "Dossier privé supprimé avec succès."; } diff --git a/arbre.php b/arbre.php index 0ad4407..a6dbae7 100644 --- a/arbre.php +++ b/arbre.php @@ -28,6 +28,12 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { } else { $_SESSION['error_message'] = "Ce dossier existe déjà."; } + logAdminAction( + $_SESSION['admin_id'], + 'CREATE_FOLDER', + "Création du dossier : " . $newName, + $newPath + ); } break; @@ -41,6 +47,12 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { } else { $_SESSION['error_message'] = "Erreur lors de la modification du dossier."; } + logAdminAction( + $_SESSION['admin_id'], + 'EDIT_FOLDER', + "Modification du dossier : " . $newName, + $path + ); } break; @@ -61,6 +73,12 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { rmdir($dir); } } + logAdminAction( + $_SESSION['admin_id'], + 'DELETE_FOLDER', + "Suppression du dossier", + $path + ); rrmdir($path); $_SESSION['success_message'] = "Dossier supprimé avec succès."; } diff --git a/clefs.php b/clefs.php index f05b27e..39bd763 100644 --- a/clefs.php +++ b/clefs.php @@ -34,6 +34,12 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { if ($stmt->execute()) { $successMessage = "Clé supprimée avec succès."; + logAdminAction( + $_SESSION['admin_id'], + 'DELETE_SHARE_KEY', + "Suppression d'une clé de partage", + "ID: " . $keyId + ); } else { $errorMessage = "Erreur lors de la suppression de la clé."; } @@ -44,6 +50,11 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { $deletedCount = cleanExpiredShareKeys(); if ($deletedCount > 0) { $successMessage = "$deletedCount clé(s) expirée(s) supprimée(s)."; + logAdminAction( + $_SESSION['admin_id'], + 'CLEAN_EXPIRED_KEYS', + "Nettoyage de $deletedCount clé(s) de partage expirée(s)" + ); } else { $successMessage = "Aucune clé expirée à supprimer."; } diff --git a/personnalisation.php b/personnalisation.php index 5aad2bc..9420135 100644 --- a/personnalisation.php +++ b/personnalisation.php @@ -23,6 +23,11 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { if (file_put_contents('./config.txt', $configContent) !== false) { $_SESSION['success_message'] = "Configuration mise à jour avec succès."; + logAdminAction( + $_SESSION['admin_id'], + 'UPDATE_SETTINGS', + "Modification des paramètres du site" + ); } else { $_SESSION['error_message'] = "Erreur lors de la sauvegarde de la configuration."; } diff --git a/utilisateurs.php b/utilisateurs.php index 7577bf4..b0eecdc 100644 --- a/utilisateurs.php +++ b/utilisateurs.php @@ -83,6 +83,11 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { if ($stmt->execute()) { $_SESSION['success_message'] = "Utilisateur ajouté avec succès."; + logAdminAction( + $_SESSION['admin_id'], + 'ADD_USER', + "Création du compte administrateur : " . $username + ); } else { $_SESSION['error_message'] = "Erreur lors de l'ajout de l'utilisateur."; } @@ -92,6 +97,14 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { $userId = $_POST['user_id'] ?? ''; $username = $_POST['username'] ?? ''; $password = $_POST['password'] ?? ''; + + if ($stmt->execute()) { + logAdminAction( + $_SESSION['admin_id'], + 'EDIT_USER', + "Modification du compte administrateur : " . $username + ); + } if (empty($userId) || empty($username)) { $_SESSION['error_message'] = "Des informations sont manquantes."; @@ -150,6 +163,12 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { if ($stmt->execute()) { $_SESSION['success_message'] = "Utilisateur supprimé avec succès."; + logAdminAction( + $_SESSION['admin_id'], + 'DELETE_USER', + "Suppression d'un compte administrateur", + "ID: " . $userId + ); } else { $_SESSION['error_message'] = "Erreur lors de la suppression de l'utilisateur."; }