public static function testAndSaveLogin($username, $password)
 {
     if ($username == '' && $password == '') {
         MainWPUtility::update_option("mainwp_api_username", $username);
         MainWPUtility::update_option("mainwp_api_password", MainWPUtility::encrypt($password, 'MainWPAPI'));
         die(json_encode(array('saved' => 1)));
     }
     $output = array();
     $parseError = true;
     try {
         $output['api_status'] = MainWPAPISettings::testAPIs('main', true, $username, $password, false, true);
     } catch (Exception $e) {
         if ($e->getMessage() == 'MAX_ACCOUNTS') {
             $output['api_status'] = MAINWP_API_INVALID;
             $output['error'] = MainWPAPISettingsView::maximumInstallationsReached();
         } else {
             $parseError = false;
             $output['api_status'] = 'ERROR';
             $output['error'] = $e->getMessage();
         }
     }
     MainWPAPISettings::testAPIs(null, true, $username, $password, false, true);
     if ($output['api_status'] == MAINWP_API_VALID) {
         MainWPUtility::update_option("mainwp_api_username", $username);
         MainWPUtility::update_option("mainwp_api_password", MainWPUtility::encrypt($password, 'MainWPAPI'));
     }
     if ($parseError && stristr($output['api_status'], 'ERROR')) {
         $output['error'] = substr($output['api_status'], 6);
         $output['api_status'] = 'ERROR';
     }
     return $output;
 }
 public static function encrypt_string($str)
 {
     return MainWPUtility::encrypt($str, self::$ENCRYPT);
 }
Beispiel #3
0
 function post_update()
 {
     $currentVersion = get_site_option('mainwp_db_version');
     if ($currentVersion === false) {
         return;
     }
     if (version_compare($currentVersion, '2.5', '<')) {
         $requests = array('lastRequest' => time(), 'requests' => base64_encode(serialize(array('main' => MainWPSystem::Instance()->getAPIStatus()))));
         MainWPUtility::update_option('mainwp_requests', $requests);
     }
     if (version_compare($currentVersion, '2.8', '<')) {
         $this->wpdb->update($this->tableName('wp_backup'), array('subfolder' => 'MainWP Backups/%url%/%type%/%date%'), array('template' => '0'));
     }
     if (version_compare($currentVersion, '4.3', '<')) {
         $row = $this->wpdb->get_row('SELECT * FROM ' . $this->tableName('users'), OBJECT);
         if ($row != null) {
             $row->userid = 0;
             $this->updateUserExtension($row);
         }
     }
     if (version_compare($currentVersion, '5.3', '<')) {
         if (MainWPSystem::Instance()->isSingleUser()) {
             $row = $this->wpdb->get_row('SELECT * FROM ' . $this->tableName('ga'), OBJECT);
             $this->wpdb->update($this->tableName('ga'), array('userid' => 0), array('userid' => $row->userid));
         }
     }
     if (version_compare($currentVersion, '6.0', '=')) {
         $this->wpdb->query('ALTER TABLE ' . $this->tableName('request_log') . ' CHANGE micro_timestamp_stop micro_timestamp_stop DECIMAL( 12, 2 ) NOT NULL DEFAULT 0');
         $this->wpdb->query('ALTER TABLE ' . $this->tableName('request_log') . ' CHANGE micro_timestamp_start micro_timestamp_start DECIMAL( 12, 2 ) NOT NULL DEFAULT 0');
         $this->wpdb->query('DELETE FROM ' . $this->tableName('request_log') . ' WHERE 1 ');
     }
     if (version_compare($currentVersion, '6.2', '<')) {
         $options = array('mainwp_db_version', 'mainwp_requests', 'mainwp_plugin_version', 'mainwp_upgradeVersionInfo', 'mainwp_cron_last_offlinecheck', 'mainwp_cron_last_updatescheck', 'mainwp_automaticUpdate_backupChecks', 'mainwp_updatescheck_mail_update_core_new', 'mainwp_updatescheck_mail_update_plugins_new', 'mainwp_updatescheck_mail_update_themes_new', 'mainwp_updatescheck_mail_update_core', 'mainwp_updatescheck_mail_update_plugins', 'mainwp_updatescheck_mail_update_themes', 'mainwp_updatescheck_mail_ignore_core', 'mainwp_updatescheck_mail_ignore_plugins', 'mainwp_updatescheck_mail_ignore_themes', 'mainwp_updatescheck_mail_ignore_core_new', 'mainwp_updatescheck_mail_ignore_plugins_new', 'mainwp_updatescheck_mail_ignore_themes_new', 'mainwp_updatescheck_mail_pluginconflicts', 'mainwp_updatescheck_mail_themeconflicts', 'mainwp_updatescheck_last', 'mainwp_updatescheck_mail_email', 'mainwp_cron_last_ping', 'mainwp_cron_last_cronconflicts', 'mainwp_pluginConflicts', 'mainwp_themeConflicts', 'mainwp_cron_last_backups_continue', 'mainwp_cron_last_backups', 'mainwp_cron_last_stats', 'mainwp_backupsOnServer', 'mainwp_maximumFileDescriptors', 'mainwp_backupOnExternalSources', 'mainwp_notificationOnBackupFail', 'mainwp_notificationOnBackupStart', 'mainwp_chunkedBackupTasks', 'mainwp_maximumRequests', 'mainwp_minimumDelay', 'mainwp_maximumIPRequests', 'mainwp_minimumIPDelay', 'mainwp_extensions', 'mainwp_extloaded', 'mainwp_api_username', 'mainwp_api_password', 'mainwp_extension_widget_view', 'mainwp_news', 'mainwp_news_timestamp', 'mainwp_optimize', 'mainwp_seo', 'mainwp_automaticDailyUpdate', 'mainwp_backup_before_upgrade', 'mainwp_maximumPosts', 'mainwp_maximumComments', 'mainwp_cron_jobs', 'mainwp_wp_cron');
         foreach ($options as $option) {
             MainWPUtility::fix_option($option);
         }
     }
     if (version_compare($currentVersion, '7.3', '<')) {
         //get all sites
         $sites = $this->wpdb->get_results('SELECT id FROM ' . $this->tableName('wp'));
         if (!empty($sites)) {
             foreach ($sites as $site) {
                 $this->wpdb->insert($this->tableName('wp_settings_backup'), array('wpid' => $site->id, 'archiveFormat' => 'global'));
             }
         }
     }
     if (version_compare($currentVersion, '8', '<')) {
         $apiPass = get_option('mainwp_api_password');
         MainWPUtility::update_option('mainwp_api_password', MainWPUtility::encrypt($apiPass, 'MainWPAPI'));
     }
     if (version_compare($currentVersion, '8.1', '<')) {
         //We can't split up here!
         $wpSyncColumns = array('version', 'totalsize', 'dbsize', 'extauth', 'last_post_gmt', 'uptodate', 'sync_errors', 'dtsSync', 'dtsSyncStart', 'dtsAutomaticSync', 'dtsAutomaticSyncStart');
         foreach ($wpSyncColumns as $wpSyncColumn) {
             $rslts = $this->wpdb->get_results('SELECT id,' . $wpSyncColumn . ' FROM ' . $this->tableName('wp'), ARRAY_A);
             if (empty($rslts)) {
                 continue;
             }
             foreach ($rslts as $rslt) {
                 $exists = $this->wpdb->get_results('SELECT wpid FROM ' . $this->tableName('wp_sync') . ' WHERE wpid = ' . $rslt['id'], ARRAY_A);
                 if (empty($exists)) {
                     $this->wpdb->insert($this->tableName('wp_sync'), array('wpid' => $rslt['id'], $wpSyncColumn => $rslt[$wpSyncColumn]));
                 } else {
                     $this->wpdb->update($this->tableName('wp_sync'), array($wpSyncColumn => $rslt[$wpSyncColumn]), array('wpid' => $rslt['id']));
                 }
             }
             $suppress = $this->wpdb->suppress_errors();
             $this->wpdb->query('ALTER TABLE ' . $this->tableName('wp') . ' DROP COLUMN ' . $wpSyncColumn);
             $this->wpdb->suppress_errors($suppress);
         }
         $optionColumns = array('last_wp_upgrades', 'last_plugin_upgrades', 'last_theme_upgrades', 'wp_upgrades', 'recent_comments', 'recent_posts', 'recent_pages');
         foreach ($optionColumns as $optionColumn) {
             $rslts = $this->wpdb->get_results('SELECT id,' . $optionColumn . ' FROM ' . $this->tableName('wp'), ARRAY_A);
             if (empty($rslts)) {
                 continue;
             }
             foreach ($rslts as $rslt) {
                 MainWPDB::updateWebsiteOption((object) $rslt, $optionColumn, $rslt[$optionColumn]);
             }
             $suppress = $this->wpdb->suppress_errors();
             $this->wpdb->query('ALTER TABLE ' . $this->tableName('wp') . ' DROP COLUMN ' . $optionColumn);
             $this->wpdb->suppress_errors($suppress);
         }
     }
 }