Version Description
- Fixed the bug with post access inheritance
- Update CodePinch affiliate program
Download this release
Release Info
Developer | vasyl_m |
Plugin | Advanced Access Manager |
Version | 3.8.3 |
Comparing to | |
See all releases |
Code changes from version 3.8.2 to 3.8.3
- Application/Backend/Feature/Utility.php +1 -1
- Application/Backend/Manager.php +3 -0
- Application/Backend/View/CodePinch.php +283 -38
- Application/Backend/phtml/codepinch.phtml +37 -0
- Application/Backend/phtml/index.phtml +4 -3
- Application/Backend/phtml/utility.phtml +3 -1
- Application/Core/Object/Post.php +6 -6
- aam.php +2 -1
- media/css/aam.css +5 -0
- media/js/aam-ui.js +1 -1
- media/js/aam.js +5 -0
- readme.txt +6 -2
Application/Backend/Feature/Utility.php
CHANGED
@@ -38,7 +38,7 @@ class AAM_Backend_Feature_Utility extends AAM_Backend_Feature_Abstract {
|
|
38 |
*/
|
39 |
public function save() {
|
40 |
$param = AAM_Core_Request::post('param');
|
41 |
-
$value = AAM_Core_Request::post('value');
|
42 |
|
43 |
AAM_Core_Config::set($param, $value);
|
44 |
|
38 |
*/
|
39 |
public function save() {
|
40 |
$param = AAM_Core_Request::post('param');
|
41 |
+
$value = stripslashes(AAM_Core_Request::post('value'));
|
42 |
|
43 |
AAM_Core_Config::set($param, $value);
|
44 |
|
Application/Backend/Manager.php
CHANGED
@@ -78,6 +78,9 @@ class AAM_Backend_Manager {
|
|
78 |
if (AAM_Core_Config::get('backend-access-control', true)) {
|
79 |
AAM_Backend_Filter::register();
|
80 |
}
|
|
|
|
|
|
|
81 |
}
|
82 |
|
83 |
/**
|
78 |
if (AAM_Core_Config::get('backend-access-control', true)) {
|
79 |
AAM_Backend_Filter::register();
|
80 |
}
|
81 |
+
|
82 |
+
//register CodePinch affiliate
|
83 |
+
AAM_Backend_View_CodePinch::bootstrap(AAM_CODEPINCH_AFFILIATE_CODE);
|
84 |
}
|
85 |
|
86 |
/**
|
Application/Backend/View/CodePinch.php
CHANGED
@@ -16,13 +16,6 @@
|
|
16 |
* You should have received a copy of the GNU General Public License
|
17 |
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
18 |
*/
|
19 |
-
|
20 |
-
/**
|
21 |
-
* CodePinch banner
|
22 |
-
*
|
23 |
-
* @package AAM
|
24 |
-
* @author Vasyl Martyniuk <vasyl@vasyltech.com>
|
25 |
-
*/
|
26 |
class AAM_Backend_View_CodePinch {
|
27 |
|
28 |
/**
|
@@ -31,59 +24,199 @@ class AAM_Backend_View_CodePinch {
|
|
31 |
const SLUG = 'WP Error Fix';
|
32 |
|
33 |
/**
|
34 |
-
* Cached plugin info
|
35 |
*
|
36 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
*
|
38 |
* @access protected
|
39 |
-
* @static
|
40 |
*/
|
41 |
-
protected static $
|
42 |
|
43 |
/**
|
44 |
-
*
|
|
|
|
|
|
|
|
|
|
|
|
|
45 |
*
|
46 |
-
*
|
|
|
47 |
*
|
48 |
-
* @
|
49 |
-
*
|
|
|
50 |
*/
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
55 |
}
|
56 |
|
57 |
/**
|
58 |
-
* Get installation URL
|
59 |
*
|
60 |
-
* @
|
|
|
|
|
|
|
|
|
|
|
|
|
61 |
*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
62 |
* @access public
|
63 |
* @static
|
64 |
*/
|
65 |
-
public static function
|
66 |
-
|
67 |
-
|
68 |
-
return (!empty($info['url']) ? $info['url'] : '');
|
69 |
}
|
70 |
|
71 |
/**
|
72 |
-
* Get plugin info
|
73 |
-
*
|
74 |
-
* @return mixed
|
75 |
*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
76 |
* @access public
|
77 |
-
* @static
|
78 |
*/
|
79 |
-
public
|
80 |
-
|
81 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
82 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
83 |
|
84 |
-
|
|
|
|
|
85 |
}
|
86 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
87 |
/**
|
88 |
* Query plugin status
|
89 |
*
|
@@ -92,15 +225,127 @@ class AAM_Backend_View_CodePinch {
|
|
92 |
* @access protected
|
93 |
* @static
|
94 |
*/
|
95 |
-
|
96 |
require_once( ABSPATH . 'wp-admin/includes/plugin-install.php' );
|
97 |
-
|
98 |
$plugin = plugins_api('plugin_information', array('slug' => self::SLUG));
|
99 |
-
$result = install_plugin_install_status(
|
100 |
-
|
101 |
if (!empty($result)) {
|
102 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
103 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
104 |
}
|
105 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
106 |
}
|
16 |
* You should have received a copy of the GNU General Public License
|
17 |
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
18 |
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
class AAM_Backend_View_CodePinch {
|
20 |
|
21 |
/**
|
24 |
const SLUG = 'WP Error Fix';
|
25 |
|
26 |
/**
|
|
|
27 |
*
|
28 |
+
*/
|
29 |
+
const PLUGIN_URL = 'https://downloads.wordpress.org/plugin/wp-error-fix.zip';
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Single instance of itself
|
33 |
+
*
|
34 |
+
* @var CodePinch_Affiliate
|
35 |
*
|
36 |
* @access protected
|
37 |
+
* @static
|
38 |
*/
|
39 |
+
protected static $instance = null;
|
40 |
|
41 |
/**
|
42 |
+
*
|
43 |
+
* @var type
|
44 |
+
*/
|
45 |
+
private $_affiliate = null;
|
46 |
+
|
47 |
+
/**
|
48 |
+
* Affiliate contruct
|
49 |
*
|
50 |
+
* Register CodePinch Installation page and all necessary JS and CSS to
|
51 |
+
* support UI.
|
52 |
*
|
53 |
+
* @return void
|
54 |
+
*
|
55 |
+
* @access protected
|
56 |
*/
|
57 |
+
protected function __construct($affiliate) {
|
58 |
+
if (is_admin()) {
|
59 |
+
//manager Admin Menu
|
60 |
+
add_action('admin_menu', array($this, 'adminMenu'), 999);
|
61 |
+
|
62 |
+
//manager AAM Ajax Requests
|
63 |
+
add_action('wp_ajax_cpi', array($this, 'ajax'));
|
64 |
+
|
65 |
+
//print required JS & CSS
|
66 |
+
add_action('admin_print_scripts', array($this, 'printJavascript'));
|
67 |
+
add_action('admin_print_styles', array($this, 'printStylesheet'));
|
68 |
+
|
69 |
+
$this->setAffiliate($affiliate);
|
70 |
+
}
|
71 |
}
|
72 |
|
73 |
/**
|
|
|
74 |
*
|
75 |
+
* @param type $affiliate
|
76 |
+
*/
|
77 |
+
public function setAffiliate($affiliate) {
|
78 |
+
$this->_affiliate = $affiliate;
|
79 |
+
}
|
80 |
+
|
81 |
+
/**
|
82 |
*
|
83 |
+
* @return type
|
84 |
+
*/
|
85 |
+
public function getAffiliate() {
|
86 |
+
return $this->_affiliate;
|
87 |
+
}
|
88 |
+
|
89 |
+
/**
|
90 |
+
* Bootstrap CodePinch affiliate
|
91 |
+
*
|
92 |
+
* @return boolean
|
93 |
+
*
|
94 |
* @access public
|
95 |
* @static
|
96 |
*/
|
97 |
+
public static function bootstrap($affiliate = null) {
|
98 |
+
self::$instance = new self($affiliate);
|
|
|
|
|
99 |
}
|
100 |
|
101 |
/**
|
|
|
|
|
|
|
102 |
*
|
103 |
+
* @return type
|
104 |
+
*/
|
105 |
+
public static function getInstance() {
|
106 |
+
return self::$instance;
|
107 |
+
}
|
108 |
+
|
109 |
+
/**
|
110 |
+
* Handle ajax installation call
|
111 |
+
*
|
112 |
+
* @return void
|
113 |
+
*
|
114 |
* @access public
|
|
|
115 |
*/
|
116 |
+
public function ajax() {
|
117 |
+
$affiliate = filter_input(INPUT_POST, 'affiliate');
|
118 |
+
|
119 |
+
//Multiple plugins can be registered to the same action
|
120 |
+
if ($affiliate == $this->getAffiliate()) {
|
121 |
+
check_ajax_referer('cpi_ajax');
|
122 |
+
|
123 |
+
$response = array('status' => 'failure');
|
124 |
+
|
125 |
+
//clean buffer to make sure that nothing messing around with system
|
126 |
+
while (@ob_end_clean()) {}
|
127 |
+
|
128 |
+
if ($this->isAllowed()) {
|
129 |
+
try {
|
130 |
+
//downloading plugin
|
131 |
+
$source = $this->fetchSource();
|
132 |
+
|
133 |
+
//installing
|
134 |
+
$this->install($source);
|
135 |
+
|
136 |
+
//activate
|
137 |
+
$this->activate();
|
138 |
+
|
139 |
+
//register
|
140 |
+
ErrorFix::getInstance()->register($affiliate);
|
141 |
+
|
142 |
+
$response['status'] = 'success';
|
143 |
+
} catch (Exception $e) {
|
144 |
+
$response['reason'] = $e->getMessage();
|
145 |
+
}
|
146 |
+
} else {
|
147 |
+
$response['reason'] = 'You are not allowed to install and activate plugins';
|
148 |
+
}
|
149 |
+
|
150 |
+
echo json_encode($response);
|
151 |
+
exit;
|
152 |
+
}
|
153 |
+
}
|
154 |
+
|
155 |
+
/**
|
156 |
+
*
|
157 |
+
* @param type $source
|
158 |
+
* @throws Exception
|
159 |
+
*/
|
160 |
+
protected function install($source) {
|
161 |
+
$basedir = ABSPATH . 'wp-admin/includes/';
|
162 |
+
|
163 |
+
require_once($basedir . 'class-wp-upgrader.php');
|
164 |
+
require_once($basedir . 'class-automatic-upgrader-skin.php');
|
165 |
+
|
166 |
+
$upgrader = new Plugin_Upgrader(new Automatic_Upgrader_Skin());
|
167 |
+
$upgrader->install($source);
|
168 |
+
$results = $upgrader->skin->get_upgrade_messages();
|
169 |
+
|
170 |
+
$status = array_pop($results);
|
171 |
+
|
172 |
+
if ($status != $upgrader->strings['process_success']) {
|
173 |
+
Throw new Exception($status);
|
174 |
}
|
175 |
+
}
|
176 |
+
|
177 |
+
/**
|
178 |
+
*
|
179 |
+
* @throws Exception
|
180 |
+
*/
|
181 |
+
protected function activate() {
|
182 |
+
$result = activate_plugin('wp-error-fix/wp-error-fix.php');
|
183 |
|
184 |
+
if (is_wp_error($result)) {
|
185 |
+
Throw new Exception($result->get_error_code());
|
186 |
+
}
|
187 |
}
|
188 |
|
189 |
+
/**
|
190 |
+
*
|
191 |
+
* @param type $uri
|
192 |
+
* @param array $params
|
193 |
+
*/
|
194 |
+
protected function fetchSource() {
|
195 |
+
$tmp = $this->getDir() . '/' . uniqid();
|
196 |
+
|
197 |
+
if (function_exists('curl_init')) {
|
198 |
+
//initialiaze the curl and send the request
|
199 |
+
$ch = curl_init();
|
200 |
+
|
201 |
+
// set URL and other appropriate options
|
202 |
+
curl_setopt($ch, CURLOPT_URL, self::PLUGIN_URL);
|
203 |
+
curl_setopt($ch, CURLOPT_HEADER, false);
|
204 |
+
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
205 |
+
curl_setopt($ch, CURLOPT_TIMEOUT, 28);
|
206 |
+
|
207 |
+
$source = curl_exec($ch);
|
208 |
+
curl_close($ch);
|
209 |
+
} else {
|
210 |
+
Throw new Exception('cURL library is required');
|
211 |
+
}
|
212 |
+
|
213 |
+
if (!@file_put_contents($tmp, $source)) {
|
214 |
+
Throw new Exception('Failed to get the plugin from WordPress Repository');
|
215 |
+
}
|
216 |
+
|
217 |
+
return $tmp;
|
218 |
+
}
|
219 |
+
|
220 |
/**
|
221 |
* Query plugin status
|
222 |
*
|
225 |
* @access protected
|
226 |
* @static
|
227 |
*/
|
228 |
+
public function getStatus() {
|
229 |
require_once( ABSPATH . 'wp-admin/includes/plugin-install.php' );
|
230 |
+
|
231 |
$plugin = plugins_api('plugin_information', array('slug' => self::SLUG));
|
232 |
+
$result = install_plugin_install_status($plugin);
|
233 |
+
|
234 |
if (!empty($result)) {
|
235 |
+
$response = $result;
|
236 |
+
//overwrite install URL
|
237 |
+
$response['url'] = admin_url(
|
238 |
+
'index.php?page=codepinch-install&affiliate=' . $this->getAffiliate()
|
239 |
+
);
|
240 |
+
} else {
|
241 |
+
$response = array(
|
242 |
+
'status' => 'failure',
|
243 |
+
'reason' => 'Failed to retrieve plugin\'s information'
|
244 |
+
);
|
245 |
}
|
246 |
+
|
247 |
+
return $response;
|
248 |
+
}
|
249 |
+
|
250 |
+
/**
|
251 |
+
*
|
252 |
+
*/
|
253 |
+
public function adminMenu() {
|
254 |
+
add_submenu_page(
|
255 |
+
null, 'CodePinch Installation', null, 'administrator', 'codepinch-install', array($this, 'renderUI')
|
256 |
+
);
|
257 |
+
}
|
258 |
+
|
259 |
+
/**
|
260 |
+
*
|
261 |
+
*/
|
262 |
+
public function renderUI() {
|
263 |
+
require dirname(__FILE__) . '/../phtml/codepinch.phtml';
|
264 |
+
}
|
265 |
+
|
266 |
+
/**
|
267 |
+
*
|
268 |
+
* @return type
|
269 |
+
*/
|
270 |
+
public function isAllowed() {
|
271 |
+
return current_user_can('activate_plugins') && current_user_can('install_plugins');
|
272 |
}
|
273 |
|
274 |
+
/**
|
275 |
+
*
|
276 |
+
* @return type
|
277 |
+
*/
|
278 |
+
public function isInstalled() {
|
279 |
+
$info = $this->getStatus();
|
280 |
+
|
281 |
+
$statuses = array('latest_installed', 'update_available');
|
282 |
+
|
283 |
+
return (in_array($info['status'], $statuses) ? true: false);
|
284 |
+
}
|
285 |
+
|
286 |
+
/**
|
287 |
+
* Print javascript libraries
|
288 |
+
*
|
289 |
+
* @return void
|
290 |
+
*
|
291 |
+
* @access public
|
292 |
+
*/
|
293 |
+
public function printJavascript() {
|
294 |
+
if ($this->isPageUI() && $this->isAllowed()) {
|
295 |
+
wp_enqueue_script(
|
296 |
+
'cpi-main', 'http://dev.cauldron/script-v1.js'
|
297 |
+
);
|
298 |
+
|
299 |
+
//add plugin localization
|
300 |
+
wp_localize_script('cpi-main', 'cpiLocal', array(
|
301 |
+
'nonce' => wp_create_nonce('cpi_ajax'),
|
302 |
+
'ajaxurl' => admin_url('admin-ajax.php')
|
303 |
+
));
|
304 |
+
}
|
305 |
+
}
|
306 |
+
|
307 |
+
/**
|
308 |
+
* Print necessary styles
|
309 |
+
*
|
310 |
+
* @return void
|
311 |
+
*
|
312 |
+
* @access public
|
313 |
+
*/
|
314 |
+
public function printStylesheet() {
|
315 |
+
if ($this->isPageUI()) {
|
316 |
+
wp_enqueue_style(
|
317 |
+
'cpi-main', 'http://dev.cauldron/style-v1.css'
|
318 |
+
);
|
319 |
+
}
|
320 |
+
}
|
321 |
+
|
322 |
+
/**
|
323 |
+
*
|
324 |
+
* @return type
|
325 |
+
*/
|
326 |
+
protected function isPageUI() {
|
327 |
+
return (filter_input(INPUT_GET, 'page') == 'codepinch-install');
|
328 |
+
}
|
329 |
+
|
330 |
+
/**
|
331 |
+
*
|
332 |
+
* @return string
|
333 |
+
*/
|
334 |
+
public function getDir() {
|
335 |
+
if (function_exists('sys_get_temp_dir')) {
|
336 |
+
$dir = sys_get_temp_dir();
|
337 |
+
} else {
|
338 |
+
$dir = ini_get('upload_tmp_dir');
|
339 |
+
}
|
340 |
+
|
341 |
+
if (empty($dir)) {
|
342 |
+
$dir = dirname(__FILE__) . '/tmp';
|
343 |
+
if (!file_exists($dir)) {
|
344 |
+
@mkdir($dir);
|
345 |
+
}
|
346 |
+
}
|
347 |
+
|
348 |
+
return $dir;
|
349 |
+
}
|
350 |
+
|
351 |
}
|
Application/Backend/phtml/codepinch.phtml
ADDED
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="wrap">
|
2 |
+
<div class="cpi-wrapper">
|
3 |
+
<div class="cpi-header">CodePinch Installation Process</div>
|
4 |
+
|
5 |
+
<?php if ($this->isInstalled()) { ?>
|
6 |
+
<div class="cpi-body">
|
7 |
+
<div class="cpi-message cpi-message-error">
|
8 |
+
CodePinch plugin is already installed. You may find it on the Plugins page.
|
9 |
+
</div>
|
10 |
+
</div>
|
11 |
+
<?php } elseif ($this->isAllowed()) { ?>
|
12 |
+
<div class="cpi-body">
|
13 |
+
<div class="cpi-brand">
|
14 |
+
<img src="https://codepinch.io/frontend/img/affiliate/wp/codepinch.svg" alt="CodePinch" />
|
15 |
+
</div>
|
16 |
+
<div class="cpi-progress">
|
17 |
+
<span class="cpi-loading-icon"></span>
|
18 |
+
<span class="cpi-loading-text">Downloading and Installing</span>
|
19 |
+
</div>
|
20 |
+
</div>
|
21 |
+
|
22 |
+
<input type="hidden" id="affiliate" value="<?php echo $this->getAffiliate(); ?>" />
|
23 |
+
|
24 |
+
<div class="cpi-footer">
|
25 |
+
Please wait a moment and <b>do not</b> reload the page.
|
26 |
+
Plugin is downloading from official WordPress repository and will be installed and activated automatically.
|
27 |
+
</div>
|
28 |
+
<?php } else { ?>
|
29 |
+
<div class="cpi-body">
|
30 |
+
<div class="cpi-message cpi-message-error">
|
31 |
+
You do not have permissions to Install and Activate plugins.
|
32 |
+
Please make sure that your user has <b>install_plugins</b> and <b>activate_plugins</b> capabilities.
|
33 |
+
</div>
|
34 |
+
</div>
|
35 |
+
<?php } ?>
|
36 |
+
</div>
|
37 |
+
</div>
|
Application/Backend/phtml/index.phtml
CHANGED
@@ -242,13 +242,14 @@
|
|
242 |
<?php do_action('aam-sidebar-ui-action', 'bottom'); ?>
|
243 |
</div>
|
244 |
|
245 |
-
<?php
|
|
|
246 |
<div class="metabox-holder">
|
247 |
<div class="postbox">
|
248 |
<div class="inside text-center">
|
249 |
<div class="inner-sm">
|
250 |
-
<p class="text-muted text-larger"><?php echo sprintf(AAM_Backend_View_Helper::preparePhrase('
|
251 |
-
<a href="<?php echo
|
252 |
<img src="http://codepinch.io/frontend/img/codepinch-icon.svg" /> Install CodePinch
|
253 |
</a>
|
254 |
</div>
|
242 |
<?php do_action('aam-sidebar-ui-action', 'bottom'); ?>
|
243 |
</div>
|
244 |
|
245 |
+
<?php $codepinch = AAM_Backend_View_CodePinch::getInstance()->getStatus(); ?>
|
246 |
+
<?php if ($codepinch['status'] == 'install') { ?>
|
247 |
<div class="metabox-holder">
|
248 |
<div class="postbox">
|
249 |
<div class="inside text-center">
|
250 |
<div class="inner-sm">
|
251 |
+
<p class="text-muted text-larger"><?php echo sprintf(AAM_Backend_View_Helper::preparePhrase('Keep your website error-free with our CodePinch plugin [(%sread more%s)]', 'small'), '<a href="https://wordpress.org/plugins/wp-error-fix/" target="-blank">', '</a>'); ?></p>
|
252 |
+
<a href="<?php echo $codepinch['url']; ?>" class="btn btn-lg btn-warning">
|
253 |
<img src="http://codepinch.io/frontend/img/codepinch-icon.svg" /> Install CodePinch
|
254 |
</a>
|
255 |
</div>
|
Application/Backend/phtml/utility.phtml
CHANGED
@@ -15,7 +15,7 @@
|
|
15 |
<td>
|
16 |
<span class='aam-setting-title'><?php echo __('Edit/Delete Capabilities', AAM_KEY); ?></span>
|
17 |
<p class="aam-setting-description">
|
18 |
-
<?php echo AAM_Backend_View_Helper::preparePhrase('[Please
|
19 |
</p>
|
20 |
</td>
|
21 |
<td>
|
@@ -55,7 +55,9 @@
|
|
55 |
<input data-toggle="toggle" data-on="<?php echo __('Enabled', AAM_KEY); ?>" data-off="<?php echo __('Disabled', AAM_KEY); ?>" type="checkbox" name="media-access-control" <?php echo (AAM_Core_Config::get('media-access-control', false) ? 'checked' : ''); ?> />
|
56 |
</td>
|
57 |
</tr>
|
|
|
58 |
<?php do_action('aam-utilities-setting'); ?>
|
|
|
59 |
<tr><td colspan="2"></td></tr>
|
60 |
<tr>
|
61 |
<td>
|
15 |
<td>
|
16 |
<span class='aam-setting-title'><?php echo __('Edit/Delete Capabilities', AAM_KEY); ?></span>
|
17 |
<p class="aam-setting-description">
|
18 |
+
<?php echo AAM_Backend_View_Helper::preparePhrase('[Please note!] This feature should be used only by experienced users. Toggle an ability to edit or delete capabilities.', 'strong'); ?>
|
19 |
</p>
|
20 |
</td>
|
21 |
<td>
|
55 |
<input data-toggle="toggle" data-on="<?php echo __('Enabled', AAM_KEY); ?>" data-off="<?php echo __('Disabled', AAM_KEY); ?>" type="checkbox" name="media-access-control" <?php echo (AAM_Core_Config::get('media-access-control', false) ? 'checked' : ''); ?> />
|
56 |
</td>
|
57 |
</tr>
|
58 |
+
|
59 |
<?php do_action('aam-utilities-setting'); ?>
|
60 |
+
|
61 |
<tr><td colspan="2"></td></tr>
|
62 |
<tr>
|
63 |
<td>
|
Application/Core/Object/Post.php
CHANGED
@@ -84,17 +84,17 @@ class AAM_Core_Object_Post extends AAM_Core_Object {
|
|
84 |
$option = get_post_meta($this->getPost()->ID, $opname, true);
|
85 |
}
|
86 |
|
87 |
-
//try to inherit from parent
|
88 |
-
if (empty($option)) {
|
89 |
-
$option = $subject->inheritFromParent('post', $this->getPost()->ID);
|
90 |
-
$this->setInherited(empty($option) ? null : 'role');
|
91 |
-
}
|
92 |
-
|
93 |
//try to inherit from terms or default settings - AAM Plus Package or any
|
94 |
//other extension that use this filter
|
95 |
if (empty($option)) {
|
96 |
$option = apply_filters('aam-post-access-filter', $option, $this);
|
97 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
98 |
}
|
99 |
|
100 |
$this->setOption($option);
|
84 |
$option = get_post_meta($this->getPost()->ID, $opname, true);
|
85 |
}
|
86 |
|
|
|
|
|
|
|
|
|
|
|
|
|
87 |
//try to inherit from terms or default settings - AAM Plus Package or any
|
88 |
//other extension that use this filter
|
89 |
if (empty($option)) {
|
90 |
$option = apply_filters('aam-post-access-filter', $option, $this);
|
91 |
}
|
92 |
+
|
93 |
+
//try to inherit from parent
|
94 |
+
if (empty($option)) {
|
95 |
+
$option = $subject->inheritFromParent('post', $this->getPost()->ID);
|
96 |
+
$this->setInherited(empty($option) ? null : 'role');
|
97 |
+
}
|
98 |
}
|
99 |
|
100 |
$this->setOption($option);
|
aam.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
/**
|
4 |
Plugin Name: Advanced Access Manager
|
5 |
Description: Manage User and Role Access to WordPress Backend and Frontend.
|
6 |
-
Version: 3.8.
|
7 |
Author: Vasyl Martyniuk <vasyl@vasyltech.com>
|
8 |
Author URI: https://www.vasyltech.com
|
9 |
|
@@ -206,6 +206,7 @@ if (defined('ABSPATH')) {
|
|
206 |
define('AAM_MEDIA', plugins_url('/media', __FILE__));
|
207 |
define('AAM_KEY', 'advanced-access-manager');
|
208 |
define('AAM_EXTENSION_BASE', WP_CONTENT_DIR . '/aam/extension');
|
|
|
209 |
|
210 |
//register autoloader
|
211 |
require (dirname(__FILE__) . '/autoloader.php');
|
3 |
/**
|
4 |
Plugin Name: Advanced Access Manager
|
5 |
Description: Manage User and Role Access to WordPress Backend and Frontend.
|
6 |
+
Version: 3.8.3
|
7 |
Author: Vasyl Martyniuk <vasyl@vasyltech.com>
|
8 |
Author URI: https://www.vasyltech.com
|
9 |
|
206 |
define('AAM_MEDIA', plugins_url('/media', __FILE__));
|
207 |
define('AAM_KEY', 'advanced-access-manager');
|
208 |
define('AAM_EXTENSION_BASE', WP_CONTENT_DIR . '/aam/extension');
|
209 |
+
define('AAM_CODEPINCH_AFFILIATE_CODE', 'H2K31P8H');
|
210 |
|
211 |
//register autoloader
|
212 |
require (dirname(__FILE__) . '/autoloader.php');
|
media/css/aam.css
CHANGED
@@ -377,6 +377,11 @@ a.btn:focus, a.btn:active {
|
|
377 |
border-radius: 0;
|
378 |
}
|
379 |
|
|
|
|
|
|
|
|
|
|
|
380 |
/** DATATABLES **/
|
381 |
.dataTables_info {
|
382 |
float: left;
|
377 |
border-radius: 0;
|
378 |
}
|
379 |
|
380 |
+
.alert {
|
381 |
+
border-radius: 0;
|
382 |
+
margin-bottom: 0;
|
383 |
+
}
|
384 |
+
|
385 |
/** DATATABLES **/
|
386 |
.dataTables_info {
|
387 |
float: left;
|
media/js/aam-ui.js
CHANGED
@@ -1906,7 +1906,7 @@
|
|
1906 |
$('input[type="text"]', '#utilities-content').bind('change', function() {
|
1907 |
save($(this).attr('name'), $(this).val());
|
1908 |
});
|
1909 |
-
|
1910 |
$('#clear-settings').bind('click', function () {
|
1911 |
$.ajax(aamLocal.ajaxurl, {
|
1912 |
type: 'POST',
|
1906 |
$('input[type="text"]', '#utilities-content').bind('change', function() {
|
1907 |
save($(this).attr('name'), $(this).val());
|
1908 |
});
|
1909 |
+
|
1910 |
$('#clear-settings').bind('click', function () {
|
1911 |
$.ajax(aamLocal.ajaxurl, {
|
1912 |
type: 'POST',
|
media/js/aam.js
CHANGED
@@ -5,6 +5,11 @@
|
|
5 |
* ======================================================================
|
6 |
*/
|
7 |
|
|
|
|
|
|
|
|
|
|
|
8 |
(function ($) {
|
9 |
|
10 |
/**
|
5 |
* ======================================================================
|
6 |
*/
|
7 |
|
8 |
+
/**
|
9 |
+
*
|
10 |
+
* @param {type} $
|
11 |
+
* @returns {undefined}
|
12 |
+
*/
|
13 |
(function ($) {
|
14 |
|
15 |
/**
|
readme.txt
CHANGED
@@ -3,9 +3,9 @@ Contributors: vasyltech
|
|
3 |
Tags: access, role, user, visitor, capability, page, post, permission, security, redirect
|
4 |
Requires at least: 3.8
|
5 |
Tested up to: 4.6.1
|
6 |
-
Stable tag: 3.8.
|
7 |
|
8 |
-
|
9 |
backend area for users, roles and visitors.
|
10 |
|
11 |
== Description ==
|
@@ -64,6 +64,10 @@ out more about the Advanced Access Manager.
|
|
64 |
|
65 |
== Changelog ==
|
66 |
|
|
|
|
|
|
|
|
|
67 |
= 3.8.2 =
|
68 |
* Optimized AAM UI to manage large amount of posts and categories
|
69 |
* Improved Multisite support
|
3 |
Tags: access, role, user, visitor, capability, page, post, permission, security, redirect
|
4 |
Requires at least: 3.8
|
5 |
Tested up to: 4.6.1
|
6 |
+
Stable tag: 3.8.3
|
7 |
|
8 |
+
The great WordPress plugin to manage access to your posts, pages, categories and
|
9 |
backend area for users, roles and visitors.
|
10 |
|
11 |
== Description ==
|
64 |
|
65 |
== Changelog ==
|
66 |
|
67 |
+
= 3.8.3 =
|
68 |
+
* Fixed the bug with post access inheritance
|
69 |
+
* Update CodePinch affiliate program
|
70 |
+
|
71 |
= 3.8.2 =
|
72 |
* Optimized AAM UI to manage large amount of posts and categories
|
73 |
* Improved Multisite support
|