From f27cca08ff786ceff1870147f6d6bad14d71117f Mon Sep 17 00:00:00 2001 From: polo Date: Fri, 23 Oct 2026 00:47:32 +0200 Subject: =?UTF-8?q?dossiers=20avec=20majuscule,=20namespace=20pour=20toute?= =?UTF-8?q?s=20les=20classes,=20autoload=20psr-4,=20UserDataService::creat?= =?UTF-8?q?eZip=20d=C3=A9plac=C3=A9=20dans=20Backup?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controller/MaintenanceController.php | 147 ------------------------------- 1 file changed, 147 deletions(-) delete mode 100644 src/controller/MaintenanceController.php (limited to 'src/controller/MaintenanceController.php') diff --git a/src/controller/MaintenanceController.php b/src/controller/MaintenanceController.php deleted file mode 100644 index 5b67fa8..0000000 --- a/src/controller/MaintenanceController.php +++ /dev/null @@ -1,147 +0,0 @@ -getRepository(Log::class)->findAll(); - if(empty($data)){ - return new JsonResponse(['success' => false]); - } - else{ - $view = '

Table ' . TABLE_PREFIX . 'log de la base de données

- - - - - - - - '; - foreach($data as $entry){ - $view .= ' - - - '; - } - $view .= '
date et heure (Greenwich)connexion réussie
' . $entry->getFormatedDate() . '' . ($entry->getSuccess() ? 'oui' : 'non') . '
'; - return new JsonResponse(['success' => true, 'view' => $view]); - } - } - static public function eraseLogs(EntityManager $entityManager): JsonResponse - { - try{ - $table = $entityManager->getClassMetadata(Log::class)->getTableName(); - $entityManager->getConnection()->executeStatement("TRUNCATE TABLE {$table}"); // SQL donné à DBAL - return new JsonResponse(['success' => true]); - } - catch(Exception $e){ - return new JsonResponse(['success' => false, 'error' => $e->getMessage()]); - } - } - - static public function getLastDump(EntityManager $entityManager): BinaryFileResponse|RedirectResponse - { - try{ - $backup_list = Backup::getBackupList(); - $nb = count($backup_list); - - if($nb <= 0){ // se produit à la première connexion en mode admin pour une raison algorithimque - Backup::mySQLdump($entityManager, 'auto'); - $backup_list = Backup::getBackupList(); - $nb = count($backup_list); - if($nb <= 0){ // improbable, les dossiers devraient déjà avoir été créés - throw new RuntimeException("Le serveur a rencontré une erreur: aucun backup n'est disponible et ce n'est pas normal."); - } - } - - $file_path = Backup::$backup_dir . '/' . $backup_list[$nb - 1]; - $response = new BinaryFileResponse($file_path); - $response->setContentDisposition(ResponseHeaderBag::DISPOSITION_ATTACHMENT); // ne pas essayer de l'afficher dans le navigateur - } - catch(RuntimeException $e){ - $_SESSION['flash_message'] = $e->getMessage(); - $response = new RedirectResponse((string) new URL(['page' => 'maintenance'])); - } - return $response; - } - static public function getAllMedia(): BinaryFileResponse|RedirectResponse - { - try{ - $file_path = '../var/' . UserDataService::createZip('all_media.zip', ['user_data/assets', 'user_data/images', 'user_data/media']); - $response = new BinaryFileResponse($file_path); - $response->setContentDisposition(ResponseHeaderBag::DISPOSITION_ATTACHMENT); // ne pas essayer de l'afficher dans le navigateur - } - catch(RuntimeException $e){ - $_SESSION['flash_message'] = $e->getMessage(); - $response = new RedirectResponse((string) new URL(['page' => 'maintenance'])); - } - return $response; - } - - // parce qu'il faut un contrôleur - static public function handleBackupSelection(EntityManager $entityManager, Request $request): RedirectResponse - { - $selected_file = $request->request->get('selected_sql'); - $url = new URL; - if($request->query->has('from')){ - $url->addParams(['page' => $request->query->get('from')]); - } - - try{ - if(pathinfo($selected_file)['extension'] !== 'sql'){ // pas censé se produire en fait - throw new Exception("charger un fichier au format SQL"); - } - Backup::restoreDatabase($entityManager, $selected_file, ['user']); - - $_SESSION['flash_message'] = "La base de données a été restaurée avec succès !!"; - } - catch(Exception $e){ - $_SESSION['flash_message'] = "Une erreur s'est produite: " . $e->getMessage(); - } - - return new RedirectResponse((string)$url); - } - - static public function downloadSQL(EntityManager $entityManager, Request $request): RedirectResponse - { - $uploaded_file = $request->files->get('uploaded_sql'); - $date = new DateTime; - $server_place = Config::$database . '_' . $date->format('Y-m-d') . '_uploaded.sql'; - $url = new URL; - if($request->query->has('from')){ - $url->addParams(['page' => $request->query->get('from')]); - } - - try{ - if(pathinfo($uploaded_file->getClientOriginalName())['extension'] !== 'sql'){ - throw new Exception("Charger un fichier au format SQL"); - } - //echo $uploaded_file->getSize(); // à garder de côté au cas où - - // enregistrer le fichier - $uploaded_file->move(Backup::$backup_dir, $server_place); - - // s'en servir - Backup::restoreDatabase($entityManager, $server_place, ['user']); - - $_SESSION['flash_message'] = "La base de données a été restaurée avec succès !!"; - } - catch(Exception $e){ - $_SESSION['flash_message'] = "Une erreur s'est produite: " . $e->getMessage(); - } - - return new RedirectResponse((string)$url); - } -} \ No newline at end of file -- cgit v1.2.3