PluginProbe ʕ •ᴥ•ʔ
Advanced Access Manager – Access Governance for WordPress / 5.8.2
Advanced Access Manager – Access Governance for WordPress v5.8.2
6.8.4 6.8.5 6.9.0 6.9.1 6.9.10 6.9.11 6.9.12 6.9.13 6.9.14 6.9.15 6.9.16 6.9.17 6.9.18 6.9.19 6.9.2 6.9.20 6.9.21 6.9.22 6.9.23 6.9.24 6.9.25 6.9.26 6.9.27 6.9.28 6.9.29 6.9.3 6.9.30 6.9.31 6.9.32 6.9.33 6.9.34 6.9.35 6.9.36 6.9.37 6.9.38 6.9.39 6.9.4 6.9.41 6.9.42 6.9.43 6.9.44 6.9.45 6.9.46 6.9.47 6.9.48 6.9.49 6.9.5 6.9.51 6.9.6 6.9.7 6.9.8 6.9.9 7.0.0 7.0.0-alpha.6 7.0.0-alpha.7 7.0.0-beta.1 7.0.0-rc1 7.0.0-rc2 7.0.0-rc3 7.0.1 7.0.10 7.0.11 7.0.2 7.0.3 7.0.4 7.0.5 7.0.6 7.0.7 7.0.8 7.0.9 7.1.0 7.1.1 trunk 3.0 4.0 4.0.1 4.1 4.2 4.3 4.4 4.4.1 4.5 4.6 4.6.1 4.6.2 4.7 4.7.1 4.7.2 4.7.5 4.7.6 4.8 4.8.1 4.9 4.9.1 4.9.2 4.9.3 4.9.4 4.9.5 4.9.5.1 4.9.5.2 5.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.1 5.1.1 5.10 5.11 5.2 5.2.1 5.2.5 5.2.6 5.2.7 5.3 5.3.1 5.3.2 5.3.3 5.3.4 5.3.5 5.4 5.4.1 5.4.2 5.4.3 5.4.3.1 5.4.3.2 5.5 5.5.1 5.5.2 5.6 5.6.1 5.6.1.1 5.7 5.7.1 5.7.2 5.7.3 5.8 5.8.1 5.8.2 5.8.3 5.9 5.9.1 5.9.1.1 5.9.2 5.9.2.1 5.9.3 5.9.4 5.9.5 5.9.6 5.9.6.1 5.9.6.2 5.9.6.3 5.9.7 5.9.7.1 5.9.7.2 5.9.7.3 5.9.8 5.9.8.1 5.9.9 5.9.9.1 6.0.0 6.0.1 6.0.2 6.0.3 6.0.4 6.0.5 6.1.0 6.1.1 6.2.0 6.2.1 6.2.2 6.3.0 6.3.1 6.3.2 6.3.3 6.4.0 6.4.1 6.4.2 6.4.3 6.5.0 6.5.1 6.5.2 6.5.3 6.5.4 6.6.0 6.6.1 6.6.2 6.6.3 6.6.4 6.7.0 6.7.1 6.7.2 6.7.3 6.7.4 6.7.5 6.7.6 6.7.7 6.7.8 6.7.9 6.8.0 6.8.1 6.8.2 6.8.3
advanced-access-manager / Application / Backend / Feature / Main / Route.php
advanced-access-manager / Application / Backend / Feature / Main Last commit date
404Redirect.php 7 years ago Capability.php 7 years ago GetStarted.php 7 years ago LoginRedirect.php 7 years ago LogoutRedirect.php 7 years ago Menu.php 7 years ago Metabox.php 7 years ago Policy.php 7 years ago Post.php 7 years ago Redirect.php 7 years ago Route.php 7 years ago Toolbar.php 7 years ago Uri.php 7 years ago
Route.php
134 lines
1 <?php
2
3 /**
4 * ======================================================================
5 * LICENSE: This file is subject to the terms and conditions defined in *
6 * file 'license.txt', which is part of this source code package. *
7 * ======================================================================
8 */
9
10 /**
11 * WordPress API manager
12 *
13 * @package AAM
14 * @author Vasyl Martyniuk <vasyl@vasyltech.com>
15 */
16 class AAM_Backend_Feature_Main_Route extends AAM_Backend_Feature_Abstract {
17
18 /**
19 *
20 * @return type
21 */
22 public function getTable() {
23 $response = array('data' => $this->retrieveAllRoutes());
24
25 return wp_json_encode($response);
26 }
27
28 /**
29 *
30 * @return type
31 */
32 public function save() {
33 $type = filter_input(INPUT_POST, 'type');
34 $route = filter_input(INPUT_POST, 'route');
35 $method = filter_input(INPUT_POST, 'method');
36 $value = filter_input(INPUT_POST, 'value');
37
38 $object = AAM_Backend_Subject::getInstance()->getObject('route');
39
40 $object->save($type, $route, $method, $value);
41
42 return wp_json_encode(array('status' => 'success'));
43 }
44
45 /**
46 * @inheritdoc
47 */
48 public static function getTemplate() {
49 return 'main/route.phtml';
50 }
51
52 /**
53 *
54 * @return type
55 */
56 protected function retrieveAllRoutes() {
57 $response = array();
58 $object = AAM_Backend_Subject::getInstance()->getObject('route');
59
60 //build all RESTful routes
61 if (AAM::api()->getConfig('core.settings.restful', true)) {
62 foreach (rest_get_server()->get_routes() as $route => $handlers) {
63 $methods = array();
64 foreach($handlers as $handler) {
65 $methods = array_merge($methods, array_keys($handler['methods']));
66 }
67
68 foreach(array_unique($methods) as $method) {
69 $response[] = array(
70 'restful',
71 $method,
72 htmlspecialchars($route),
73 $object->has('restful', $route, $method) ? 'checked' : 'unchecked'
74 );
75 }
76 }
77 }
78
79 // Build XML RPC routes
80 if (AAM::api()->getConfig('core.settings.xmlrpc', true)) {
81 foreach(array_keys(AAM_Core_API::getXMLRPCServer()->methods) as $route) {
82 $response[] = array(
83 'xmlrpc',
84 'POST',
85 htmlspecialchars($route),
86 $object->has('xmlrpc', $route) ? 'checked' : 'unchecked'
87 );
88 }
89 }
90
91 return $response;
92 }
93
94 /**
95 * Check inheritance status
96 *
97 * Check if menu settings are overwritten
98 *
99 * @return boolean
100 *
101 * @access protected
102 */
103 protected function isOverwritten() {
104 $object = AAM_Backend_Subject::getInstance()->getObject('route');
105
106 return $object->isOverwritten();
107 }
108
109 /**
110 * Register Menu feature
111 *
112 * @return void
113 *
114 * @access public
115 */
116 public static function register() {
117 AAM_Backend_Feature::registerFeature((object) array(
118 'uid' => 'route',
119 'position' => 50,
120 'title' => __('API Routes', AAM_KEY),
121 'capability' => 'aam_manage_api_routes',
122 'type' => 'main',
123 'subjects' => array(
124 AAM_Core_Subject_Role::UID,
125 AAM_Core_Subject_User::UID,
126 AAM_Core_Subject_Visitor::UID,
127 AAM_Core_Subject_Default::UID
128 ),
129 'option' => 'core.settings.apiAccessControl',
130 'view' => __CLASS__
131 ));
132 }
133
134 }