PluginProbe ʕ •ᴥ•ʔ
UpdraftPlus: WP Backup & Migration Plugin / 1.16.22
UpdraftPlus: WP Backup & Migration Plugin v1.16.22
1.26.4 1.26.3 1.9.19 1.9.25 1.9.26 1.9.30 1.9.31 1.9.32 1.9.4 1.9.40 1.9.41 1.9.42 1.9.43 1.9.44 1.9.45 1.9.46 1.9.5 1.9.50 1.9.51 1.9.60 1.9.62 1.9.63 1.9.64 1.11.12 1.4.8 1.11.15 1.4.9 1.11.17 1.5.16 1.11.18 1.5.20 1.11.2 1.5.21 1.11.20 1.5.22 1.11.23 1.5.5 1.11.24 1.5.6 1.11.25 1.5.7 1.11.26 1.5.8 1.11.27 1.5.9 1.11.28 1.6.1 1.11.3 1.6.17 1.11.4 1.6.2 1.11.5 1.6.46 1.11.8 1.7.0 1.11.9 1.7.1 1.12.0 1.7.18 1.12.1 1.7.20 1.12.12 1.7.3 1.12.13 1.7.34 1.12.15 1.7.35 1.12.17 1.7.39 1.12.2 1.7.40 1.12.20 1.7.41 1.12.23 1.8.1 1.12.24 1.8.11 1.12.25 1.8.12 1.12.28 1.8.13 1.12.29 1.8.2 1.12.30 1.8.5 1.12.32 1.8.8 1.12.34 1.9.0 1.12.35 1.9.13 1.12.37 1.9.15 1.12.39 1.9.17 1.12.4 1.12.40 1.12.6 1.13.1 1.13.11 1.13.12 1.13.15 1.13.16 1.13.2 1.13.3 1.13.4 1.13.5 1.13.6 1.13.7 1.13.8 1.13.9 1.14.10 1.14.11 1.14.12 1.14.13 1.14.2 1.14.3 1.14.4 1.14.5 1.14.7 1.14.9 1.15.0 1.15.2 1.15.3 1.15.5 1.15.6 1.15.7 1.16.0 1.16.10 1.16.11 1.16.12 1.16.13 1.16.14 1.16.15 1.16.16 1.16.17 1.16.20 1.16.21 1.16.22 1.16.23 1.16.24 1.16.25 1.16.26 1.16.28 1.16.29 1.16.32 1.16.34 1.16.35 1.16.36 1.16.37 1.16.4 1.16.40 1.16.41 1.16.42 1.16.43 1.16.44 1.16.45 1.16.46 1.16.47 1.16.48 1.16.49 1.16.5 1.16.50 1.16.51 1.16.53 1.16.55 1.16.56 1.16.59 1.16.6 1.16.60 1.16.61 1.16.62 1.16.63 1.16.64 1.16.65 1.16.66 1.16.67 1.16.68 1.16.69 1.16.7 1.16.8 1.16.9 1.2.0 1.2.1 1.2.10 1.2.11 1.2.12 1.2.14 1.2.15 1.2.16 1.2.17 1.2.19 1.2.2 1.2.20 1.2.24 1.2.25 1.2.26 1.2.27 1.2.28 1.2.29 1.2.3 1.2.30 1.2.31 1.2.33 1.2.35 1.2.36 1.2.38 1.2.39 1.2.4 1.2.40 1.2.41 1.2.42 1.2.43 1.2.44 1.2.45 1.2.46 1.2.5 1.2.7 1.2.8 1.2.9 1.22.1 1.22.10 1.22.11 1.22.12 1.22.14 1.22.15 1.22.16 1.22.17 1.22.18 1.22.19 1.22.20 1.22.21 1.22.22 1.22.23 1.22.24 1.22.3 1.22.4 1.22.5 1.22.6 1.22.7 1.22.8 1.22.9 1.23.1 1.23.10 1.23.11 1.23.12 1.23.13 1.23.15 1.23.16 1.23.2 1.23.3 1.23.4 1.23.5 1.23.6 1.23.7 1.23.8 1.23.9 1.24.1 1.24.10 1.24.11 1.24.12 1.24.2 trunk 1.24.3 0.7.4 1.24.4 0.7.7 1.24.5 0.8.28 1.24.6 0.8.29 1.24.7 0.8.30 1.24.8 0.8.31 1.24.9 0.8.32 1.25.1 0.8.33 1.25.2 0.8.36 1.25.3 0.8.37 1.25.5 0.8.50 1.25.6 0.8.51 1.25.7 0.9.1 1.25.8 0.9.10 1.25.9 0.9.11 1.26.1 0.9.12 1.26.2 0.9.2 1.3.10 0.9.20 1.3.12 0.9.21 1.3.14 0.9.22 1.3.15 1.0.10 1.3.17 1.0.11 1.3.18 1.0.12 1.3.19 1.0.15 1.3.2 1.0.16 1.3.20 1.0.18 1.3.22 1.0.20 1.3.23 1.0.3 1.3.24 1.0.4 1.3.25 1.0.5 1.3.3 1.0.6 1.3.4 1.0.7 1.3.6 1.0.8 1.3.7 1.0.9 1.3.8 1.1.0 1.3.9 1.1.10 1.4.0 1.1.11 1.4.10 1.1.12 1.4.11 1.1.13 1.4.12 1.1.14 1.4.13 1.1.15 1.4.14 1.1.16 1.4.15 1.1.17 1.4.2 1.1.2 1.4.27 1.1.3 1.4.28 1.1.5 1.4.29 1.1.6 1.4.30 1.1.8 1.4.4 1.1.9 1.4.48 1.10.1 1.4.5 1.10.3 1.4.6 1.11.1 1.4.7
updraftplus / includes / updraftplus-login.php
updraftplus / includes Last commit date
Dropbox2 6 years ago Google 6 years ago checkout-embed 6 years ago cloudfiles 12 years ago handlebars 6 years ago images 9 years ago jquery.serializeJSON 7 years ago jstree 6 years ago labelauty 6 years ago tether 6 years ago tether-shepherd 7 years ago updraftclone 6 years ago S3.php 6 years ago S3compat.php 6 years ago cacert.pem 6 years ago class-backup-history.php 6 years ago class-commands.php 6 years ago class-database-utility.php 6 years ago class-filesystem-functions.php 6 years ago class-job-scheduler.php 6 years ago class-manipulation-functions.php 7 years ago class-partialfileservlet.php 9 years ago class-remote-send.php 6 years ago class-semaphore.php 6 years ago class-storage-methods-interface.php 6 years ago class-udrpc.php 6 years ago class-updraft-dashboard-news.php 6 years ago class-updraftcentral-updraftplus-commands.php 8 years ago class-updraftplus-encryption.php 6 years ago class-wpadmin-commands.php 6 years ago class-zip.php 6 years ago ftp.class.php 7 years ago get-cpanel-quota-usage.pl 12 years ago google-extensions.php 9 years ago jquery-ui.custom.css 7 years ago jquery-ui.custom.min.css 7 years ago jquery-ui.custom.min.css.map 7 years ago jquery.blockUI.js 8 years ago jquery.blockUI.min.js 8 years ago updraft-admin-common.js 6 years ago updraft-admin-common.min.js 6 years ago updraft-notices.php 6 years ago updraft-restorer-skin-compatibility.php 6 years ago updraft-restorer-skin.php 6 years ago updraftcentral.php 7 years ago updraftplus-clone.php 6 years ago updraftplus-login.php 7 years ago updraftplus-notices.php 6 years ago updraftplus-tour.php 7 years ago updraftvault.php 6 years ago
updraftplus-login.php
115 lines
1 <?php
2
3 if (!defined('UPDRAFTPLUS_DIR')) die('No direct access allowed.');
4
5 abstract class UpdraftPlus_Login {
6
7 /**
8 * Pulls the appropriate message for the given code and translate it before
9 * returning it to the caller
10 *
11 * @internal
12 * @param string $code The code of the message to pull
13 * @return string - The translated message
14 */
15 abstract protected function translate_message($code);
16
17 /**
18 * Executes login or registration process. Connects and sends request to the UpdraftCentral Cloud
19 * and returns the response coming from the server
20 *
21 * @internal
22 * @param array $data The submitted form data
23 * @param boolean $register Indicates whether the current call is for a registration process or not. Defaults to false.
24 * @return array - The response from the request
25 */
26 abstract protected function login_or_register($data, $register = false);
27
28 /**
29 * Handles the actual sending of the request to the remote server (UpdraftCentral Cloud) and pre-checks the response
30 * and wraps it up for the caller before sending it back
31 *
32 * @internal
33 * @param array $data The submitted form data
34 * @param string $action The name of the action or service that will be triggered in UpdraftCentral Cloud
35 * @return array - The response from the server
36 */
37 protected function send_remote_request($data, $action) {
38 global $updraftplus;
39 $result = wp_remote_post($updraftplus->get_url('mothership').'/?udm_action='.$action,
40 array(
41 'timeout' => 20,
42 'headers' => apply_filters('updraftplus_auth_headers', ''),
43 'body' => $data
44 )
45 );
46
47 // If we got an error then we return the WP_Error object itself
48 // and let the caller handle it.
49 if (is_wp_error($result)) return $result;
50
51 $response = json_decode(wp_remote_retrieve_body($result), true);
52 if (!is_array($response) || !isset($response['mothership']) || !isset($response['status'])) {
53
54 if (preg_match('/has banned your IP address \(([\.:0-9a-f]+)\)/', $result['body'], $matches)) {
55 return new WP_Error('banned_ip', sprintf(__("UpdraftPlus.com has responded with 'Access Denied'.", 'updraftplus').'<br>'.__("It appears that your web server's IP Address (%s) is blocked.", 'updraftplus').' '.__('This most likely means that you share a webserver with a hacked website that has been used in previous attacks.', 'updraftplus').'<br> <a href="'.apply_filters("updraftplus_com_link", "https://updraftplus.com/unblock-ip-address/").'" target="_blank">'.__('To remove the block, please go here.', 'updraftplus').'</a> ', $matches[1]));
56 } else {
57 return new WP_Error('unknown_response', sprintf(__('UpdraftPlus.Com returned a response which we could not understand (data: %s)', 'updraftplus'), wp_remote_retrieve_body($result)));
58 }
59 }
60
61 return $response;
62 }
63
64 /**
65 * The ajax based request point of entry for the login process
66 *
67 * @param array $data - The submitted form data
68 * @param boolean $echo_results - Whether to echo/display the results directly to the user or assign it to a variable
69 * @return array - Response of the process
70 */
71 public function ajax_process_login($data = array(), $echo_results = true) {
72 try {
73 if (isset($data['form_data'])) {
74 if (is_string($data['form_data'])) {
75 parse_str($data['form_data'], $form_data);
76 } elseif (is_array($data['form_data'])) {
77 $form_data = $data['form_data'];
78 }
79 }
80 $response = $this->login_or_register($form_data);
81 } catch (Exception $e) {
82 $response = array('error' => true, 'message' => $e->getMessage());
83 }
84
85 if ($echo_results) {
86 echo json_encode($response);
87 } else {
88 return $response;
89 }
90 }
91
92 /**
93 * The ajax based request point of entry for the registration process
94 *
95 * @param array $data - The submitted form data
96 * @param boolean $echo_results - Whether to echo/display the results directly to the user or assign it to a variable
97 * @return array - Response of the process
98 */
99 public function ajax_process_registration($data = array(), $echo_results = true) {
100 try {
101 if (isset($data['form_data'])) parse_str($data['form_data'], $form_data);
102
103 $response = $this->login_or_register($form_data, true);
104 } catch (Exception $e) {
105 $response = array('error' => true, 'message' => $e->getMessage());
106 }
107
108 if ($echo_results) {
109 echo json_encode($response);
110 } else {
111 return $response;
112 }
113 }
114 }
115