PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 16.2
Jetpack – WP Security, Backup, Speed, & Growth v16.2
16.2 16.2-beta 12.0.3 12.1.3 12.2.3 12.3.2 12.4.2 12.5.2 12.6.4 12.7.3 12.8.3 12.9.5 13.0.2 13.1.5 13.2.4 13.3.3 13.4.5 13.5.2 13.6.2 13.7.2 13.8.3 13.9.2 14.0.1 14.1.1 14.2.2 All 502 releases
jetpack / _inc / lib / core-api / wpcom-endpoints / class-wpcom-rest-api-v2-endpoint-profile.php

class-wpcom-rest-api-v2-endpoint-profile.php in Jetpack – WP Security, Backup, Speed, & Growth 16.2, at _inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-profile.php

77 lines 2.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * REST API endpoint for user profile.
4 *
5 * @package automattic/jetpack
6 */
7
8 if ( ! defined( 'ABSPATH' ) ) {
9 exit( 0 );
10 }
11
12 /**
13 * Class WPCOM_REST_API_V2_Endpoint_Profile
14 */
15 class WPCOM_REST_API_V2_Endpoint_Profile extends WP_REST_Controller {
16 /**
17 * Constructor.
18 */
19 public function __construct() {
20 $this->namespace = 'wpcom/v2';
21 $this->rest_base = 'profile';
22 add_action( 'rest_api_init', array( $this, 'register_routes' ) );
23 }
24
25 /**
26 * Register routes.
27 */
28 public function register_routes() {
29 register_rest_route(
30 $this->namespace,
31 $this->rest_base . '/',
32 array(
33 array(
34 'methods' => WP_REST_Server::READABLE,
35 'callback' => array( $this, 'get_item' ),
36 'permission_callback' => array( $this, 'get_item_permissions_check' ),
37 ),
38 )
39 );
40 }
41
42 /**
43 * Checks if a given request has access to user profile.
44 *
45 * @param WP_REST_Request $request Full details about the request.
46 * @return true|WP_Error True if the request has read access for the item, WP_Error object otherwise.
47 */
48 public function get_item_permissions_check( $request ) { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter, VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
49 if ( ! current_user_can( 'read' ) ) {
50 return new WP_Error(
51 'rest_forbidden',
52 __( 'Sorry, you are not allowed to view your user profile on this site.', 'jetpack' ),
53 array( 'status' => rest_authorization_required_code() )
54 );
55 }
56
57 return true;
58 }
59
60 /**
61 * Retrieves the user profile.
62 *
63 * @param WP_REST_Request $request Full details about the request.
64 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
65 */
66 public function get_item( $request ) { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter, VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
67 return rest_ensure_response(
68 array(
69 'admin_color' => get_user_option( 'admin_color' ),
70 'locale' => get_user_locale(),
71 )
72 );
73 }
74 }
75
76 wpcom_rest_api_v2_load_plugin( 'WPCOM_REST_API_V2_Endpoint_Profile' );
77