updated plugin Jetpack Protect
version 1.1.1
This commit is contained in:
@ -710,7 +710,7 @@ class Error_Handler {
|
||||
}
|
||||
|
||||
$body = json_decode( $body_raw, true );
|
||||
if ( empty( $body['error'] ) ) {
|
||||
if ( empty( $body['error'] ) || ( ! is_string( $body['error'] ) && ! is_int( $body['error'] ) ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -30,15 +30,15 @@ class Initial_State {
|
||||
global $wp_version;
|
||||
|
||||
return array(
|
||||
'apiRoot' => esc_url_raw( rest_url() ),
|
||||
'apiNonce' => wp_create_nonce( 'wp_rest' ),
|
||||
'registrationNonce' => wp_create_nonce( 'jetpack-registration-nonce' ),
|
||||
'connectionStatus' => REST_Connector::connection_status( false ),
|
||||
'userConnectionData' => REST_Connector::get_user_connection_data( false ),
|
||||
'connectedPlugins' => REST_Connector::get_connection_plugins( false ),
|
||||
'wpVersion' => $wp_version,
|
||||
'siteSuffix' => ( new Status() )->get_site_suffix(),
|
||||
'connectionVerifiedErrors' => Error_Handler::get_instance()->get_verified_errors(),
|
||||
'apiRoot' => esc_url_raw( rest_url() ),
|
||||
'apiNonce' => wp_create_nonce( 'wp_rest' ),
|
||||
'registrationNonce' => wp_create_nonce( 'jetpack-registration-nonce' ),
|
||||
'connectionStatus' => REST_Connector::connection_status( false ),
|
||||
'userConnectionData' => REST_Connector::get_user_connection_data( false ),
|
||||
'connectedPlugins' => REST_Connector::get_connection_plugins( false ),
|
||||
'wpVersion' => $wp_version,
|
||||
'siteSuffix' => ( new Status() )->get_site_suffix(),
|
||||
'connectionErrors' => Error_Handler::get_instance()->get_verified_errors(),
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -15,6 +15,7 @@ use Automattic\Jetpack\Status;
|
||||
use Automattic\Jetpack\Terms_Of_Service;
|
||||
use Automattic\Jetpack\Tracking;
|
||||
use Jetpack_IXR_Client;
|
||||
use Jetpack_Options;
|
||||
use WP_Error;
|
||||
use WP_User;
|
||||
|
||||
@ -831,7 +832,12 @@ class Manager {
|
||||
* @return Boolean Whether the disconnection of the user was successful.
|
||||
*/
|
||||
public function disconnect_user( $user_id = null, $can_overwrite_primary_user = false, $force_disconnect_locally = false ) {
|
||||
$user_id = empty( $user_id ) ? get_current_user_id() : (int) $user_id;
|
||||
$user_id = empty( $user_id ) ? get_current_user_id() : (int) $user_id;
|
||||
$is_primary_user = Jetpack_Options::get_option( 'master_user' ) === $user_id;
|
||||
|
||||
if ( $is_primary_user && ! $can_overwrite_primary_user ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Attempt to disconnect the user from WordPress.com.
|
||||
$is_disconnected_from_wpcom = $this->unlink_user_from_wpcom( $user_id );
|
||||
@ -839,7 +845,7 @@ class Manager {
|
||||
$is_disconnected_locally = false;
|
||||
if ( $is_disconnected_from_wpcom || $force_disconnect_locally ) {
|
||||
// Disconnect the user locally.
|
||||
$is_disconnected_locally = $this->get_tokens()->disconnect_user( $user_id, $can_overwrite_primary_user );
|
||||
$is_disconnected_locally = $this->get_tokens()->disconnect_user( $user_id );
|
||||
|
||||
if ( $is_disconnected_locally ) {
|
||||
// Delete cached connected user data.
|
||||
@ -855,6 +861,10 @@ class Manager {
|
||||
* @param int $user_id The current user's ID.
|
||||
*/
|
||||
do_action( 'jetpack_unlinked_user', $user_id );
|
||||
|
||||
if ( $is_primary_user ) {
|
||||
Jetpack_Options::delete_option( 'master_user' );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -864,15 +874,13 @@ class Manager {
|
||||
/**
|
||||
* Request to wpcom for a user to be unlinked from their WordPress.com account
|
||||
*
|
||||
* @access public
|
||||
* @param int $user_id The user identifier.
|
||||
*
|
||||
* @param Integer $user_id the user identifier.
|
||||
*
|
||||
* @return Boolean Whether the disconnection of the user was successful.
|
||||
* @return bool Whether the disconnection of the user was successful.
|
||||
*/
|
||||
public function unlink_user_from_wpcom( $user_id ) {
|
||||
// Attempt to disconnect the user from WordPress.com.
|
||||
$xml = new Jetpack_IXR_Client( compact( 'user_id' ) );
|
||||
$xml = new Jetpack_IXR_Client();
|
||||
|
||||
$xml->query( 'jetpack.unlink_user', $user_id );
|
||||
if ( $xml->isError() ) {
|
||||
@ -2416,6 +2424,8 @@ class Manager {
|
||||
return new WP_Error( 'jetpack_secret', '', $code );
|
||||
}
|
||||
|
||||
Error_Handler::get_instance()->delete_all_errors();
|
||||
|
||||
return $this->get_tokens()->update_blog_token( (string) $json->jetpack_secret );
|
||||
}
|
||||
|
||||
|
@ -12,7 +12,7 @@ namespace Automattic\Jetpack\Connection;
|
||||
*/
|
||||
class Package_Version {
|
||||
|
||||
const PACKAGE_VERSION = '1.44.0';
|
||||
const PACKAGE_VERSION = '1.46.3';
|
||||
|
||||
const PACKAGE_SLUG = 'connection';
|
||||
|
||||
|
@ -432,6 +432,8 @@ class REST_Connector {
|
||||
* @return \WP_REST_Response|array
|
||||
*/
|
||||
public static function get_user_connection_data( $rest_response = true ) {
|
||||
$blog_id = \Jetpack_Options::get_option( 'id' );
|
||||
|
||||
$connection = new Manager();
|
||||
|
||||
$current_user = wp_get_current_user();
|
||||
@ -464,6 +466,7 @@ class REST_Connector {
|
||||
'isMaster' => $is_master_user,
|
||||
'username' => $current_user->user_login,
|
||||
'id' => $current_user->ID,
|
||||
'blogId' => $blog_id,
|
||||
'wpcomUser' => $wpcom_user_data,
|
||||
'gravatar' => get_avatar_url( $current_user->ID, 64, 'mm', '', array( 'force_display' => true ) ),
|
||||
'permissions' => array(
|
||||
|
@ -487,18 +487,19 @@ class Tokens {
|
||||
*
|
||||
* @todo Refactor to properly load the XMLRPC client independently.
|
||||
*
|
||||
* @param Integer $user_id the user identifier.
|
||||
* @param bool $can_overwrite_primary_user Allow for the primary user to be disconnected.
|
||||
* @return Boolean Whether the disconnection of the user was successful.
|
||||
* @param int $user_id The user identifier.
|
||||
* @param bool|null $deprecated Deprecated.
|
||||
*
|
||||
* @return bool Whether the disconnection of the user was successful.
|
||||
*/
|
||||
public function disconnect_user( $user_id, $can_overwrite_primary_user = false ) {
|
||||
public function disconnect_user( $user_id, $deprecated = null ) {
|
||||
$tokens = $this->get_user_tokens();
|
||||
if ( ! $tokens ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ( Jetpack_Options::get_option( 'master_user' ) === $user_id && ! $can_overwrite_primary_user ) {
|
||||
return false;
|
||||
if ( null !== $deprecated ) {
|
||||
_deprecated_argument( __METHOD__, '1.46.0', 'Parameter $can_overwrite_primary_user is deprecated' );
|
||||
}
|
||||
|
||||
if ( ! isset( $tokens[ $user_id ] ) ) {
|
||||
|
Reference in New Issue
Block a user