PluginProbe ʕ •ᴥ•ʔ
Advanced Access Manager – Access Governance for WordPress / 5.3.5
Advanced Access Manager – Access Governance for WordPress v5.3.5
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 8 years ago Capability.php 8 years ago LoginRedirect.php 8 years ago LogoutRedirect.php 8 years ago Menu.php 8 years ago Metabox.php 8 years ago Post.php 8 years ago Redirect.php 8 years ago Route.php 8 years ago
Route.php
131 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 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 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 $routes = rest_get_server()->get_routes();
60
61 //build all RESTful routes
62 foreach ($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 // Build XML RPC routes
79 foreach(array_keys(AAM_Core_API::getXMLRPCServer()->methods) as $route) {
80 $response[] = array(
81 'xmlrpc',
82 'POST',
83 htmlspecialchars($route),
84 $object->has('xmlrpc', $route) ? 'checked' : 'unchecked'
85 );
86 }
87
88 return $response;
89 }
90
91 /**
92 * Check inheritance status
93 *
94 * Check if menu settings are overwritten
95 *
96 * @return boolean
97 *
98 * @access protected
99 */
100 protected function isOverwritten() {
101 $object = AAM_Backend_Subject::getInstance()->getObject('route');
102
103 return $object->isOverwritten();
104 }
105
106 /**
107 * Register Menu feature
108 *
109 * @return void
110 *
111 * @access public
112 */
113 public static function register() {
114 AAM_Backend_Feature::registerFeature((object) array(
115 'uid' => 'route',
116 'position' => 50,
117 'title' => __('API Routes', AAM_KEY) . ' <span class="badge">NEW</span>',
118 'capability' => 'aam_manage_api_routes',
119 'type' => 'main',
120 'subjects' => array(
121 AAM_Core_Subject_Role::UID,
122 AAM_Core_Subject_User::UID,
123 AAM_Core_Subject_Visitor::UID,
124 AAM_Core_Subject_Default::UID
125 ),
126 'option' => 'core.settings.restful',
127 'view' => __CLASS__
128 ));
129 }
130
131 }