stany.ferer преди 2 години
родител
ревизия
89e41a3532

+ 3 - 3
conf.inc.php

@@ -1,7 +1,7 @@
 <?php
 
 require_once "env.inc.php";
-require_once("access.inc.php");
+require_once "access.inc.php";
 
 define("PWA", 1);
 
@@ -14,10 +14,10 @@ define("DIR_PHP_LAYOUTS", DOCUMENT_ROOT . "core/controllers/");
 define("DIR_PHP_SUBMIT", DOCUMENT_ROOT . "core/submit/");
 define("DIR_PHP_LIBS", DOCUMENT_ROOT . "core/libs/");
 define("DIR_DATAS_JSON", DOCUMENT_ROOT . "datas/json/");
-define("DIR_DATAS_JSONDATA", DOCUMENT_ROOT . "core/controllers/json/");
-define("DIR_DATAS_BACKUP", DOCUMENT_ROOT . "backups/");
+define("DIR_DATAS_JSONDATA", DOCUMENT_ROOT . "core/json/");
 define("DIR_DATAS_FILES", DOCUMENT_ROOT . "datas/files/");
 define("DIR_DATAS", DOCUMENT_ROOT . "datas/");
+define("DIR_BACKUP", DOCUMENT_ROOT . "backups/");
 define("DIR_TEMP", DOCUMENT_ROOT . "tmp/");
 
 define("SFTP_LOCAL", DOCUMENT_ROOT . "datas/sftp/");

+ 22 - 32
core/class/backup.class.php

@@ -8,34 +8,40 @@ class backup
             $nameNewFolder = date("Ymd-His");
             $newFolder = "/" . DIR_TEMP . $nameNewFolder;
             mkdir($newFolder, 0777);
-            $backupFile = self::dumpMysql($newFolder);
-            rename($backupFile, $newFolder . "/" . $backupFile);
+            self::dumpMysql($newFolder);
             file::copyFolder("/" . DIR_DATAS, $newFolder . "/datas");
-            $localZip = self::zip($newFolder, DIR_TEMP . $nameNewFolder);
-            self::deleteFolder($newFolder);
-            rename($localZip, DIR_DATAS_BACKUP . $nameNewFolder . ".zip");
+            $localZip = file::zip($newFolder, DIR_TEMP . $nameNewFolder);
+            file::deleteFolder($newFolder);
+            rename($localZip, DIR_BACKUP . $nameNewFolder . ".zip");
+            return TRUE;
         } catch (Exception $ex) {
             return FALSE;
         }
     }
 
-    public static function deleteFolder(string $_dir)
+    public static function restore(string $_zip)
     {
-        if(is_dir($_dir)){
-            $command = "rm -r " . $_dir;
-            try {
-                system($command);
-                return TRUE;
-            } catch (Exception $ex) {
-                return FALSE;
+        $tmpZip = str_replace(DIR_BACKUP, DIR_TEMP, $_zip);
+        $tmpDatas = date("Ymd-His") . "-datas";
+        copy($_zip, $tmpZip);
+        $folder = file::unzip($tmpZip, DIR_TEMP); 
+        if(self::dumpMysqlRestore(DIR_TEMP . $folder . "/" . DB_NAME . ".Mysql")){
+            rename(DIR_DATAS, DIR_TEMP . $tmpDatas);
+            file::copyFolder(DIR_TEMP . $folder . "/datas", DIR_DATAS);
+            if(is_dir(DIR_DATAS)){
+                file::deleteFolder(DIR_TEMP . $tmpDatas);
+                unlink($tmpZip);
+                file::deleteFolder(DIR_TEMP . $folder);
             }
+            return TRUE;
         }
+        return FALSE;
     }
 
     public static function dumpMysql(string $_dir)
     {
         $backupFile = DB_NAME . ".Mysql";
-        $command = "mysqldump --opt -h " . DB_HOST . " -u " . DB_USER . " -p" . DB_PASS . " " . DB_NAME . " > " . $backupFile;
+        $command = "mysqldump --opt -h " . DB_HOST . " -u " . DB_USER . " -p" . DB_PASS . " " . DB_NAME . " > " . $_dir . "/" . $backupFile;
         try {
             system($command);
             return $backupFile;
@@ -49,12 +55,13 @@ class backup
         $command = "mysql -h " . DB_HOST . " -u " . DB_USER . " -p" . DB_PASS . " " . DB_NAME . " < " . $_backupFile;
         try {
             system($command);
+            return TRUE;
         } catch (Exception $ex) {
             return FALSE;
         }
     }
 
-    public static function filesRestore()
+    public static function jsonRestore()
     {
         json::create("salaries");
         json::create("excel");
@@ -63,21 +70,4 @@ class backup
         json::create("users");
         json::create("salaries-proweb");
     }
-
-    public static function zip(string $_dir, string $_name)
-    {
-        $zip = new ZipArchive();
-        $zip_name = $_name . ".zip";
-        $zip->open($zip_name, ZipArchive::CREATE);
-        $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($_dir), RecursiveIteratorIterator::LEAVES_ONLY);
-        foreach ($files as $file) {
-            if (!$file->isDir()) {
-                $filePath = $file->getRealPath();
-                $relativePath = substr($filePath, strlen($_dir));
-                $zip->addFile($filePath, $relativePath);
-            }
-        }
-        $zip->close();
-        return $zip_name;
-    }
 }

+ 47 - 22
core/class/file.class.php

@@ -94,33 +94,11 @@ class file
                 {
                     unlink($_path . $file);
                 }
-
             }
             closedir($handle); 
         }
     }
 
-    public static function compress(string $_file){
-        $command = "gzip " . $_file;
-        try {
-            system($command);
-            return $_file.".gz";
-        } catch (Exception $ex) {
-            return FALSE;
-        }
-    }
-
-    public static function decompress(string $_zip, bool $_delete = FALSE){
-        $command = "gunzip " . $_zip;
-        try {
-            system($command);
-            ($_delete == TRUE) ? unlink($_zip) : "";
-            return explode(".gz", $_zip)[0];
-        } catch (Exception $ex) {
-            return FALSE;
-        }
-    }
-
     public static function copyFolder(string $_folder, string $_target)
     {
         if($dir = opendir($_folder)){
@@ -137,4 +115,51 @@ class file
             closedir($dir);
         }    
     } 
+
+    public static function deleteFolder(string $_dir)
+    {
+        if(is_dir($_dir)){
+            $command = "rm -r " . $_dir;
+            try {
+                system($command);
+                return TRUE;
+            } catch (Exception $ex) {
+                return FALSE;
+            }
+        }
+    }
+
+
+    public static function zip(string $_dir, string $_name)
+    {
+        $zip = new ZipArchive();
+        $zip_name = $_name . ".zip";
+        $zip->open($zip_name, ZipArchive::CREATE);
+        $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($_dir), RecursiveIteratorIterator::LEAVES_ONLY);
+        foreach ($files as $file) {
+            if (!$file->isDir()) {
+                $filePath = $file->getRealPath();
+                $relativePath = substr($filePath, strlen($_dir));
+                $zip->addFile($filePath, $relativePath);
+            }
+        }
+        $zip->close();
+        return $zip_name;
+    }
+
+    public static function unzip(string $_zip, string $_target){
+        if(is_file($_zip)){
+            $zipInfo = pathinfo($_zip);
+            if($zipInfo["extension"] == "zip") {
+                $command = "unzip -q " . $_zip . " -d " . $_target . $zipInfo["filename"];
+                try {
+                    system($command);
+                    return $zipInfo["filename"];
+                } catch (Exception $ex) {
+                    return FALSE;
+                }
+            }
+        }
+        return FALSE;
+    }
 }

+ 0 - 0
core/controllers/json/cms.event-inscrits.php → core/json/cms.event-inscrits.php


+ 0 - 0
core/controllers/json/cms.event-salaries.php → core/json/cms.event-salaries.php


+ 0 - 0
core/controllers/json/cms.proweb-transfert-local.php → core/json/cms.proweb-transfert-local.php


+ 0 - 0
core/controllers/json/cms.proweb-transfert-sftp.php → core/json/cms.proweb-transfert-sftp.php


+ 0 - 0
core/controllers/json/cms.proweb-transfert-test-connexion.php → core/json/cms.proweb-transfert-test-connexion.php


+ 0 - 0
core/controllers/json/events.check-control-emargement.php → core/json/events.check-control-emargement.php


+ 0 - 0
core/controllers/json/events.list-events.php → core/json/events.list-events.php


+ 0 - 0
core/controllers/json/events.login.php → core/json/events.login.php


+ 0 - 0
core/controllers/json/events.logout.php → core/json/events.logout.php


+ 2 - 2
core/submit/cms.rh-temp-to-mysql.php

@@ -3,7 +3,7 @@
 if (core::ifPost("from") AND core::getPost("from") == "rh-temp-to-mysql") {
 
     // Backup
-    (db::createBackupMysql()) ? alert::recSuccess("Backup des données OK") : alert::recError("Backup des données KO");
+    (backup::create()) ? alert::recSuccess("Backup des données OK") : alert::recError("Backup des données KO");
     
     $json = salaries::create_rapport();
     salaries::update_json_excel($json);
@@ -16,7 +16,7 @@ if (core::ifPost("from") AND core::getPost("from") == "rh-temp-to-mysql") {
     json::create("salaries");
     salaries::excel_update_in_progress(core::getPost("excel"), 0);
 
-    (file::cleanFilesByOrder(DIR_DATAS_BACKUP)) ? alert::recSuccess("Clean backup des données OK") : alert::recError("Clean backup des données KO");
+    (file::cleanFilesByOrder(DIR_BACKUP)) ? alert::recSuccess("Clean backup des données OK") : alert::recError("Clean backup des données KO");
 
     header("Location: /rh-historique-excel.html");
     exit();

+ 4 - 2
public-cms/test.php

@@ -9,9 +9,11 @@ require_once DIR_PHP_LAYOUTS . "header.php";
 error_reporting(E_ALL);
 ini_set('display_errors', 1);
 
-echo backup::create();
+//echo backup::create();
 
-//db::restoreBackupMysql(DIR_DATAS_BACKUP."20230428161012.Mysql.gz");
+echo backup::restore("/var/www/dev.cms.cse-invent.com/backups/20230503-124717.zip");
+
+//db::restoreBackupMysql(DIR_BACKUP."20230428161012.Mysql.gz");
 
 /*
 function test($_host) {