PluginProbe ʕ •ᴥ•ʔ
Hostinger Tools / 3.0.71
Hostinger Tools v3.0.71
3.0.71 3.0.70 3.0.69 3.0.68 3.0.67 3.0.66 1.8.1 1.8.2 1.8.3 1.9.1 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.4 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.1.1 2.1.2 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 3.0.0 3.0.10 3.0.11 3.0.12 3.0.13 3.0.14 3.0.15 3.0.16 3.0.17 3.0.18 3.0.19 3.0.2 3.0.20 3.0.21 3.0.22 3.0.23 3.0.24 3.0.25 3.0.26 3.0.27 3.0.28 3.0.29 3.0.3 3.0.30 3.0.31 3.0.32 3.0.33 3.0.34 3.0.35 3.0.36 3.0.37 3.0.38 3.0.39 3.0.4 3.0.40 3.0.41 3.0.42 3.0.43 3.0.44 3.0.45 3.0.46 3.0.47 3.0.48 3.0.49 3.0.5 3.0.50 3.0.51 3.0.52 3.0.53 3.0.54 3.0.55 3.0.56 3.0.57 3.0.58 3.0.59 3.0.6 3.0.60 3.0.61 3.0.62 3.0.65 3.0.7 3.0.8 3.0.9 trunk 1.8.0
hostinger / includes / Rest / Routes.php
hostinger / includes / Rest Last commit date
Routes.php 1 year ago SettingsRoutes.php 10 months ago
Routes.php
106 lines
1 <?php
2
3 namespace Hostinger\Rest;
4
5 if ( ! defined( 'ABSPATH' ) ) {
6 die;
7 }
8
9 /**
10 * Class for handling Rest Api Routes
11 */
12 class Routes {
13 /**
14 * @var Settings
15 */
16 private SettingsRoutes $settings_routes;
17
18 /**
19 * @param SettingsRoutes $settings_routes Settings route class.
20 */
21 public function __construct( SettingsRoutes $settings_routes ) {
22 $this->settings_routes = $settings_routes;
23 }
24
25 /**
26 * Init rest routes
27 *
28 * @return void
29 */
30 public function init(): void {
31 add_action( 'rest_api_init', array( $this, 'register_routes' ) );
32 }
33
34 /**
35 * @return void
36 */
37 public function register_routes() {
38 // Register Settings Rest API Routes.
39 $this->register_settings_routes();
40 }
41
42 /**
43 *
44 * @return void
45 */
46 private function register_settings_routes(): void {
47 // Return settings.
48 register_rest_route(
49 HOSTINGER_PLUGIN_REST_API_BASE,
50 'get-settings',
51 array(
52 'methods' => 'GET',
53 'callback' => array( $this->settings_routes, 'get_settings' ),
54 'permission_callback' => array( $this, 'permission_check' ),
55 )
56 );
57
58 // Update settings.
59 register_rest_route(
60 HOSTINGER_PLUGIN_REST_API_BASE,
61 'update-settings',
62 array(
63 'methods' => 'POST',
64 'callback' => array( $this->settings_routes, 'update_settings' ),
65 'permission_callback' => array( $this, 'permission_check' ),
66 )
67 );
68
69 // Regenerate bypass link.
70 register_rest_route(
71 HOSTINGER_PLUGIN_REST_API_BASE,
72 'regenerate-bypass-code',
73 array(
74 'methods' => 'GET',
75 'callback' => array( $this->settings_routes, 'regenerate_bypass_code' ),
76 'permission_callback' => array( $this, 'permission_check' ),
77 )
78 );
79 }
80
81 /**
82 * @param WP_REST_Request $request WordPress rest request.
83 *
84 * @return bool
85 */
86 /** PHPCS:disable Generic.CodeAnalysis.UnusedFunctionParameter.Found */
87 public function permission_check( $request ): bool {
88 // Workaround if Rest Api endpoint cache is enabled.
89 // We don't want to cache these requests.
90 if ( has_action( 'litespeed_control_set_nocache' ) ) {
91 do_action(
92 'litespeed_control_set_nocache',
93 'Custom Rest API endpoint, not cacheable.'
94 );
95 }
96
97 if ( empty( is_user_logged_in() ) ) {
98 return false;
99 }
100
101 // Implement custom capabilities when needed.
102 return current_user_can( 'manage_options' );
103 }
104 }
105 /** PHPCS:enable */
106