PluginProbe
ManageWP Worker / 3.8.2
ManageWP Worker v3.8.2
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.2, at init.php

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