PluginProbe ʕ •ᴥ•ʔ
Advanced Access Manager – Access Governance for WordPress / 5.9
Advanced Access Manager – Access Governance for WordPress v5.9
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 / Compatibility.php
advanced-access-manager / Application / Core Last commit date
Api 7 years ago ConfigPress 7 years ago Object 7 years ago Policy 7 years ago Subject 7 years ago API.php 7 years ago Cache.php 7 years ago Compatibility.php 7 years ago Config.php 7 years ago ConfigPress.php 7 years ago Console.php 7 years ago Exporter.php 7 years ago Gateway.php 7 years ago Importer.php 7 years ago JwtAuth.php 7 years ago Login.php 7 years ago Media.php 7 years ago Object.php 7 years ago Request.php 7 years ago Server.php 7 years ago Subject.php 7 years ago
Compatibility.php
274 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 * Core compatibility with older versions
12 *
13 * @package AAM
14 * @author Vasyl Martyniuk <vasyl@vasyltech.com>
15 * @todo Remove Feb 2018
16 */
17 class AAM_Core_Compatibility {
18
19 /**
20 * Convert config to the Policy Config
21 *
22 * @param string $option
23 * @param mixed $value
24 *
25 * @return mixed
26 *
27 * @access public
28 * @static
29 * @since v5.9
30 */
31 public static function convertConfig($option, $value) {
32 if (strpos($option, '.defaultTerm.') !== false && empty($value)) {
33 $param = AAM_Core_Policy_Factory::get()->getParam(
34 'post:default:category'
35 );
36 if (!empty($param)) {
37 if (!is_numeric($param)) {
38 $term = get_term_by('slug', $param, 'category');
39 $param = (is_wp_error($term) || empty($term) ? null : $term->term_id);
40 }
41 }
42 $value = (is_null($param) ? $value : $param);
43 }
44
45 return $value;
46 }
47
48 /**
49 *
50 */
51 public static function checkConfigPressCompatibility($key) {
52 if (strpos($key, 'htpasswd') === 0) {
53 $key = str_replace('htpasswd', 'feature.metabox.htpasswd', $key);
54 } elseif (strpos($key, 'export') === 0) {
55 $key = str_replace('export', 'feature.export', $key);
56 } elseif (strpos($key, 'default.category') === 0) {
57 $key = str_replace('default.category', 'feature.post.defaultTerm', $key);
58 } elseif (strpos($key, 'extention') === 0) {
59 $key = str_replace('extention', 'core.extention', $key);
60 } elseif (strpos($key, 'login') === 0) {
61 $key = str_replace('login', 'feature.secureLogin', $key);
62 }
63
64 return $key;
65 }
66
67 /**
68 * Converting metabox options from 2 dimensional to 1
69 *
70 * @param array $metaboxes
71 *
72 * @return array
73 * @todo Remove in 2021
74 */
75 public static function convertMetaboxes($metaboxes) {
76 $response = array();
77
78 if (is_array($metaboxes)) {
79 foreach($metaboxes as $key => $value) {
80 if (is_array($value)) {
81 foreach($value as $id => $grand) {
82 $response["{$key}|{$id}"] = $grand;
83 }
84 } else {
85 $response[$key] = $value;
86 }
87 }
88 }
89
90 return $response;
91 }
92
93 /**
94 *
95 * @param type $list
96 * @return type
97 * @todo Remove in 2021
98 */
99 public static function convertRoute($list) {
100 $response = array();
101
102 if (is_array($list)) {
103 foreach($list as $type => $routes) {
104 if (is_array($routes)) {
105 foreach($routes as $route => $methods) {
106 foreach($methods as $method => $grand) {
107 $response[strtolower("{$type}|{$route}|{$method}")] = $grand;
108 }
109 }
110 } else {
111 $response[$type] = $routes;
112 }
113 }
114 }
115
116 return $response;
117 }
118
119 /**
120 * Convert all-style AAM settings to standard ConfigPress style settings
121 *
122 * @param array $config
123 *
124 * @return array
125 * @since AAM 5.3.1
126 * @todo Remove June 1st 2019
127 */
128 public static function normalizeConfigOptions($config) {
129 if (is_array($config)) {
130 $changes = 0;
131 $changes += self::normalizeOption('manage-capability', 'core.settings.editCapabilities', $config);
132 $changes += self::normalizeOption('backend-access-control', 'core.settings.backendAccessControl', $config);
133 $changes += self::normalizeOption('frontend-access-control', 'core.settings.frontendAccessControl', $config);
134 $changes += self::normalizeOption('api-access-control', 'core.settings.apiAccessControl', $config);
135 $changes += self::normalizeOption('render-access-metabox', 'ui.settings.renderAccessMetabox', $config);
136 $changes += self::normalizeOption('show-access-link', 'ui.settings.renderAccessActionLink', $config);
137 $changes += self::normalizeOption('secure-login', 'core.settings.secureLogin', $config);
138 $changes += self::normalizeOption('core.xmlrpc', 'core.settings.xmlrpc', $config);
139 $changes += self::normalizeOption('core.restful', 'core.settings.restful', $config);
140 $changes += self::normalizeOption('jwt-authentication', 'core.settings.jwtAuthentication', $config);
141 $changes += self::normalizeOption('ms-member-access', 'core.settings.multisiteMemberAccessControl', $config);
142 $changes += self::normalizeOption('media-access-control', 'core.settings.mediaAccessControl', $config);
143 $changes += self::normalizeOption('manage-hidden-post-types', 'core.settings.manageHiddenPostTypes', $config);
144 $changes += self::normalizeOption('page-category', 'core.settings.pageCategory', $config);
145 $changes += self::normalizeOption('media-category', 'core.settings.mediaCategory', $config);
146 $changes += self::normalizeOption('multi-category', 'core.settings.multiCategory', $config);
147 $changes += self::normalizeOption('login-timeout', 'core.settings.loginTimeout', $config);
148 $changes += self::normalizeOption('single-session', 'core.settings.singleSession', $config);
149 $changes += self::normalizeOption('brute-force-lockout', 'core.settings.bruteForceLockout', $config);
150 $changes += self::normalizeOption('inherit-parent-post', 'core.settings.inheritParentPost', $config);
151
152 if ($changes > 0) {
153 if (is_multisite()) {
154 AAM_Core_API::updateOption('aam-utilities', $config, 'site');
155 } else {
156 AAM_Core_API::updateOption('aam-utilities', $config);
157 }
158 }
159 }
160
161 return $config;
162 }
163
164 /**
165 *
166 * @param type $option
167 * @param type $normalizedName
168 * @param type $config
169 * @return int
170 */
171 protected static function normalizeOption($option, $normalizedName, &$config) {
172 $changed = 0;
173
174 if (array_key_exists($option, $config)) {
175 $value = $config[$option];
176 unset($config[$option]);
177 $config[$normalizedName] = $value;
178 $changed = 1;
179 }
180
181 return $changed;
182 }
183
184 /**
185 * Get config
186 * @return type
187 */
188 public static function getConfig() {
189 $config = AAM_Core_API::getOption('aam-utilities', array(), 'site');
190
191 foreach(array_keys((is_array($config) ? $config : array())) as $option) {
192 if (strpos($option, 'frontend.redirect') !== false) {
193 self::convertConfigOption('redirect', $config, $option);
194 } elseif (strpos($option, 'backend.redirect') !== false) {
195 self::convertConfigOption('redirect', $config, $option);
196 } elseif (strpos($option, 'login.redirect') !== false) {
197 self::convertConfigOption('loginRedirect', $config, $option);
198 } elseif (strpos($option, 'frontend.teaser') !== false) {
199 self::convertConfigOption('teaser', $config, $option);
200 }
201 }
202
203 return self::normalizeConfigOptions($config);
204 }
205
206 /**
207 *
208 */
209 public static function initExtensions() {
210 //block deprecated extensions from loading
211 define('AAM_UTILITIES', '99');
212 define('AAM_ROLE_FILTER', '99');
213 define('AAM_POST_FILTER', '99');
214 define('AAM_REDIRECT', '99');
215 define('AAM_CONTENT_TEASER', '99');
216 define('AAM_LOGIN_REDIRECT', '99');
217 define('AAM_CONFIGPRESS', '99');
218 //TODO - Remove this in Jul 2019
219
220 //utilities option
221 add_filter('aam-utility-property', 'AAM_Core_Config::get', 10, 2);
222 }
223
224 /**
225 *
226 * @return type
227 */
228 public static function getLicenseList() {
229 $list = AAM_Core_API::getOption('aam-extensions', array(), 'site');
230
231 if (empty($list)) {
232 $list = AAM_Core_API::getOption('aam-extension-license', array(), 'site');
233 if (!empty($list)) {
234 $converted = array();
235
236 foreach($list as $title => $license) {
237 $id = strtoupper(str_replace(' ', '_', $title));
238 $converted[$id] = array('license' => $license);
239 }
240
241 AAM_Core_API::updateOption('aam-extensions', $converted);
242 AAM_Core_API::deleteOption('aam-extension-license');
243 }
244 }
245
246 return $list;
247 }
248
249 /**
250 *
251 * @staticvar type $subject
252 * @param type $oid
253 * @param type &$config
254 * @param type $option
255 *
256 * @todo Legacy remove Jul 2018
257 */
258 protected static function convertConfigOption($oid, &$config, $option) {
259 static $subject = null;
260
261 if (is_null($subject)) {
262 $subject = new AAM_Core_Subject_Default;
263 }
264
265 $object = $subject->getObject($oid);
266
267 if (is_a($object, 'AAM_Core_Subject')) {
268 $object->save($option, $config[$option]);
269 unset($config[$option]);
270 AAM_Core_API::updateOption('aam-utilities', $config);
271 }
272 }
273
274 }