aboutsummaryrefslogtreecommitdiff
path: root/src/controller
diff options
context:
space:
mode:
authorpolo <ordipolo@gmx.fr>2026-06-03 23:15:17 +0200
committerpolo <ordipolo@gmx.fr>2026-06-03 23:15:17 +0200
commitf37d3f8979b34dbb03d7a39ccbb3889763bea61d (patch)
tree81e8301b2db8eddb1a6f27f10fb8f49f97e2eb66 /src/controller
parent34c4d0d0c37c7f640a1a6373bba30ebe1129d6c4 (diff)
downloadcms-f37d3f8979b34dbb03d7a39ccbb3889763bea61d.tar.gz
cms-f37d3f8979b34dbb03d7a39ccbb3889763bea61d.tar.bz2
cms-f37d3f8979b34dbb03d7a39ccbb3889763bea61d.zip
exclusion des htaccess des zip, erreur création backup quand dossier var/backups pas encore créé
Diffstat (limited to 'src/controller')
-rw-r--r--src/controller/MaintenanceController.php16
-rw-r--r--src/controller/UserController.php7
2 files changed, 18 insertions, 5 deletions
diff --git a/src/controller/MaintenanceController.php b/src/controller/MaintenanceController.php
index eb1db04..47e51ac 100644
--- a/src/controller/MaintenanceController.php
+++ b/src/controller/MaintenanceController.php
@@ -49,10 +49,22 @@ class MaintenanceController
49 die; 49 die;
50 } 50 }
51 51
52 static public function getLastDump(): void 52 static public function getLastDump(EntityManager $entityManager): void
53 { 53 {
54 $backup_list = Backup::getBackupList();
55 $nb = count($backup_list);
56
57 if($nb <= 0){ // se produit à la première connexion en mode admin pour une raison algorithimque
58 Backup::mySQLdump($entityManager, 'auto');
59 $backup_list = Backup::getBackupList();
60 $nb = count($backup_list);
61 if($nb <= 0){ // improbable, les dossiers devraient déjà avoir été créés
62 throw new RuntimeException("Le serveur a rencontré une erreur: aucun backup n'est disponible et ce n'est pas normal.");
63 }
64 }
65
54 try{ 66 try{
55 $file_path = Backup::$backup_dir . '/' . Backup::getLastBackupName(); 67 $file_path = Backup::$backup_dir . '/' . $backup_list[$nb - 1];
56 header('Content-Type: application/octet-stream'); // signifie fichier quelconque, du binaire quoi! 68 header('Content-Type: application/octet-stream'); // signifie fichier quelconque, du binaire quoi!
57 header('Content-Disposition: attachment; filename="' . basename($file_path) . '"'); // pour provoquer un téléchargement et non pour afficher 69 header('Content-Disposition: attachment; filename="' . basename($file_path) . '"'); // pour provoquer un téléchargement et non pour afficher
58 header('Content-Length: ' . filesize($file_path)); // peut servir côté client (barre de progression...) 70 header('Content-Length: ' . filesize($file_path)); // peut servir côté client (barre de progression...)
diff --git a/src/controller/UserController.php b/src/controller/UserController.php
index f911d2d..9de2fb8 100644
--- a/src/controller/UserController.php
+++ b/src/controller/UserController.php
@@ -81,8 +81,7 @@ class UserController
81 if($form->validate()){ 81 if($form->validate()){
82 // à mettre dans une classe métier UserService, Authentication, AuthService? 82 // à mettre dans une classe métier UserService, Authentication, AuthService?
83 $user = self::getUserByName($_POST['login'], $entityManager); 83 $user = self::getUserByName($_POST['login'], $entityManager);
84 if(!empty($user) && $_POST['login'] === $user->getLogin() && password_verify($_POST['password'], $user->getPassword())) 84 if(!empty($user) && $_POST['login'] === $user->getLogin() && password_verify($_POST['password'], $user->getPassword())){
85 {
86 $log = new Log(true); 85 $log = new Log(true);
87 86
88 // protection fixation de session, si l'attaquant crée un cookie de session, il est remplacé 87 // protection fixation de session, si l'attaquant crée un cookie de session, il est remplacé
@@ -94,7 +93,9 @@ class UserController
94 EmailService::cleanEmails($entityManager); 93 EmailService::cleanEmails($entityManager);
95 94
96 try{ 95 try{
97 Backup::mySQLdump($entityManager, 'auto'); // créer un nouveau backup 96 if(file_exists('../var/backups')){
97 Backup::mySQLdump($entityManager, 'auto'); // créer un nouveau backup, sauf si les dossiers nécessaires sont encore à créer
98 }
98 } 99 }
99 catch(RuntimeException $e){ 100 catch(RuntimeException $e){
100 echo '<script>window.error_message = "' . $e->getMessage() . '";</script>'; 101 echo '<script>window.error_message = "' . $e->getMessage() . '";</script>';