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