PluginProbe ʕ •ᴥ•ʔ
Advanced Access Manager – Access Governance for WordPress / 5.11
Advanced Access Manager – Access Governance for WordPress v5.11
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 / Core / Object / Route.php
advanced-access-manager / application / Core / Object Last commit date
Cache.php 6 years ago Capability.php 6 years ago LoginRedirect.php 6 years ago LogoutRedirect.php 6 years ago Menu.php 6 years ago Metabox.php 6 years ago Policy.php 6 years ago Post.php 6 years ago Redirect.php 6 years ago Route.php 6 years ago Toolbar.php 6 years ago Uri.php 6 years ago Visibility.php 6 years ago
Route.php
114 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 * API route object
12 *
13 * @package AAM
14 * @author Vasyl Martyniuk <vasyl@vasyltech.com>
15 */
16 class AAM_Core_Object_Route extends AAM_Core_Object {
17
18 /**
19 * Constructor
20 *
21 * @param AAM_Core_Subject $subject
22 *
23 * @return void
24 *
25 * @access public
26 */
27 public function __construct(AAM_Core_Subject $subject) {
28 parent::__construct($subject);
29
30 $option = AAM_Core_Compatibility::convertRoute(
31 $this->getSubject()->readOption('route')
32 );
33
34 if (!empty($option)) {
35 $this->setOverwritten(true);
36 }
37
38 // Load settings from Access & Security Policy
39 if (empty($option)) {
40 $stms = AAM_Core_Policy_Factory::get($subject)->find("/^Route:/i");
41
42 foreach($stms as $key => $stm) {
43 $chunks = explode(':', $key);
44 $method = (isset($chunks[3]) ? $chunks[3] : 'post');
45 $id = "{$chunks[1]}|{$chunks[2]}|{$method}";
46
47 $option[$id] = ($stm['Effect'] === 'deny' ? 1 : 0);
48 }
49 }
50
51 if (empty($option)) {
52 $option = $this->getSubject()->inheritFromParent('route');
53 }
54
55 $this->setOption($option);
56 }
57
58 /**
59 * Check if route is denied
60 *
61 * @param string $type REST or XMLRPC
62 * @param string $route
63 * @param string $method
64 *
65 * @return boolean
66 *
67 * @access public
68 */
69 public function has($type, $route, $method = 'POST') {
70 $options = $this->getOption();
71 $id = strtolower("{$type}|{$route}|{$method}");
72
73 return !empty($options[$id]);
74 }
75
76 /**
77 * Save menu option
78 *
79 * @return bool
80 *
81 * @access public
82 */
83 public function save($type, $route, $method, $value) {
84 $option = $this->getOption();
85
86 $id = strtolower("{$type}|{$route}|{$method}");
87 $option[$id] = $value;
88
89 $this->setOption($option);
90
91 return $this->getSubject()->updateOption($this->getOption(), 'route');
92 }
93
94 /**
95 * Reset default settings
96 *
97 * @return bool
98 *
99 * @access public
100 */
101 public function reset() {
102 return $this->getSubject()->deleteOption('route');
103 }
104
105 /**
106 *
107 * @param type $external
108 * @return type
109 */
110 public function mergeOption($external) {
111 return AAM::api()->mergeSettings($external, $this->getOption(), 'route');
112 }
113
114 }