PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 16.2-a.1
Jetpack – WP Security, Backup, Speed, & Growth v16.2-a.1
16.1.2 16.2-a.1 16.1.1 16.1 16.1-beta 16.1-beta.2 16.1-beta.3 16.1-a.5 16.1-a.3 16.0.1 16.1-a.1 16.0 16.0-beta 16.0-a.7 16.0-a.5 15.9.1 16.0-a.3 16.0-a.1 15.9 15.9-beta 15.9-a.7 15.9-a.5 15.9-a.3 15.9-a.1 15.8 15.8-beta 15.8-a.7 15.8-a.5 5.2.5 5.3.4 5.4.4 5.5.5 5.6.5 5.7.5 5.8.4 5.9.4 6.0.4 6.1 6.1.1 6.1.2 6.1.3 6.1.4 6.1.5 6.2 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.3 6.3.1 6.3.2 6.3.3 6.3.4 6.3.5 6.3.6 6.3.7 6.4 6.4.1 6.4.2 6.4.3 6.4.4 6.4.5 6.4.6 6.5 6.5.1 6.5.2 6.5.3 6.5.4 6.6 6.6.1 6.6.2 6.6.3 6.6.4 6.6.5 6.7 6.7.1 6.7.2 6.7.3 6.7.4 6.8 6.8.1 6.8.2 6.8.3 6.8.4 6.8.5 6.9 6.9.1 6.9.2 6.9.3 6.9.4 7.0 7.0.1 7.0.2 7.0.3 7.0.4 7.0.5 7.1 7.1.1 7.1.2 7.1.3 7.1.4 7.1.5 7.2 7.2.1 7.2.1.1 7.2.2 7.2.3 7.2.4 7.2.5 7.3 7.3.0.1 7.3.1 7.3.1.1 7.3.2 7.3.3 7.3.4 7.3.5 7.4 7.4.1 7.4.2 7.4.3 7.4.4 7.4.5 7.5 7.5.0.1 7.5.1 7.5.2 7.5.3 7.5.4 7.5.5 7.5.6 7.5.7 7.6 7.6.1 7.6.2 7.6.3 7.6.4 7.7 7.7.1 7.7.2 7.7.3 7.7.4 7.7.5 7.7.6 7.8 7.8.1 7.8.2 7.8.3 7.8.4 7.9 7.9.1 7.9.2 7.9.3 7.9.4 8.0 8.0.1 8.0.2 8.0.3 8.1 8.1.1 8.1.2 8.1.3 8.1.4 8.2 8.2.0.1 8.2.1 8.2.2 8.2.3 8.2.4 8.2.5 8.2.6 8.3 8.3.1 8.3.2 8.3.3 8.4 8.4.1 8.4.2 8.4.3 8.4.4 8.4.5 8.5 8.5.1 8.5.2 8.5.3 8.6 8.6.1 8.6.2 8.6.3 8.6.4 8.7 8.7.0.1 8.7.1 8.7.2 8.7.3 8.7.4 8.8 8.8.1 8.8.2 8.8.3 8.8.4 8.8.5 8.9 8.9.1 8.9.2 8.9.3 8.9.4 9.0 9.0.1 9.0.2 9.0.3 9.0.4 9.0.5 9.1 9.1.1 9.1.2 9.1.3 9.2 9.2.1 9.2.2 9.2.3 9.2.4 9.3 9.3.1 9.3.2 9.3.3 9.3.4 9.3.5 9.4 9.4.1 9.4.2 9.4.3 9.4.4 9.5 9.5.1 9.5.2 9.5.3 9.5.4 9.5.5 9.6 9.6.1 9.6.2 9.6.3 9.6.4 9.7 9.7.1 9.7.2 15.7-beta.2 9.7.3 15.7.1 9.8 15.8-a.1 9.8.1 15.8-a.3 9.8.2 2.0.9 9.8.3 2.1.7 9.9 2.2.10 9.9.1 2.3.10 9.9.2 2.4.7 9.9.3 2.5.5 2.6.6 2.7.5 2.8.5 2.9.6 3.0.6 3.1.5 3.2.5 3.3.6 3.4.6 3.5.6 3.6.4 3.7.5 3.8.5 3.9.10 4.0.7 4.1.4 4.2.5 4.3.5 4.4.5 4.5.3 4.6.3 4.7.4 4.8.5 4.9.3 5.0.3 5.1.4 trunk 10.0 10.0.1 10.0.2 10.1 10.1.1 10.1.2 10.2 10.2.1 10.2.2 10.2.3 10.3 10.3.1 10.3.2 10.4 10.4.1 10.4.2 10.5 10.5.1 10.5.2 10.5.3 10.6 10.6.1 10.6.2 10.7 10.7.1 10.7.2 10.8 10.8.1 10.8.2 10.9 10.9.1 10.9.2 10.9.3 11.0 11.0.1 11.0.2 11.1 11.1.1 11.1.2 11.1.3 11.1.4 11.2 11.2.1 11.2.2 11.3 11.3.1 11.3.2 11.3.3 11.3.4 11.4 11.4.1 11.4.2 11.5 11.5.1 11.5.2 11.5.3 11.6 11.6.1 11.6.2 11.7 11.7.1 11.7.2 11.7.3 11.8 11.8.3 11.8.4 11.8.5 11.8.6 11.9 11.9.1 11.9.2 11.9.3 12.0 12.0.1 12.0.2 12.1 12.1.1 12.1.2 12.2 12.2.1 12.2.2 12.3 12.3.1 12.4 12.4.1 12.5 12.5.1 12.6 12.6.1 12.6.2 12.6.3 12.7 12.7.1 12.7.2 12.8 12.8.1 12.8.2 12.9 12.9.1 12.9.2 12.9.3 12.9.4 13.0 13.0.1 13.1 13.1.1 13.1.2 13.1.3 13.1.4 13.2 13.2.1 13.2.2 13.2.3 13.3 13.3.1 13.3.2 13.4 13.4.1 13.4.2 13.4.3 13.4.4 13.5 13.5.1 13.6 13.6.1 13.7 13.7.1 13.8 13.8.1 13.8.2 13.9 13.9.1 14.0 14.1 14.2 14.2.1 14.3 14.4 14.4.1 14.5 14.6 14.7 14.8 14.9 14.9.1 15.0 15.0.1 15.0.2 15.1 15.1.1 15.2 15.3 15.3.1 15.4 15.5 15.6 15.7 15.7-a.1 15.7-a.3 15.7-a.5 15.7-a.7 15.7-beta
jetpack / jetpack_vendor / automattic / jetpack-connection / src / class-utils.php
jetpack / jetpack_vendor / automattic / jetpack-connection / src Last commit date
abilities 3 days ago connectors 3 days ago health 3 days ago identity-crisis 1 month ago sso 1 month ago traits 8 months ago webhooks 8 months ago class-authorize-json-api.php 1 month ago class-client.php 3 days ago class-connection-assets.php 1 year ago class-connection-notice.php 8 months ago class-error-handler.php 3 days ago class-external-storage.php 4 months ago class-heartbeat.php 1 month ago class-initial-state.php 3 weeks ago class-manager.php 3 days ago class-nonce-handler.php 8 months ago class-package-version-tracker.php 1 month ago class-package-version.php 3 days ago class-partner-coupon.php 2 months ago class-partner.php 2 years ago class-plugin-storage.php 8 months ago class-plugin.php 8 months ago class-rest-authentication.php 3 days ago class-rest-connector.php 3 days ago class-secrets.php 8 months ago class-server-sandbox.php 2 months ago class-site-health.php 3 days ago class-terms-of-service.php 3 days ago class-tokens-locks.php 8 months ago class-tokens.php 3 days ago class-tracking.php 3 days ago class-urls.php 6 months ago class-user-account-status.php 3 days ago class-users-connection-admin.php 2 months ago class-utils.php 2 years ago class-webhooks.php 1 month ago class-xmlrpc-async-call.php 2 years ago class-xmlrpc-connector.php 8 months ago interface-manager.php 4 years ago interface-storage-provider.php 6 months ago
class-utils.php
136 lines
1 <?php
2 /**
3 * The Jetpack Connection package Utils class file.
4 *
5 * @package automattic/jetpack-connection
6 */
7
8 namespace Automattic\Jetpack\Connection;
9
10 use Automattic\Jetpack\Tracking;
11
12 /**
13 * Provides utility methods for the Connection package.
14 */
15 class Utils {
16
17 const DEFAULT_JETPACK__API_VERSION = 1;
18 const DEFAULT_JETPACK__API_BASE = 'https://jetpack.wordpress.com/jetpack.';
19 const DEFAULT_JETPACK__WPCOM_JSON_API_BASE = 'https://public-api.wordpress.com';
20
21 /**
22 * Enters a user token into the user_tokens option
23 *
24 * @deprecated 1.24.0 Use Automattic\Jetpack\Connection\Tokens->update_user_token() instead.
25 *
26 * @param int $user_id The user id.
27 * @param string $token The user token.
28 * @param bool $is_master_user Whether the user is the master user.
29 * @return bool
30 */
31 public static function update_user_token( $user_id, $token, $is_master_user ) {
32 _deprecated_function( __METHOD__, '1.24.0', 'Automattic\\Jetpack\\Connection\\Tokens->update_user_token' );
33 return ( new Tokens() )->update_user_token( $user_id, $token, $is_master_user );
34 }
35
36 /**
37 * Filters the value of the api constant.
38 *
39 * @param String $constant_value The constant value.
40 * @param String $constant_name The constant name.
41 * @return mixed | null
42 */
43 public static function jetpack_api_constant_filter( $constant_value, $constant_name ) {
44 if ( $constant_value !== null ) {
45 // If the constant value was already set elsewhere, use that value.
46 return $constant_value;
47 }
48
49 if ( defined( "self::DEFAULT_$constant_name" ) ) {
50 return constant( "self::DEFAULT_$constant_name" );
51 }
52
53 return null;
54 }
55
56 /**
57 * Add a filter to initialize default values of the constants.
58 */
59 public static function init_default_constants() {
60 add_filter(
61 'jetpack_constant_default_value',
62 array( __CLASS__, 'jetpack_api_constant_filter' ),
63 10,
64 2
65 );
66 }
67
68 /**
69 * Filters the registration request body to include tracking properties.
70 *
71 * @param array $properties Already prepared tracking properties.
72 * @return array amended properties.
73 */
74 public static function filter_register_request_body( $properties ) {
75 $tracking = new Tracking();
76 $tracks_identity = $tracking->tracks_get_identity( get_current_user_id() );
77
78 return array_merge(
79 $properties,
80 array(
81 '_ui' => $tracks_identity['_ui'],
82 '_ut' => $tracks_identity['_ut'],
83 )
84 );
85 }
86
87 /**
88 * Generate a new user from a SSO attempt.
89 *
90 * @param object $user_data WordPress.com user information.
91 */
92 public static function generate_user( $user_data ) {
93 $username = $user_data->login;
94 /**
95 * Determines how many times the SSO module can attempt to randomly generate a user.
96 *
97 * @module sso
98 *
99 * @since jetpack-4.3.2
100 *
101 * @param int 5 By default, SSO will attempt to random generate a user up to 5 times.
102 */
103 $num_tries = (int) apply_filters( 'jetpack_sso_allowed_username_generate_retries', 5 );
104
105 $exists = username_exists( $username );
106 $tries = 0;
107 while ( $exists && $tries++ < $num_tries ) {
108 $username = $user_data->login . '_' . $user_data->ID . '_' . wp_rand();
109 $exists = username_exists( $username );
110 }
111
112 if ( $exists ) {
113 return false;
114 }
115
116 $user = (object) array();
117 $user->user_pass = wp_generate_password( 20 );
118 $user->user_login = wp_slash( $username );
119 $user->user_email = wp_slash( $user_data->email );
120 $user->display_name = $user_data->display_name;
121 $user->first_name = $user_data->first_name;
122 $user->last_name = $user_data->last_name;
123 $user->url = $user_data->url;
124 $user->description = $user_data->description;
125
126 if ( isset( $user_data->role ) && $user_data->role ) {
127 $user->role = $user_data->role;
128 }
129
130 $created_user_id = wp_insert_user( $user );
131
132 update_user_meta( $created_user_id, 'wpcom_user_id', $user_data->ID );
133 return get_userdata( $created_user_id );
134 }
135 }
136