Advanced Access Manager - Version 3.8.3

Version Description

  • Fixed the bug with post access inheritance
  • Update CodePinch affiliate program
Download this release

Release Info

Developer vasyl_m
Plugin Icon 128x128 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 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
- * @var array
 
 
 
 
 
 
37
  *
38
  * @access protected
39
- * @static
40
  */
41
- protected static $info = null;
42
 
43
  /**
44
- * Check CodePinch plugin status
 
 
 
 
 
 
45
  *
46
- * @return boolean
 
47
  *
48
- * @access public
49
- * @static
 
50
  */
51
- public static function installed() {
52
- $info = self::getInfo();
53
-
54
- return (!empty($info['status']) && $info['status'] != 'install');
 
 
 
 
 
 
 
 
 
 
55
  }
56
 
57
  /**
58
- * Get installation URL
59
  *
60
- * @return string
 
 
 
 
 
 
61
  *
 
 
 
 
 
 
 
 
 
 
 
62
  * @access public
63
  * @static
64
  */
65
- public static function getURL() {
66
- $info = self::getInfo();
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 static function getInfo() {
80
- if (is_null(self::$info)) {
81
- self::query();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
82
  }
 
 
 
 
 
 
 
 
83
 
84
- return self::$info;
 
 
85
  }
86
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
87
  /**
88
  * Query plugin status
89
  *
@@ -92,15 +225,127 @@ class AAM_Backend_View_CodePinch {
92
  * @access protected
93
  * @static
94
  */
95
- protected static function query() {
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( $plugin);
100
-
101
  if (!empty($result)) {
102
- self::$info = $result;
 
 
 
 
 
 
 
 
 
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 if (!AAM_Backend_View_CodePinch::installed()) { ?>
 
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('Help to improve AAM by installing free CodePinch plugin [(%sread more%s)]', 'small'), '<a href="https://wordpress.org/plugins/wp-error-fix/" target="-blank">', '</a>'); ?></p>
251
- <a href="<?php echo AAM_Backend_View_CodePinch::getURL(); ?>" class="btn btn-lg btn-primary">
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 notice!] 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,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.2
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.2
7
 
8
- Great WordPress plugin to manage access to your posts, pages, categories and
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