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