Sid Gifari From Gifari Industries - BD Cyber Security Team
Home
/
home
/
logoandw
/
newsletterprograms.com
/
wp-content
/
plugins
/
backup
/
src
/
JetBackup
/
Wordpress
/
✏️
Editing: Init.php
<?php namespace JetBackup\Wordpress; use JetBackup\BackupJob\BackupJob; use JetBackup\CLI\CLI; use JetBackup\Cron\Cron; use JetBackup\Destination\Destination; use JetBackup\Download\Download; use JetBackup\Downloader\Downloader; use JetBackup\Entities\Util; use JetBackup\Exception\DBException; use JetBackup\Exception\DestinationException; use JetBackup\Exception\IOException; use JetBackup\Exception\JBException; use JetBackup\Exception\QueueException; use JetBackup\Factory; use JetBackup\JetBackup; use JetBackup\Queue\QueueItem; use JetBackup\Schedule\Schedule; use JetBackup\Settings\Updates; use JetBackup\SGB\Migration; use JetBackup\UserInput\UserInput; use SleekDB\Exceptions\InvalidArgumentException; if (!defined( '__JETBACKUP__')) die('Direct access is not allowed'); class Init { private function __construct() { } // only static method /** * @throws InvalidArgumentException * @throws \SleekDB\Exceptions\IOException|DestinationException * @throws DBException * @throws IOException * @throws QueueException * @throws JBException */ public static function actionInit() { if (!function_exists('current_user_can') || !current_user_can('manage_options')) return; // Cookie Env add_action('wp_loaded', ['\JetBackup\Wordpress\Wordpress', 'setNonceCookie']); add_action('wp_loaded', ['\JetBackup\Wordpress\Wordpress', 'setUserLanguageCookie']); if(Helper::isMultisite()) { if(!Helper::isMainSite() || !Helper::isNetworkAdminUser()) return; if(Helper::isNetworkAdminInterface()) { // This will add menu item also in the network admin page add_action('network_admin_menu', ['\JetBackup\Wordpress\UI', 'main']); } } add_action('admin_menu', ['\JetBackup\Wordpress\UI', 'main']); add_action('wp_ajax_jetbackup_api', ['\JetBackup\Ajax\Ajax', 'main']); // Load translation files from the 'languages' folder inside the plugin directory. load_plugin_textdomain('jetbackup', false, JetBackup::PLUGIN_NAME.DIRECTORY_SEPARATOR.'languages'); if (Factory::getSettingsAutomation()->isHeartbeatEnabled()) { add_action('admin_footer', ['\JetBackup\Wordpress\UI', 'heartbeat']); add_action('wp_ajax_jetbackup_heartbeat', ['\JetBackup\Ajax\Ajax', 'heartbeat' ]); } self::_createWorkingSpace(); // Migration has to run after workspace created (new Migration())->migrate(); Destination::createDefaultDestination(); Schedule::createDefaultSchedule(); // Will create the job if not exists BackupJob::getDefaultJob(); BackupJob::getDefaultConfigJob(); // Also create default config export schedule (hidden) self::_download(); } private static function _download():void { try { $userInput = new UserInput(); $userInput->setData($_REQUEST); if($download_id = $userInput->getValidated('download_id', 0, UserInput::UINT)) { $download = new Download($download_id); if(!$download->getId()) throw new JBException('The provided download id not found'); $download->download(); } if($queue_item_id = $userInput->getValidated('queue_item_id', 0, UserInput::UINT)) { $queue_item = new QueueItem($queue_item_id); if(!$queue_item->getId()) throw new JBException('The provided queue item id not found'); $downloader = new Downloader($queue_item->getLogFile()); $downloader->download(); } } catch(JBException $e) { die('Error:' . $e->getMessage()); } } private static function _createWorkingSpace() { $folders = [ Factory::getLocations()->getDataDir(), Factory::getLocations()->getTempDir(), Factory::getLocations()->getDatabaseDir(), Factory::getLocations()->getDownloadsDir(), Factory::getLocations()->getBackupsDir(), Factory::getLocations()->getLogsDir(), ]; foreach ($folders as $folder) Util::secureFolder($folder); } public static function filterAdminBodyClass($classes) { $screen = Helper::getCurrentScreen(); if ($screen && strpos($screen, 'jetbackup') !== false) $classes .= ' jetbackup'; return $classes; } public static function actionCLI() { if (defined('WP_CLI') && WP_CLI) CLI::init(); } }
💾 Save
❌ Cancel