Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 13
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
Jetpack_JSON_API_Check_Capabilities_Endpoint
0.00% covered (danger)
0.00%
0 / 11
0.00% covered (danger)
0.00%
0 / 1
30
0.00% covered (danger)
0.00%
0 / 1
 callback
0.00% covered (danger)
0.00%
0 / 11
0.00% covered (danger)
0.00%
0 / 1
30
1<?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
2
3if ( ! defined( 'ABSPATH' ) ) {
4    exit( 0 );
5}
6
7/**
8 * Check capabilities endpoint class.
9 *
10 * GET /sites/%s/me/capability
11 *
12 * @phan-constructor-used-for-side-effects
13 */
14class Jetpack_JSON_API_Check_Capabilities_Endpoint extends Jetpack_JSON_API_Modules_Endpoint {
15    /**
16     *
17     * API callback.
18     *
19     * @param string $path - the path.
20     * @param int    $_blog_id - the blog ID.
21     * @param object $object - parameter is for making the method signature compatible with its parent class method.
22     * @return bool|bool[]|WP_Error
23     */
24    public function callback( $path = '', $_blog_id = 0, $object = null ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
25        // Check minimum capability and blog membership first
26        $error = $this->validate_call( $_blog_id, 'read', false );
27        if ( is_wp_error( $error ) ) {
28            return $error;
29        }
30
31        $args = $this->input();
32
33        if ( ! isset( $args['capability'] ) || empty( $args['capability'] ) ) {
34            return new WP_Error( 'missing_capability', __( 'You are required to specify a capability to check.', 'jetpack' ), 400 );
35        }
36
37        $capability = $args['capability'];
38        if ( is_array( $capability ) ) {
39            $results = array_map( 'current_user_can', $capability );
40            return array_combine( $capability, $results );
41        } else {
42            return current_user_can( $capability );
43        }
44    }
45}