Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
| Total | |
53.85% |
7 / 13 |
|
0.00% |
0 / 1 |
CRAP | |
0.00% |
0 / 1 |
| Jetpack_JSON_API_Modules_List_V1_2_Endpoint | |
63.64% |
7 / 11 |
|
0.00% |
0 / 1 |
9.36 | |
0.00% |
0 / 1 |
| result | |
63.64% |
7 / 11 |
|
0.00% |
0 / 1 |
9.36 | |||
| 1 | <?php |
| 2 | /** |
| 3 | * List modules v1.2 endpoint. |
| 4 | * |
| 5 | * @package automattic/jetpack |
| 6 | */ |
| 7 | |
| 8 | use Automattic\Jetpack\Status; |
| 9 | |
| 10 | if ( ! defined( 'ABSPATH' ) ) { |
| 11 | exit( 0 ); |
| 12 | } |
| 13 | |
| 14 | /** |
| 15 | * List modules v1.2 endpoint. |
| 16 | * |
| 17 | * @phan-constructor-used-for-side-effects |
| 18 | */ |
| 19 | class Jetpack_JSON_API_Modules_List_V1_2_Endpoint extends Jetpack_JSON_API_Endpoint { |
| 20 | |
| 21 | /** |
| 22 | * This endpoint allows authentication both via a blog and a user token. |
| 23 | * If a user token is used, that user should have `jetpack_manage_modules` capability. |
| 24 | * |
| 25 | * @var array|string |
| 26 | */ |
| 27 | protected $needed_capabilities = 'jetpack_manage_modules'; |
| 28 | |
| 29 | /** |
| 30 | * Fetch modules list. |
| 31 | * |
| 32 | * @return array An array of module objects. |
| 33 | */ |
| 34 | protected function result() { |
| 35 | require_once JETPACK__PLUGIN_DIR . 'class.jetpack-admin.php'; |
| 36 | |
| 37 | $is_offline_mode = ( new Status() )->is_offline_mode(); |
| 38 | |
| 39 | $modules = Jetpack_Admin::init()->get_modules(); |
| 40 | |
| 41 | foreach ( $modules as $slug => $properties ) { |
| 42 | if ( $is_offline_mode ) { |
| 43 | $requires_connection = isset( $modules[ $slug ]['requires_connection'] ) && $modules[ $slug ]['requires_connection']; |
| 44 | $requires_user_connection = isset( $modules[ $slug ]['requires_user_connection'] ) && $modules[ $slug ]['requires_user_connection']; |
| 45 | if ( |
| 46 | $requires_connection || $requires_user_connection |
| 47 | ) { |
| 48 | $modules[ $slug ]['activated'] = false; |
| 49 | } |
| 50 | } |
| 51 | } |
| 52 | |
| 53 | $modules = Jetpack::get_translated_modules( $modules ); |
| 54 | |
| 55 | return array( 'modules' => $modules ); |
| 56 | } |
| 57 | } |