PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 12.0.2
Jetpack – WP Security, Backup, Speed, & Growth v12.0.2
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 / sal / class.json-api-token.php
jetpack / sal Last commit date
class.json-api-date.php 4 years ago class.json-api-links.php 4 years ago class.json-api-metadata.php 4 years ago class.json-api-platform-jetpack.php 3 years ago class.json-api-platform.php 3 years ago class.json-api-post-base.php 3 years ago class.json-api-post-jetpack.php 4 years ago class.json-api-site-base.php 3 years ago class.json-api-site-jetpack-base.php 4 years ago class.json-api-site-jetpack.php 3 years ago class.json-api-token.php 4 years ago
class.json-api-token.php
135 lines
1 <?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
2 /**
3 * SAL_Token class
4 *
5 * @package automattic/jetpack
6 */
7
8 /**
9 * Base class for Jetpack_Site, so that we have a real class instead of just passing around an array.
10 */
11 class SAL_Token {
12
13 /**
14 * The Jetpack blog ID for the site.
15 *
16 * @var int
17 */
18 public $blog_id;
19
20 /**
21 * The Jetpack user's user ID.
22 *
23 * @var int
24 */
25 public $user_id;
26
27 /**
28 * The scope for the token, for example global or auth.
29 *
30 * @var string
31 */
32 public $scope;
33
34 /**
35 * The Client ID (or WordPress.com Blog ID of this site.
36 *
37 * @var int
38 */
39 public $client_id;
40
41 /**
42 * The user ID on the local site.
43 *
44 * @var int
45 */
46 public $external_user_id;
47
48 /**
49 * Used for tokens created by Oauth clients.
50 *
51 * @var string
52 */
53 public $external_user_code;
54
55 /**
56 * The type of authorization based on where the Jetpack connection is made - eg 'calypso', 'jetpack', 'client'.
57 *
58 * @var string
59 */
60 public $auth_type;
61
62 /**
63 * Contructs the SAL_Token instance.
64 *
65 * @param int $blog_id The Jetpack blog ID for the site.
66 * @param int $user_id The Jetpack user's user ID.
67 * @param string $scope The scope for the token, for example global or auth.
68 * @param int $client_id The Client ID (or WordPress.com Blog ID of this site.
69 * @param int $external_user_id The user ID on the local site.
70 * @param string $external_user_code Used for tokens created by Oauth clients.
71 * @param string $auth_type The type of authorization based on where the Jetpack connection is made (eg. calypso).
72 */
73 public function __construct( $blog_id, $user_id, $scope, $client_id, $external_user_id, $external_user_code, $auth_type ) {
74 $this->blog_id = $blog_id; // if blog_id is set and scope is not global, limit to that blog.
75 $this->user_id = $user_id;
76 $this->client_id = $client_id;
77 $this->scope = $scope;
78 $this->external_user_id = $external_user_id;
79 $this->external_user_code = $external_user_code;
80 $this->auth_type = $auth_type;
81 }
82
83 /**
84 * Set's the scope variable to 'global'.
85 *
86 * @return string
87 */
88 public function is_global() {
89 return $scope === 'global'; // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
90 }
91
92 /**
93 * This function is used to create a SAL_Token instance with only a user id, if a token doesn't already exist.
94 *
95 * @return SAL_Token
96 */
97 public static function for_anonymous_user() {
98 return new SAL_Token(
99 null,
100 get_current_user_id(),
101 null, // there's only ever one scope in our current API implementation, auth or global.
102 null,
103 null,
104 null,
105 null
106 );
107 }
108
109 /**
110 * If a user token exists, the information is used to construct a SAL_Token with the correct parameters.
111 *
112 * @param array $token An array of details relevant to the connected user (may be empty).
113 *
114 * @return SAL_Token
115 */
116 public static function from_rest_token( $token ) {
117 $user_id = isset( $token['user_id'] ) ? $token['user_id'] : get_current_user_id();
118 $scope = isset( $token['scope'] ) ? $token['scope'][0] : null;
119 $client_id = isset( $token['client_id'] ) ? $token['client_id'] : null;
120 $external_user_id = isset( $token['external_user_id'] ) ? $token['external_user_id'] : null;
121 $external_user_code = isset( $token['external_user_code'] ) ? $token['external_user_code'] : null;
122 $auth = isset( $token['auth'] ) ? $token['auth'] : null;
123
124 return new SAL_Token(
125 $token['blog_id'],
126 $user_id,
127 $scope, // there's only ever one scope in our current API implementation, auth or global.
128 $client_id,
129 $external_user_id,
130 $external_user_code,
131 $auth
132 );
133 }
134 }
135