PluginProbe
ManageWP Worker / 3.8.3
ManageWP Worker v3.8.3
4.9.38 4.9.37 4.9.36 4.9.35 4.9.34 3.8.7 3.8.8 3.9.0 3.9.1 3.9.10 3.9.11 3.9.12 3.9.13 3.9.14 3.9.15 3.9.16 3.9.17 3.9.18 3.9.19 3.9.2 3.9.20 3.9.21 3.9.22 3.9.23 3.9.24 All 73 releases
worker / init.php

init.php in ManageWP Worker 3.8.3, at init.php

294 lines 8.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /*
3 Plugin Name: ManageWP - Worker
4 Plugin URI: http://managewp.com/
5 Description: Manage all your blogs from one dashboard
6 Author: Prelovac Media
7 Version: 3.8.3
8 Author URI: http://www.prelovac.com
9 */
10
11 /*************************************************************
12 *
13 * init.php
14 *
15 * Initialize the communication with master
16 *
17 *
18 * Copyright (c) 2011 Prelovac Media
19 * www.prelovac.com
20 **************************************************************/
21
22 // PHP warnings can break our XML stuffs
23 if ($_SERVER['REMOTE_ADDR'] != '127.0.0.1') {
24 error_reporting(E_ERROR);
25 }
26
27 define('MMB_WORKER_VERSION', '3.8.3');
28
29 global $wpdb, $mmb_plugin_dir, $mmb_plugin_url;
30
31 $mmb_plugin_dir = WP_PLUGIN_DIR . '/' . basename(dirname(__FILE__));
32 $mmb_plugin_url = WP_PLUGIN_URL . '/' . basename(dirname(__FILE__));
33
34 require_once(ABSPATH . 'wp-includes/class-IXR.php');
35 require_once("$mmb_plugin_dir/helper.class.php");
36 require_once("$mmb_plugin_dir/core.class.php");
37 require_once("$mmb_plugin_dir/plugin.class.php");
38 require_once("$mmb_plugin_dir/theme.class.php");
39 require_once("$mmb_plugin_dir/wp.class.php");
40 require_once("$mmb_plugin_dir/post.class.php");
41 require_once("$mmb_plugin_dir/stats.class.php");
42 require_once("$mmb_plugin_dir/backup.class.php");
43
44 $mmb_core = new MMB_Core();
45 add_action('init', '_mmb_parse_request');
46
47 if (function_exists('register_activation_hook'))
48 register_activation_hook(__FILE__, array(
49 $mmb_core,
50 'install'
51 ));
52
53 if (function_exists('register_deactivation_hook'))
54 register_deactivation_hook(__FILE__, array(
55 $mmb_core,
56 'uninstall'
57 ));
58
59 function _mmb_parse_request()
60 {
61 if (!isset($HTTP_RAW_POST_DATA)) {
62 $HTTP_RAW_POST_DATA = file_get_contents('php://input');
63 }
64 ob_start();
65
66 global $mmb_core;
67 $data = base64_decode($HTTP_RAW_POST_DATA);
68 $num = extract(unserialize($data));
69
70 if ($action) {
71 if (!$mmb_core->_check_if_user_exists($params['username']))
72 mmb_response('Username <b>' . $params['username'] . '</b> does not have administrator capabilities. Enter the correct username in the site options.', false);
73
74 if ($action == 'add_site') {
75 mmb_add_site($params);
76 mmb_response('You should never see this.', false);
77 }
78
79 $auth = $mmb_core->_authenticate_message($action . $id, $signature, $id);
80 if ($auth === true) {
81 $mmb_actions = array(
82 'remove_site' => 'mmb_remove_site',
83 'get_stats' => 'mmb_stats_get',
84 'backup' => 'mmb_backup_now',
85 'restore' => 'mmb_restore_now',
86 'optimize_tables' => 'mmb_optimize_tables',
87 'check_wp_version' => 'mmb_wp_checkversion',
88 'create_post' => 'mmb_post_create',
89 'upgrade_plugins' => 'mmb_upgrade_plugins',
90 'wp_upgrade' => 'mmb_upgrade_wp',
91 'upgrade_themes' => 'mmb_themes_upgrade',
92 'upload_plugin_by_url' => 'mmb_plugin_upload_by_url',
93 'upload_theme_by_url' => 'mmb_theme_upload_by_url',
94 'update_worker' => 'mmb_update_worker_plugin'
95 );
96 if (array_key_exists($action, $mmb_actions) && function_exists($mmb_actions[$action]))
97 call_user_func($mmb_actions[$action], $params);
98 else
99 mmb_response('Action "' . $action . '" does not exist.', false);
100 } else {
101 mmb_response($auth['error'], false);
102 }
103 }
104
105
106 ob_end_clean();
107 }
108
109 /* Main response function */
110
111 function mmb_response($response = false, $success = true)
112 {
113 $return = array();
114
115 if (empty($response))
116 $return['error'] = 'Empty response';
117 else if ($success)
118 $return['success'] = $response;
119 else
120 $return['error'] = $response;
121
122 header('Content-Type: text/plain');
123 exit(PHP_EOL . base64_encode(serialize($return)));
124 }
125
126 function mmb_add_site($params)
127 {
128 global $mmb_core;
129
130 $num = extract($params);
131
132 if ($num) {
133 if (!get_option('_action_message_id') && !get_option('_worker_public_key')) {
134 $public_key = base64_decode($public_key);
135
136 if (function_exists('openssl_verify')) {
137 $verify = openssl_verify($action . $id, base64_decode($signature), $public_key);
138 if ($verify == 1) {
139 $mmb_core->_set_master_public_key($public_key);
140 $mmb_core->_set_worker_message_id($id);
141
142 mmb_response($mmb_core->get_stats_instance()->get_initial_stats(), true);
143 } else if ($verify == 0) {
144 mmb_response('Invalid message signature. Please contact us if you see this message often.', false);
145 } else {
146 mmb_response('Command not successful. Please try again.', false);
147 }
148 } else {
149 if (!get_option('_worker_nossl_key')) {
150 srand();
151 $random_key = md5(base64_encode($public_key) . rand(0, getrandmax()));
152
153 $mmb_core->_set_random_signature($random_key);
154 $mmb_core->_set_worker_message_id($id);
155 $mmb_core->_set_master_public_key($public_key);
156 mmb_response($mmb_core->get_stats_instance()->get_initial_stats(), true);
157 } else
158 mmb_response('Please deactivate & activate ManageWP Worker plugin on your site, then re-add the site to your dashboard.', false);
159 }
160 } else {
161 mmb_response('Please deactivate & activate ManageWP Worker plugin on your site and re-add the site to your dashboard.', false);
162 }
163 } else {
164 mmb_response('Invalid parameters received. Please try again.', false);
165 }
166 }
167
168 function mmb_remove_site($params)
169 {
170 extract($params);
171 global $mmb_core;
172 $mmb_core->uninstall();
173
174 include_once(ABSPATH . 'wp-admin/includes/plugin.php');
175 $plugin_slug = basename(dirname(__FILE__)) . '/' . basename(__FILE__);
176
177 if ($deactivate) {
178 deactivate_plugins($plugin_slug, true);
179 }
180
181 if (!is_plugin_active($plugin_slug))
182 mmb_response(array(
183 'deactivated' => 'Site removed successfully. <br /><br />ManageWP Worker plugin successfully deactivated.'
184 ), true);
185 else
186 mmb_response(array(
187 'removed_data' => 'Site removed successfully. <br /><br /><b>ManageWP Worker plugin was not deactivated.</b>'
188 ), true);
189
190 }
191
192
193 function mmb_stats_get($params)
194 {
195 global $mmb_core;
196 mmb_response($mmb_core->get_stats_instance()->get($params), true);
197 }
198
199
200 //Plugins
201
202 function mmb_upgrade_plugins($params)
203 {
204 global $mmb_core;
205 mmb_response($mmb_core->get_plugin_instance()->upgrade_all($params), true);
206 }
207
208 function mmb_plugin_upload_by_url($params)
209 {
210 global $mmb_core;
211 $return = $mmb_core->get_plugin_instance()->upload_by_url($params);
212
213
214 mmb_response($return['message'], $return['bool']);
215
216 }
217
218 //Themes
219 function mmb_theme_upload_by_url($params)
220 {
221 global $mmb_core;
222 $return = $mmb_core->get_theme_instance()->upload_theme_by_url($params);
223 mmb_response($return['message'], $return['bool']);
224 }
225
226 function mmb_themes_upgrade($params)
227 {
228 global $mmb_core;
229 mmb_response($mmb_core->get_theme_instance()->upgrade_all($params), true);
230 }
231
232
233 //wp
234
235 function mmb_upgrade_wp($params)
236 {
237 global $mmb_core;
238 mmb_response($mmb_core->get_wp_instance()->upgrade());
239 }
240
241 //post
242 function mmb_post_create($params)
243 {
244 global $mmb_core;
245 $return = $mmb_core->get_post_instance()->create($params);
246 if (is_int($return))
247 mmb_response($return, true);
248 else
249 mmb_response($return, false);
250 }
251
252 //backup
253 function mmb_backup_now($params)
254 {
255 global $mmb_core;
256 $return = $mmb_core->get_backup_instance()->backup($params);
257
258 if (is_array($return) && array_key_exists('error', $return))
259 mmb_response($return['error'], false);
260 else {
261 $mmb_core->_log($return);
262 mmb_response($return, true);
263 }
264
265 }
266
267 function mmb_optimize_tables($params)
268 {
269 global $mmb_core;
270 $return = $mmb_core->get_backup_instance()->optimize_tables();
271 if ($return)
272 mmb_response($return, true);
273 else
274 mmb_response(false, false);
275 }
276
277 function mmb_restore_now($params)
278 {
279 global $mmb_core;
280 $return = $mmb_core->get_backup_instance()->restore($params);
281 if (is_array($return) && array_key_exists('error', $return))
282 mmb_response($return['error'], false);
283 else
284 mmb_response($return, true);
285
286 }
287
288 function mmb_update_worker_plugin($params)
289 {
290 global $mmb_core;
291 mmb_response($mmb_core->update_worker_plugin($params), true);
292 }
293 ?>
294