OwlCyberSecurity - MANAGER
Edit File: class-wpvivid-public-interface.php
<?php class WPvivid_Public_Interface { public function __construct() { } public function mainwp_data($data){ $action = sanitize_text_field($data['mwp_action']); if (has_filter($action)) { $ret = apply_filters($action, $data); } else { $ret['result'] = WPVIVID_FAILED; $ret['error'] = 'Unknown function'; } return $ret; } public function prepare_backup($backup_options){ global $wpvivid_plugin; if(isset($backup_options)&&!empty($backup_options)){ if (is_null($backup_options)) { $ret['error']='Invalid parameter param:'.$backup_options; return $ret; } $backup_options = apply_filters('wpvivid_custom_backup_options', $backup_options); if(!isset($backup_options['type'])) { $backup_options['type']=__('Manual', 'wpvivid-backuprestore'); $backup_options['action']='backup'; } $ret = $wpvivid_plugin->check_backup_option($backup_options, $backup_options['type']); if($ret['result']!='success') { return $ret; } $ret=$wpvivid_plugin->pre_backup($backup_options); if($ret['result']=='success') { //Check the website data to be backed up $ret['check']=$wpvivid_plugin->check_backup($ret['task_id'],$backup_options); if(isset($ret['check']['result']) && $ret['check']['result'] == 'failed') { $ret['error']=$ret['check']['error']; return $ret; } } } else{ $ret['error']='Error occurred while parsing the request data. Please try to run backup again.'; return $ret; } return $ret; } public function get_status(){ $ret['result']='success'; $list_tasks=array(); $tasks=WPvivid_Setting::get_tasks(); foreach ($tasks as $task) { $backup = new WPvivid_Backup_Task($task['id']); $list_tasks[$task['id']]=$backup->get_backup_task_info($task['id']); if($list_tasks[$task['id']]['task_info']['need_update_last_task']===true){ $task_msg = WPvivid_taskmanager::get_task($task['id']); WPvivid_Setting::update_option('wpvivid_last_msg',$task_msg); apply_filters('wpvivid_set_backup_report_addon_mainwp', $task_msg); } } $ret['wpvivid']['task']=$list_tasks; $backuplist=WPvivid_Backuplist::get_backuplist(); $schedule=WPvivid_Schedule::get_schedule(); $ret['wpvivid']['backup_list']=$backuplist; $ret['wpvivid']['schedule']=$schedule; $ret['wpvivid']['schedule']['last_message']=WPvivid_Setting::get_last_backup_message('wpvivid_last_msg'); WPvivid_taskmanager::delete_marked_task(); return $ret; } public function get_backup_schedule(){ $schedule=WPvivid_Schedule::get_schedule(); $ret['result']='success'; $ret['wpvivid']['schedule']=$schedule; $ret['wpvivid']['schedule']['last_message']=WPvivid_Setting::get_last_backup_message('wpvivid_last_msg'); return $ret; } public function get_backup_list(){ $backuplist=WPvivid_Backuplist::get_backuplist(); $ret['result']='success'; $ret['wpvivid']['backup_list']=$backuplist; return $ret; } public function get_default_remote(){ global $wpvivid_plugin; $ret['result']='success'; $ret['remote_storage_type']=$wpvivid_plugin->function_realize->_get_default_remote_storage(); return $ret; } public function delete_backup($backup_id, $force_del){ global $wpvivid_plugin; if(!isset($backup_id)||empty($backup_id)||!is_string($backup_id)) { $ret['error']='Invalid parameter param: backup_id.'; return $ret; } if(!isset($force_del)){ $ret['error']='Invalid parameter param: force.'; return $ret; } if($force_del==0||$force_del==1) { } else { $force_del=0; } $backup_id=sanitize_key($backup_id); $ret=$wpvivid_plugin->delete_backup_by_id($backup_id, $force_del); $backuplist=WPvivid_Backuplist::get_backuplist(); $ret['wpvivid']['backup_list']=$backuplist; return $ret; } public function delete_backup_array($backup_id_array){ global $wpvivid_plugin; if(!isset($backup_id_array)||empty($backup_id_array)||!is_array($backup_id_array)) { $ret['error']='Invalid parameter param: backup_id'; return $ret; } $ret=array(); foreach($backup_id_array as $backup_id) { $backup_id=sanitize_key($backup_id); $ret=$wpvivid_plugin->delete_backup_by_id($backup_id); } $backuplist=WPvivid_Backuplist::get_backuplist(); $ret['wpvivid']['backup_list']=$backuplist; return $ret; } public function set_security_lock($backup_id, $lock){ if(!isset($backup_id)||empty($backup_id)||!is_string($backup_id)){ $ret['error']='Backup id not found'; return $ret; } if(!isset($lock)){ $ret['error']='Invalid parameter param: lock'; return $ret; } $backup_id=sanitize_key($backup_id); if($lock==0||$lock==1) { } else { $lock=0; } WPvivid_Backuplist::set_security_lock($backup_id,$lock); $backuplist=WPvivid_Backuplist::get_backuplist(); $ret['wpvivid']['backup_list']=$backuplist; return $ret; } public function view_log($backup_id){ global $wpvivid_plugin; if (!isset($backup_id)||empty($backup_id)||!is_string($backup_id)){ $ret['error']='Backup id not found'; return $ret; } $backup_id=sanitize_key($backup_id); $ret=$wpvivid_plugin->function_realize->_get_log_file('backuplist', $backup_id); if($ret['result'] == 'success') { $file = fopen($ret['log_file'], 'r'); if (!$file) { $ret['result'] = 'failed'; $ret['error'] = __('Unable to open the log file.', 'wpvivid-backuprestore'); return $ret; } $buffer = ''; while (!feof($file)) { $buffer .= fread($file, 1024); } fclose($file); $ret['data'] = $buffer; } else{ $ret['error']='Unknown error'; } return $ret; } public function read_last_backup_log($log_file_name){ global $wpvivid_plugin; if(!isset($log_file_name)||empty($log_file_name)||!is_string($log_file_name)) { $ret['result']='failed'; $ret['error']=__('Reading the log failed. Please try again.', 'wpvivid-backuprestore'); return $ret; } $log_file_name=sanitize_text_field($log_file_name); $ret=$wpvivid_plugin->function_realize->_get_log_file('lastlog', $log_file_name); if($ret['result'] == 'success') { $file = fopen($ret['log_file'], 'r'); if (!$file) { $ret['result'] = 'failed'; $ret['error'] = __('Unable to open the log file.', 'wpvivid-backuprestore'); return $ret; } $buffer = ''; while (!feof($file)) { $buffer .= fread($file, 1024); } fclose($file); $ret['result'] = 'success'; $ret['data'] = $buffer; } else{ $ret['error']='Unknown error'; } return $ret; } public function view_backup_task_log($backup_task_id){ global $wpvivid_plugin; if (!isset($backup_task_id)||empty($backup_task_id)||!is_string($backup_task_id)){ $ret['error']='Reading the log failed. Please try again.'; return $ret; } $backup_task_id = sanitize_key($backup_task_id); $ret=$wpvivid_plugin->function_realize->_get_log_file('tasklog', $backup_task_id); if($ret['result'] == 'success') { $file = fopen($ret['log_file'], 'r'); if (!$file) { $ret['result'] = 'failed'; $ret['error'] = __('Unable to open the log file.', 'wpvivid-backuprestore'); return $ret; } $buffer = ''; while (!feof($file)) { $buffer .= fread($file, 1024); } fclose($file); $ret['result'] = 'success'; $ret['data'] = $buffer; } else{ $ret['error']='Unknown error'; } return $ret; } public function backup_cancel($task_id = ''){ global $wpvivid_plugin; $ret=$wpvivid_plugin->function_realize->_backup_cancel(); return $ret; } public function init_download_page($backup_id){ global $wpvivid_plugin; if(!isset($backup_id)||empty($backup_id)||!is_string($backup_id)) { $ret['error']='Invalid parameter param:'.$backup_id; return $ret; } else { $backup_id=sanitize_key($backup_id); return $wpvivid_plugin->init_download($backup_id); } } public function prepare_download_backup($backup_id, $file_name){ if(!isset($backup_id)||empty($backup_id)||!is_string($backup_id)) { $ret['error']='Invalid parameter param:'.$backup_id; return $ret; } if(!isset($file_name)||empty($file_name)||!is_string($file_name)) { $ret['error']='Invalid parameter param:'.$file_name; return $ret; } $download_info=array(); $download_info['backup_id']=sanitize_key($backup_id); $download_info['file_name'] = $file_name; @set_time_limit(600); if (session_id()) session_write_close(); try { $downloader=new WPvivid_downloader(); $downloader->ready_download($download_info); } catch (Exception $e) { $message = 'A exception ('.get_class($e).') occurred '.$e->getMessage().' (Code: '.$e->getCode().', line '.$e->getLine().' in '.$e->getFile().')'; error_log($message); return array('error'=>$message); } catch (Error $e) { $message = 'A error ('.get_class($e).') has occurred: '.$e->getMessage().' (Code: '.$e->getCode().', line '.$e->getLine().' in '.$e->getFile().')'; error_log($message); return array('error'=>$message); } $ret['result']='success'; return $ret; } public function get_download_task($backup_id){ if(!isset($backup_id)||empty($backup_id)||!is_string($backup_id)) { $ret['error']='Invalid parameter param:'.$backup_id; return $ret; } else { $backup = WPvivid_Backuplist::get_backup_by_id($backup_id); if ($backup === false) { $ret['result'] = WPVIVID_FAILED; $ret['error'] = 'backup id not found'; return $ret; } $backup_item = new WPvivid_Backup_Item($backup); $ret = $backup_item->update_download_page($backup_id); return $ret; } } public function download_backup($backup_id, $file_name){ global $wpvivid_plugin; if(!isset($backup_id)||empty($backup_id)||!is_string($backup_id)) { $ret['error']='Invalid parameter param: backup_id'; return $ret; } if(!isset($file_name)||empty($file_name)||!is_string($file_name)) { $ret['error']='Invalid parameter param: file_name'; return $ret; } $backup_id=sanitize_key($backup_id); $cache=WPvivid_taskmanager::get_download_cache($backup_id); if($cache===false) { $wpvivid_plugin->init_download($backup_id); $cache=WPvivid_taskmanager::get_download_cache($backup_id); } $path=false; if(array_key_exists($file_name,$cache['files'])) { if($cache['files'][$file_name]['status']=='completed') { $path=$cache['files'][$file_name]['download_path']; $download_url = $cache['files'][$file_name]['download_url']; } } if($path!==false) { if (file_exists($path)) { $ret['download_url'] = $download_url; $ret['size'] = filesize($path); } } return $ret; } public function set_general_setting($setting){ $ret=array(); try { if(isset($setting)&&!empty($setting)) { $json_setting = $setting; $json_setting = stripslashes($json_setting); $setting = json_decode($json_setting, true); if (is_null($setting)) { $ret['error']='bad parameter'; return $ret; } WPvivid_Setting::update_setting($setting); } $ret['result']='success'; } catch (Exception $error) { $message = 'An exception has occurred. class: '.get_class($error).';msg: '.$error->getMessage().';code: '.$error->getCode().';line: '.$error->getLine().';in_file: '.$error->getFile().';'; error_log($message); return array('error'=>$message); } return $ret; } public function set_schedule($schedule){ $ret=array(); try { if(isset($schedule)&&!empty($schedule)) { $json = $schedule; $json = stripslashes($json); $schedule = json_decode($json, true); if (is_null($schedule)) { $ret['error']='bad parameter'; return $ret; } $ret=WPvivid_Schedule::set_schedule_ex($schedule); if($ret['result']!='success') { return $ret; } } $ret['result']='success'; } catch (Exception $error) { $message = 'An exception has occurred. class: '.get_class($error).';msg: '.$error->getMessage().';code: '.$error->getCode().';line: '.$error->getLine().';in_file: '.$error->getFile().';'; error_log($message); return array('error'=>$message); } return $ret; } public function set_remote($remote){ global $wpvivid_plugin; $ret=array(); try { if(isset($remote)&&!empty($remote)) { $json = $remote; $json = stripslashes($json); $remote = json_decode($json, true); if (is_null($remote)) { $ret['error']='bad parameter'; return $ret; } $wpvivid_plugin->function_realize->_set_remote($remote); } $ret['result']='success'; } catch (Exception $error) { $message = 'An exception has occurred. class: '.get_class($error).';msg: '.$error->getMessage().';code: '.$error->getCode().';line: '.$error->getLine().';in_file: '.$error->getFile().';'; error_log($message); return array('error'=>$message); } return $ret; } }