Advanced Access Manager - Version 3.9.1

Version Description

  • Replaced AAM Post Filter extension with core option "Large Post Number Support"
  • Removed redundant HTML permalink support
  • Visually highlighted editing role or user is administrator
  • Hide restricted actions for roles and users on User/Role Panel
  • Minor UI improvements
  • Significant improvements to post & pages access inheritance mechanism
  • Optimized caching mechanism
  • Fixed bug with post frontend access
Download this release

Release Info

Developer vasyl_m
Plugin Icon 128x128 Advanced Access Manager
Version 3.9.1
Comparing to
See all releases

Code changes from version 3.9 to 3.9.1

Application/Backend/Feature/Post.php CHANGED
@@ -232,10 +232,7 @@ class AAM_Backend_Feature_Post extends AAM_Backend_Feature_Abstract {
232
  //prepare the response object
233
  if ($object instanceof AAM_Core_Object) {
234
  $access = $object->getOption();
235
- $metadata = array(
236
- 'inherited' => $object->getInherited(),
237
- 'overwritten' => $object->isOverwritten()
238
- );
239
  } else {
240
  $access = $metadata = array();
241
  }
232
  //prepare the response object
233
  if ($object instanceof AAM_Core_Object) {
234
  $access = $object->getOption();
235
+ $metadata = array('overwritten' => $object->isOverwritten());
 
 
 
236
  } else {
237
  $access = $metadata = array();
238
  }
Application/Backend/Feature/ProductList.php CHANGED
@@ -80,15 +80,6 @@ return array(
80
  'status' => AAM_Core_Repository::getInstance()->extensionStatus('AAM Multisite'),
81
  'version' => AAM_Core_Repository::getInstance()->getExtensionVersion('AAM Multisite')
82
  ),
83
- array(
84
- 'title' => 'AAM Post Filter',
85
- 'id' => 'AAM Post Filter',
86
- 'type' => 'GNU',
87
- 'license' => 'AAMPOSTFILTER',
88
- 'description' => AAM_Backend_View_Helper::preparePhrase('[WARNING!] Please use with caution. This is a supportive exension for the post access option [LIST]. It adds additional post filtering to fix the issue with large amount of posts.', 'strong', 'strong'),
89
- 'status' => AAM_Core_Repository::getInstance()->extensionStatus('AAM Post Filter'),
90
- 'version' => AAM_Core_Repository::getInstance()->getExtensionVersion('AAM Post Filter')
91
- ),
92
  array(
93
  'title' => 'CodePinch',
94
  'id' => 'WP Error Fix',
80
  'status' => AAM_Core_Repository::getInstance()->extensionStatus('AAM Multisite'),
81
  'version' => AAM_Core_Repository::getInstance()->getExtensionVersion('AAM Multisite')
82
  ),
 
 
 
 
 
 
 
 
 
83
  array(
84
  'title' => 'CodePinch',
85
  'id' => 'WP Error Fix',
Application/Backend/Feature/Role.php CHANGED
@@ -61,7 +61,8 @@ class AAM_Backend_Feature_Role {
61
  $id,
62
  $uc,
63
  translate_user_role($data['name']),
64
- 'manage,edit,clone' . ($uc || !$allow ? ',no-delete' : ',delete')
 
65
  );
66
  }
67
 
@@ -121,7 +122,11 @@ class AAM_Backend_Feature_Role {
121
  if ($role = $roles->add_role($role_id, $name, $caps)) {
122
  $response = array(
123
  'status' => 'success',
124
- 'role' => $role_id
 
 
 
 
125
  );
126
  if (AAM_Core_Request::post('clone')) {
127
  $this->cloneSettings($role, $parent);
61
  $id,
62
  $uc,
63
  translate_user_role($data['name']),
64
+ 'manage,edit,clone' . ($uc || !$allow ? '' : ',delete'),
65
+ AAM_Core_API::maxLevel($data['capabilities'])
66
  );
67
  }
68
 
122
  if ($role = $roles->add_role($role_id, $name, $caps)) {
123
  $response = array(
124
  'status' => 'success',
125
+ 'role' => array(
126
+ 'id' => $role_id,
127
+ 'name' => $name,
128
+ 'level' => AAM_Core_API::maxLevel($caps)
129
+ )
130
  );
131
  if (AAM_Core_Request::post('clone')) {
132
  $this->cloneSettings($role, $parent);
Application/Backend/Feature/User.php CHANGED
@@ -41,14 +41,14 @@ class AAM_Backend_Feature_User {
41
  */
42
  public function getTable() {
43
  //get total number of users
44
- $total = count_users();
45
  $result = $this->query();
46
 
47
  $response = array(
48
- 'recordsTotal' => $total['total_users'],
49
  'recordsFiltered' => $result->get_total(),
50
- 'draw' => AAM_Core_Request::request('draw'),
51
- 'data' => array(),
52
  );
53
 
54
  foreach ($result->get_results() as $user) {
@@ -56,7 +56,8 @@ class AAM_Backend_Feature_User {
56
  $user->ID,
57
  implode(', ', $this->getUserRoles($user->roles)),
58
  ($user->display_name ? $user->display_name : $user->user_nicename),
59
- implode(',', $this->prepareRowActions($user))
 
60
  );
61
  }
62
 
@@ -107,7 +108,7 @@ class AAM_Backend_Feature_User {
107
  $actions[] = 'edit';
108
  $actions[] = 'switch';
109
  } else {
110
- $actions = array('no-manage', 'no-lock', 'no-edit' , 'no-switch');
111
  }
112
 
113
  return $actions;
@@ -126,18 +127,16 @@ class AAM_Backend_Feature_User {
126
  $search = trim(AAM_Core_Request::request('search.value'));
127
 
128
  $args = array(
129
- 'number' => '',
130
  'blog_id' => get_current_blog_id(),
131
- 'role' => AAM_Core_Request::request('role'),
132
- 'fields' => 'all',
133
- 'number' => AAM_Core_Request::request('length'),
134
- 'offset' => AAM_Core_Request::request('start'),
135
- 'search' => ($search ? $search . '*' : ''),
136
  'search_columns' => array(
137
  'user_login', 'user_email', 'display_name'
138
  ),
139
  'orderby' => 'user_nicename',
140
- 'order' => 'ASC'
141
  );
142
 
143
  return new WP_User_Query($args);
41
  */
42
  public function getTable() {
43
  //get total number of users
44
+ $total = count_users();
45
  $result = $this->query();
46
 
47
  $response = array(
48
+ 'recordsTotal' => $total['total_users'],
49
  'recordsFiltered' => $result->get_total(),
50
+ 'draw' => AAM_Core_Request::request('draw'),
51
+ 'data' => array(),
52
  );
53
 
54
  foreach ($result->get_results() as $user) {
56
  $user->ID,
57
  implode(', ', $this->getUserRoles($user->roles)),
58
  ($user->display_name ? $user->display_name : $user->user_nicename),
59
+ implode(',', $this->prepareRowActions($user)),
60
+ AAM_Core_API::maxLevel($user->allcaps)
61
  );
62
  }
63
 
108
  $actions[] = 'edit';
109
  $actions[] = 'switch';
110
  } else {
111
+ $actions = array();
112
  }
113
 
114
  return $actions;
127
  $search = trim(AAM_Core_Request::request('search.value'));
128
 
129
  $args = array(
 
130
  'blog_id' => get_current_blog_id(),
131
+ 'fields' => 'all',
132
+ 'number' => AAM_Core_Request::request('length'),
133
+ 'offset' => AAM_Core_Request::request('start'),
134
+ 'search' => ($search ? $search . '*' : ''),
 
135
  'search_columns' => array(
136
  'user_login', 'user_email', 'display_name'
137
  ),
138
  'orderby' => 'user_nicename',
139
+ 'order' => 'ASC'
140
  );
141
 
142
  return new WP_User_Query($args);
Application/Backend/Filter.php CHANGED
@@ -23,6 +23,11 @@ class AAM_Backend_Filter {
23
  * @access private
24
  */
25
  private static $_instance = null;
 
 
 
 
 
26
 
27
  /**
28
  * Initialize backend filters
@@ -46,14 +51,14 @@ class AAM_Backend_Filter {
46
  add_filter('post_row_actions', array($this, 'postRowActions'), 10, 2);
47
  add_action('admin_action_edit', array($this, 'adminActionEdit'));
48
 
49
- //control permalink editing
50
- add_filter('get_sample_permalink_html', array($this, 'permalinkHTML'));
51
-
52
  //wp die hook
53
  add_filter('wp_die_handler', array($this, 'backendDie'));
54
 
55
  //add post filter for LIST restriction
56
  add_filter('the_posts', array($this, 'thePosts'), 999, 2);
 
 
 
57
 
58
  //some additional filter for user capabilities
59
  add_filter('user_has_cap', array($this, 'checkUserCap'), 999, 4);
@@ -241,23 +246,6 @@ class AAM_Backend_Filter {
241
  return $function;
242
  }
243
 
244
- /**
245
- * Control edit permalink feature
246
- *
247
- * @param string $html
248
- *
249
- * @return string
250
- */
251
- public function permalinkHTML($html) {
252
- if (AAM_Core_Config::get('control_permalink') === 'true') {
253
- if (AAM::getUser()->hasCapability('manage_permalink') === false) {
254
- $html = '';
255
- }
256
- }
257
-
258
- return $html;
259
- }
260
-
261
  /**
262
  * Filter posts from the list
263
  *
@@ -287,6 +275,58 @@ class AAM_Backend_Filter {
287
  return $filtered;
288
  }
289
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
290
  /**
291
  * Check user capability
292
  *
23
  * @access private
24
  */
25
  private static $_instance = null;
26
+
27
+ /**
28
+ * pre_get_posts flag
29
+ */
30
+ protected $skip = false;
31
 
32
  /**
33
  * Initialize backend filters
51
  add_filter('post_row_actions', array($this, 'postRowActions'), 10, 2);
52
  add_action('admin_action_edit', array($this, 'adminActionEdit'));
53
 
 
 
 
54
  //wp die hook
55
  add_filter('wp_die_handler', array($this, 'backendDie'));
56
 
57
  //add post filter for LIST restriction
58
  add_filter('the_posts', array($this, 'thePosts'), 999, 2);
59
+ if (AAM_Core_Config::get('large-post-number', false)) {
60
+ add_action('pre_get_posts', array($this, 'preparePostQuery'));
61
+ }
62
 
63
  //some additional filter for user capabilities
64
  add_filter('user_has_cap', array($this, 'checkUserCap'), 999, 4);
246
  return $function;
247
  }
248
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
249
  /**
250
  * Filter posts from the list
251
  *
275
  return $filtered;
276
  }
277
 
278
+ /**
279
+ *
280
+ * @param type $query
281
+ */
282
+ public function preparePostQuery($query) {
283
+ if ($this->skip === false) {
284
+ $filtered = array();
285
+
286
+ foreach ($this->fetchPosts($query) as $id) {
287
+ if (AAM::getUser()->getObject('post', $id)->has('backend.list')) {
288
+ $filtered[] = $id;
289
+ }
290
+ }
291
+
292
+ if (isset($query->query_vars['post__not_in'])) {
293
+ $query->query_vars['post__not_in'] = array_merge(
294
+ $query->query_vars['post__not_in'], $filtered
295
+ );
296
+ } else {
297
+ $query->query_vars['post__not_in'] = $filtered;
298
+ }
299
+ }
300
+ }
301
+
302
+ /**
303
+ *
304
+ * @param type $query
305
+ * @return type
306
+ */
307
+ protected function fetchPosts($query) {
308
+ $this->skip = true;
309
+
310
+ if (!empty($query->query['post_type'])) {
311
+ $postType = $query->query['post_type'];
312
+ } elseif (!empty($query->query_vars['post_type'])) {
313
+ $postType = $query->query_vars['post_type'];
314
+ } else {
315
+ $postType = 'post';
316
+ }
317
+
318
+ $posts = get_posts(array(
319
+ 'post_type' => (is_string($postType) ? $postType : 'post'),
320
+ 'numberposts' => -1,
321
+ 'fields' => 'ids',
322
+ 'post_status' => 'any'
323
+ ));
324
+
325
+ $this->skip = false;
326
+
327
+ return $posts;
328
+ }
329
+
330
  /**
331
  * Check user capability
332
  *
Application/Backend/Manager.php CHANGED
@@ -333,10 +333,12 @@ class AAM_Backend_Manager {
333
  'editUser' => admin_url('user-edit.php'),
334
  'addUser' => admin_url('user-new.php')
335
  ),
 
336
  'subject' => array(
337
  'type' => $subject->type,
338
  'id' => $subject->id,
339
  'name' => $subject->name,
 
340
  'blog' => get_current_blog_id()
341
  ),
342
  'translation' => require (dirname(__FILE__) . '/View/Localization.php')
@@ -355,18 +357,21 @@ class AAM_Backend_Manager {
355
  if ($userId) {
356
  $u = get_user_by('id', $userId);
357
  $subject = array(
358
- 'type' => 'user',
359
- 'id' => $userId,
360
- 'name' => ($u->display_name ? $u->display_name : $u->user_nicename)
 
361
  );
362
  } else {
363
  $roles = array_keys(get_editable_roles());
364
- $role = array_shift($roles);
 
365
 
366
  $subject = array(
367
  'type' => 'role',
368
- 'id' => $role,
369
- 'name' => AAM_Core_API::getRoles()->get_role($role)->name
 
370
  );
371
  }
372
 
333
  'editUser' => admin_url('user-edit.php'),
334
  'addUser' => admin_url('user-new.php')
335
  ),
336
+ 'level' => AAM_Core_API::maxLevel(wp_get_current_user()->allcaps),
337
  'subject' => array(
338
  'type' => $subject->type,
339
  'id' => $subject->id,
340
  'name' => $subject->name,
341
+ 'level' => $subject->level,
342
  'blog' => get_current_blog_id()
343
  ),
344
  'translation' => require (dirname(__FILE__) . '/View/Localization.php')
357
  if ($userId) {
358
  $u = get_user_by('id', $userId);
359
  $subject = array(
360
+ 'type' => 'user',
361
+ 'id' => $userId,
362
+ 'name' => ($u->display_name ? $u->display_name : $u->user_nicename),
363
+ 'level' => AAM_Core_API::maxLevel($u->allcaps)
364
  );
365
  } else {
366
  $roles = array_keys(get_editable_roles());
367
+ $id = array_shift($roles);
368
+ $role = AAM_Core_API::getRoles()->get_role($id);
369
 
370
  $subject = array(
371
  'type' => 'role',
372
+ 'id' => $id,
373
+ 'name' => $role->name,
374
+ 'level' => AAM_Core_API::maxLevel($role->capabilities)
375
  );
376
  }
377
 
Application/Backend/phtml/extension.phtml CHANGED
@@ -8,7 +8,7 @@
8
  </div>
9
  </div>
10
 
11
- <label for="extension-key"><?php echo __('Install Extension', AAM_KEY); ?> <a href="#install-extension-modal" data-toggle="modal"><i class="icon-help-circled"></i></a></label>
12
  <div class="row">
13
  <div class="col-xs-8">
14
  <div class="form-group">
@@ -16,7 +16,7 @@
16
  </div>
17
  </div>
18
  <div class="col-xs-4">
19
- <button class="btn btn-primary btn-block" id="install-extension"><i class="icon-download-cloud"></i> <?php echo __('Install', AAM_KEY); ?></button>
20
  </div>
21
  </div>
22
 
@@ -118,15 +118,15 @@
118
  <h4 class="modal-title"><?php echo __('Notification', AAM_KEY); ?></h4>
119
  </div>
120
  <div class="modal-body">
121
- <p class="text-center aam-notification">
122
- <strong><span id="installation-error"></span>.</strong> <?php echo __('Extension requires manual installation. Please follow few simple steps below.', AAM_KEY); ?>
123
  </p>
124
 
125
  <ul class="aam-outer-top-xs aam-numeric-list">
126
  <li><?php echo AAM_Backend_View_Helper::preparePhrase('Click [Download] button below and save the zip archive on your computer', 'b'); ?>;</li>
127
  <li><?php echo AAM_Backend_View_Helper::preparePhrase('Connect to your website via FTP and navigate to [wp-content] folder', 'b'); ?>;</li>
128
  <li><?php echo AAM_Backend_View_Helper::preparePhrase('Create [aam/extension] folder inside [wp-content] and make sure it is writable by your server', 'b', 'b'); ?>;</li>
129
- <li><?php echo AAM_Backend_View_Helper::preparePhrase('Unzip downloaded archive and transfer the folder inside the [wp-content/aam/extension] folder', 'b'); ?>.</li>
130
  </ul>
131
  </div>
132
  <div class="modal-footer">
8
  </div>
9
  </div>
10
 
11
+ <label for="extension-key"><?php echo __('Install/Update Extension', AAM_KEY); ?> <a href="#install-extension-modal" data-toggle="modal"><i class="icon-help-circled"></i></a></label>
12
  <div class="row">
13
  <div class="col-xs-8">
14
  <div class="form-group">
16
  </div>
17
  </div>
18
  <div class="col-xs-4">
19
+ <button class="btn btn-primary btn-block" id="install-extension"><i class="icon-download-cloud"></i> <?php echo __('Submit', AAM_KEY); ?></button>
20
  </div>
21
  </div>
22
 
118
  <h4 class="modal-title"><?php echo __('Notification', AAM_KEY); ?></h4>
119
  </div>
120
  <div class="modal-body">
121
+ <p class="aam-notification">
122
+ <strong><span id="installation-error"></span></strong> <?php echo __('Extension requires manual installation. Please follow few simple steps below.', AAM_KEY); ?>
123
  </p>
124
 
125
  <ul class="aam-outer-top-xs aam-numeric-list">
126
  <li><?php echo AAM_Backend_View_Helper::preparePhrase('Click [Download] button below and save the zip archive on your computer', 'b'); ?>;</li>
127
  <li><?php echo AAM_Backend_View_Helper::preparePhrase('Connect to your website via FTP and navigate to [wp-content] folder', 'b'); ?>;</li>
128
  <li><?php echo AAM_Backend_View_Helper::preparePhrase('Create [aam/extension] folder inside [wp-content] and make sure it is writable by your server', 'b', 'b'); ?>;</li>
129
+ <li><?php echo AAM_Backend_View_Helper::preparePhrase('Unzip downloaded archive and upload the folder inside the [wp-content/aam/extension] folder', 'b'); ?>.</li>
130
  </ul>
131
  </div>
132
  <div class="modal-footer">
Application/Backend/phtml/index.phtml CHANGED
@@ -75,7 +75,7 @@
75
 
76
  <div class="postbox">
77
  <h3 class="hndle">
78
- <span><?php echo __('User/Role Panel', AAM_KEY); ?></span>
79
  <span class="aam-help-menu" data-target="#user-role-manager-inside"><i class="icon-help-circled"></i></span>
80
  </h3>
81
  <div class="inside" id="user-role-manager-inside">
@@ -94,6 +94,7 @@
94
  <th>Users</th>
95
  <th width="65%"><?php echo __('Role', AAM_KEY); ?></th>
96
  <th><?php echo __('Action', AAM_KEY); ?></th>
 
97
  </tr>
98
  </thead>
99
  <tbody></tbody>
@@ -160,24 +161,6 @@
160
  </div>
161
  </div>
162
  </div>
163
-
164
- <div class="modal fade" id="role-notification-modal" tabindex="-1" role="dialog">
165
- <div class="modal-dialog modal-sm" role="document">
166
- <div class="modal-content">
167
- <div class="modal-header">
168
- <button type="button" class="close" data-dismiss="modal" aria-label="<?php echo __('Close', AAM_KEY); ?>"><span aria-hidden="true">&times;</span></button>
169
- <h4 class="modal-title"><?php echo __('Notification', AAM_KEY); ?></h4>
170
- </div>
171
- <div class="modal-body">
172
- <p class="text-larger"><?php echo __('You are not allowed to delete this role because either you do not have a capability to "delete_users" or there is at least one user assigned to it.', AAM_KEY); ?></p>
173
- </div>
174
- <div class="modal-footer">
175
- <button type="button" class="btn btn-default" data-dismiss="modal"><?php echo __('OK', AAM_KEY); ?></button>
176
- </div>
177
- </div>
178
- </div>
179
- </div>
180
-
181
  </div>
182
  <div role="tabpanel" class="tab-pane" id="users">
183
  <table id="user-list" class="table table-striped table-bordered">
@@ -187,27 +170,11 @@
187
  <th>Roles</th>
188
  <th width="65%"><?php echo __('Username', AAM_KEY); ?></th>
189
  <th><?php echo __('Action', AAM_KEY); ?></th>
 
190
  </tr>
191
  </thead>
192
  <tbody></tbody>
193
  </table>
194
-
195
- <div class="modal fade" id="user-notification-modal" tabindex="-1" role="dialog">
196
- <div class="modal-dialog modal-sm" role="document">
197
- <div class="modal-content">
198
- <div class="modal-header">
199
- <button type="button" class="close" data-dismiss="modal" aria-label="<?php echo __('Close', AAM_KEY); ?>"><span aria-hidden="true">&times;</span></button>
200
- <h4 class="modal-title"><?php echo __('Notification', AAM_KEY); ?></h4>
201
- </div>
202
- <div class="modal-body">
203
- <p class="text-center aam-notification-message"><?php echo __('You are not allowed to perform this action.', AAM_KEY); ?></p>
204
- </div>
205
- <div class="modal-footer">
206
- <button type="button" class="btn btn-default" data-dismiss="modal"><?php echo __('OK', AAM_KEY); ?></button>
207
- </div>
208
- </div>
209
- </div>
210
- </div>
211
  </div>
212
  <div role="tabpanel" class="tab-pane" id="visitor">
213
  <div class="visitor-message">
75
 
76
  <div class="postbox">
77
  <h3 class="hndle">
78
+ <span><?php echo __('Users/Roles Panel', AAM_KEY); ?></span>
79
  <span class="aam-help-menu" data-target="#user-role-manager-inside"><i class="icon-help-circled"></i></span>
80
  </h3>
81
  <div class="inside" id="user-role-manager-inside">
94
  <th>Users</th>
95
  <th width="65%"><?php echo __('Role', AAM_KEY); ?></th>
96
  <th><?php echo __('Action', AAM_KEY); ?></th>
97
+ <th>Level</th>
98
  </tr>
99
  </thead>
100
  <tbody></tbody>
161
  </div>
162
  </div>
163
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
164
  </div>
165
  <div role="tabpanel" class="tab-pane" id="users">
166
  <table id="user-list" class="table table-striped table-bordered">
170
  <th>Roles</th>
171
  <th width="65%"><?php echo __('Username', AAM_KEY); ?></th>
172
  <th><?php echo __('Action', AAM_KEY); ?></th>
173
+ <th>Level</th>
174
  </tr>
175
  </thead>
176
  <tbody></tbody>
177
  </table>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
178
  </div>
179
  <div role="tabpanel" class="tab-pane" id="visitor">
180
  <div class="visitor-message">
Application/Backend/phtml/object/capability.phtml CHANGED
@@ -73,7 +73,7 @@
73
  <label for="capability-id"><?php echo __('Capability', AAM_KEY); ?><span class="aam-asterix">*</span></label>
74
  <input type="text" class="form-control" id="capability-id" placeholder="<?php echo __('Enter Capability', AAM_KEY); ?>" />
75
  </div>
76
- <p class="aam-info aam-hint"><?php echo AAM_Backend_View_Helper::preparePhrase('[Please notice!] Capability will be updated for all roles. Any functionality that depends on current Capability may not work properly.', 'strong'); ?></p>
77
  </div>
78
  <div class="modal-footer">
79
  <button type="button" class="btn btn-warning" id="update-capability-btn"><?php echo __('Update', AAM_KEY); ?></button>
@@ -100,7 +100,5 @@
100
  </div>
101
  </div>
102
  </div>
103
-
104
  </div>
105
- <?php
106
- }
73
  <label for="capability-id"><?php echo __('Capability', AAM_KEY); ?><span class="aam-asterix">*</span></label>
74
  <input type="text" class="form-control" id="capability-id" placeholder="<?php echo __('Enter Capability', AAM_KEY); ?>" />
75
  </div>
76
+ <p class="aam-info aam-hint"><?php echo AAM_Backend_View_Helper::preparePhrase('[Please note!] Capability will be updated for all roles. Any functionality that depends on this capability may not work properly.', 'strong'); ?></p>
77
  </div>
78
  <div class="modal-footer">
79
  <button type="button" class="btn btn-warning" id="update-capability-btn"><?php echo __('Update', AAM_KEY); ?></button>
100
  </div>
101
  </div>
102
  </div>
 
103
  </div>
104
+ <?php }
 
Application/Backend/phtml/object/menu.phtml CHANGED
@@ -1,21 +1,23 @@
1
  <?php if (defined('AAM_KEY')) { ?>
2
  <div class="aam-feature" id="admin_menu-content">
3
- <div class="row<?php echo ($this->isOverwritten() ? '' : ' hidden'); ?>">
4
  <div class="col-xs-12">
5
- <div class="aam-overwrite">
6
- <span><i class="icon-attention-circled"></i> <?php echo __('Settings are overwritten', AAM_KEY); ?></span>
7
- <span><a href="#" id="menu-reset"><?php echo __('Reset', AAM_KEY); ?></a>
8
- </div>
9
  </div>
10
  </div>
11
 
 
12
  <div class="row">
13
  <div class="col-xs-12">
14
- <p class="aam-info">
15
- <?php echo sprintf(__('For more information about Backend Menu feature check %sManage Access To Backend Menu%s article.', AAM_KEY),'<a href="https://vasyltech.com/blog/manage-access-to-wordpress-backend-menu" target="_blank">', '</a>'); ?>
16
- </p>
 
17
  </div>
18
  </div>
 
19
 
20
  <div class="panel-group" id="admin-menu" role="tablist" aria-multiselectable="true">
21
  <?php
@@ -67,5 +69,4 @@
67
  <?php } ?>
68
  </div>
69
  </div>
70
- <?php
71
- }
1
  <?php if (defined('AAM_KEY')) { ?>
2
  <div class="aam-feature" id="admin_menu-content">
3
+ <div class="row">
4
  <div class="col-xs-12">
5
+ <p class="aam-info">
6
+ <?php echo sprintf(__('For more information about Backend Menu feature check %sManage Access To Backend Menu%s article.', AAM_KEY),'<a href="https://vasyltech.com/blog/manage-access-to-wordpress-backend-menu" target="_blank">', '</a>'); ?>
7
+ </p>
 
8
  </div>
9
  </div>
10
 
11
+ <?php if ($this->isOverwritten()) { ?>
12
  <div class="row">
13
  <div class="col-xs-12">
14
+ <div class="aam-overwrite">
15
+ <span><i class="icon-attention-circled"></i> <?php echo __('Settings are overwritten', AAM_KEY); ?></span>
16
+ <span><a href="#" id="menu-reset" class="btn btn-xs btn-danger"><?php echo __('Reset To Default', AAM_KEY); ?></a>
17
+ </div>
18
  </div>
19
  </div>
20
+ <?php } ?>
21
 
22
  <div class="panel-group" id="admin-menu" role="tablist" aria-multiselectable="true">
23
  <?php
69
  <?php } ?>
70
  </div>
71
  </div>
72
+ <?php }
 
Application/Backend/phtml/object/metabox.phtml CHANGED
@@ -5,14 +5,16 @@
5
  <a href="#init-url-modal" class="btn btn-xs btn-primary" data-toggle="modal"><i class="icon-link"></i> <?php echo __('Init URL', AAM_KEY); ?></a>
6
  </div>
7
 
8
- <div class="row<?php echo ($this->isOverwritten() ? '' : ' hidden'); ?>">
 
9
  <div class="col-xs-12">
10
  <div class="aam-overwrite">
11
  <span><i class="icon-attention-circled"></i> <?php echo __('Settings are overwritten', AAM_KEY); ?></span>
12
- <span><a href="#" id="metabox-reset"><?php echo __('Reset', AAM_KEY); ?></a>
13
  </div>
14
  </div>
15
  </div>
 
16
 
17
  <?php
18
  global $wp_post_types;
5
  <a href="#init-url-modal" class="btn btn-xs btn-primary" data-toggle="modal"><i class="icon-link"></i> <?php echo __('Init URL', AAM_KEY); ?></a>
6
  </div>
7
 
8
+ <?php if ($this->isOverwritten()) { ?>
9
+ <div class="row">
10
  <div class="col-xs-12">
11
  <div class="aam-overwrite">
12
  <span><i class="icon-attention-circled"></i> <?php echo __('Settings are overwritten', AAM_KEY); ?></span>
13
+ <span><a href="#" id="metabox-reset" class="btn btn-xs btn-danger"><?php echo __('Reset To Default', AAM_KEY); ?></a>
14
  </div>
15
  </div>
16
  </div>
17
+ <?php } ?>
18
 
19
  <?php
20
  global $wp_post_types;
Application/Backend/phtml/object/post.phtml CHANGED
@@ -4,7 +4,15 @@
4
  <div class="row">
5
  <div class="col-xs-12">
6
  <p class="aam-notification">
7
- <?php echo AAM_Backend_View_Helper::preparePhrase('You are allowed to manage access up to 10 posts, pages or custom post types. Consider to purchase [AAM Plus Package] extension to unlock this limitation.', 'b'); ?>
 
 
 
 
 
 
 
 
8
  </p>
9
  </div>
10
  </div>
@@ -24,12 +32,7 @@
24
 
25
  <div class="aam-overwrite hidden" id="post-overwritten">
26
  <span><i class="icon-attention-circled"></i> <?php echo __('Settings are overwritten', AAM_KEY); ?></span>
27
- <span><a href="#" id="post-reset" class="btn btn-xs btn-danger"><?php echo __('Reset', AAM_KEY); ?></a></span>
28
- </div>
29
-
30
- <div class="aam-inherited hidden" id="post-inherited">
31
- <span><?php echo __('Settings inherited from', AAM_KEY); ?> <strong id="post-parent"></strong></span>
32
- <span></span>
33
  </div>
34
 
35
  <?php if (!is_null($current)) { ?>
4
  <div class="row">
5
  <div class="col-xs-12">
6
  <p class="aam-notification">
7
+ <?php echo sprintf(AAM_Backend_View_Helper::preparePhrase('You are allowed to manage access up to 10 posts, pages or custom post types. Consider to purchase [AAM Plus Package] extension to unlock this limitation. For more information about post access control check %sthis article%s.', 'b'), '<a href="https://vasyltech.com/blog/manage-access-to-posts-and-pages" target="_blank">', '</a>'); ?>
8
+ </p>
9
+ </div>
10
+ </div>
11
+ <?php } else { ?>
12
+ <div class="row">
13
+ <div class="col-xs-12">
14
+ <p class="aam-info">
15
+ <?php echo sprintf(__('Learn more about post & pages access control from %sthis article%s.'), '<a href="https://vasyltech.com/blog/manage-access-to-posts-and-pages" target="_blank">', '</a>'); ?>
16
  </p>
17
  </div>
18
  </div>
32
 
33
  <div class="aam-overwrite hidden" id="post-overwritten">
34
  <span><i class="icon-attention-circled"></i> <?php echo __('Settings are overwritten', AAM_KEY); ?></span>
35
+ <span><a href="#" id="post-reset" class="btn btn-xs btn-danger"><?php echo __('Reset To Default', AAM_KEY); ?></a></span>
 
 
 
 
 
36
  </div>
37
 
38
  <?php if (!is_null($current)) { ?>
Application/Backend/phtml/utility.phtml CHANGED
@@ -55,6 +55,17 @@
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
 
@@ -78,10 +89,10 @@
78
  <div class="modal-content">
79
  <div class="modal-header">
80
  <button type="button" class="close" data-dismiss="modal" aria-label="<?php echo __('Close', AAM_KEY); ?>"><span aria-hidden="true">&times;</span></button>
81
- <h4 class="modal-title"><?php echo __('Clear All Settings', AAM_KEY); ?></h4>
82
  </div>
83
  <div class="modal-body">
84
- <p class="text-center text-larger"><?php echo __('All settings related to AAM will be removed. Please confirm your action.', AAM_KEY); ?></p>
85
  </div>
86
  <div class="modal-footer">
87
  <button type="button" class="btn btn-danger" id="clear-settings"><?php echo __('Clear', AAM_KEY); ?></button>
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
+ <tr>
59
+ <td>
60
+ <span class='aam-setting-title'><?php echo __('Large Post Number Support', AAM_KEY); ?></span>
61
+ <p class="aam-setting-description">
62
+ <?php echo AAM_Backend_View_Helper::preparePhrase('[Use cautiously!] With large amount of posts, a native WordPress pagination does not take in consideration AAM access settings. Enable this option if you restrict posts from LISTing on frontend or backend.', 'strong'); ?>
63
+ </p>
64
+ </td>
65
+ <td>
66
+ <input data-toggle="toggle" data-on="<?php echo __('Enabled', AAM_KEY); ?>" data-off="<?php echo __('Disabled', AAM_KEY); ?>" type="checkbox" name="large-post-number" <?php echo (AAM_Core_Config::get('large-post-number', false) ? 'checked' : ''); ?> />
67
+ </td>
68
+ </tr>
69
 
70
  <?php do_action('aam-utilities-setting'); ?>
71
 
89
  <div class="modal-content">
90
  <div class="modal-header">
91
  <button type="button" class="close" data-dismiss="modal" aria-label="<?php echo __('Close', AAM_KEY); ?>"><span aria-hidden="true">&times;</span></button>
92
+ <h4 class="modal-title"><?php echo __('Clear all settings', AAM_KEY); ?></h4>
93
  </div>
94
  <div class="modal-body">
95
+ <p class="text-center alert alert-danger text-larger"><?php echo __('All AAM settings will be removed.', AAM_KEY); ?></p>
96
  </div>
97
  <div class="modal-footer">
98
  <button type="button" class="btn btn-danger" id="clear-settings"><?php echo __('Clear', AAM_KEY); ?></button>
Application/Core/API.php CHANGED
@@ -278,5 +278,22 @@ final class AAM_Core_API {
278
 
279
  @rmdir($pathname);
280
  }
281
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
282
  }
278
 
279
  @rmdir($pathname);
280
  }
281
+
282
+ /**
283
+ *
284
+ * @return type
285
+ */
286
+ public static function version() {
287
+ if (file_exists(ABSPATH . 'wp-admin/includes/plugin.php')) {
288
+ require_once ABSPATH . 'wp-admin/includes/plugin.php';
289
+ }
290
+
291
+ if (function_exists('get_plugin_data')) {
292
+ $data = get_plugin_data(dirname(__FILE__) . '/../../aam.php');
293
+ $version = (isset($data['Version']) ? $data['Version'] : null);
294
+ }
295
+
296
+ return (!empty($version) ? $version : null);
297
+ }
298
+
299
  }
Application/Core/Cache.php CHANGED
@@ -54,17 +54,20 @@ class AAM_Core_Cache {
54
  /**
55
  * Set cache option
56
  *
57
- * @param string $option
58
- * @param mixed $data
 
59
  *
60
  * @return void
61
  *
62
  * @access public
63
  */
64
- public static function set($option, $data) {
65
- if (!isset(self::$cache[$option]) || self::$cache[$option] != $data) {
66
- self::$cache[$option] = $data;
67
- self::$updated = true;
 
 
68
  }
69
  }
70
 
54
  /**
55
  * Set cache option
56
  *
57
+ * @param AAM_Core_Subject $subject
58
+ * @param string $option
59
+ * @param mixed $data
60
  *
61
  * @return void
62
  *
63
  * @access public
64
  */
65
+ public static function set($subject, $option, $data) {
66
+ if ($subject instanceof AAM_Core_Subject_User) { //cache only for actual user
67
+ if (!isset(self::$cache[$option]) || self::$cache[$option] != $data) {
68
+ self::$cache[$option] = $data;
69
+ self::$updated = true;
70
+ }
71
  }
72
  }
73
 
Application/Core/Object.php CHANGED
@@ -41,6 +41,18 @@ abstract class AAM_Core_Object {
41
  * @access private
42
  */
43
  private $_inherited = null;
 
 
 
 
 
 
 
 
 
 
 
 
44
 
45
  /**
46
  * Constructor
@@ -128,23 +140,27 @@ abstract class AAM_Core_Object {
128
  }
129
 
130
  /**
131
- * Check if options were overwritten
 
 
132
  *
133
- * In order to consider options overwritten there are three conditions to be met:
134
- * - Current subject has to have the parent subject;
135
- * - Current object should have no empty option set;
136
- * - The inherited flad should be null;
 
 
 
 
 
 
137
  *
138
  * @return boolean
139
  *
140
  * @access public
141
  */
142
  public function isOverwritten () {
143
- $parent = $this->getSubject()->hasParent();
144
- $option = $this->getOption();
145
- $inherit = $this->getInherited();
146
-
147
- return ($parent && !empty($option) && is_null($inherit));
148
  }
149
 
150
  }
41
  * @access private
42
  */
43
  private $_inherited = null;
44
+
45
+ /**
46
+ * Overwritten indicator
47
+ *
48
+ * If settings for specific object were detected befor inheritance mechanism
49
+ * kicked off, then it it considered overwritten
50
+ *
51
+ * @var boolean
52
+ *
53
+ * @access private
54
+ */
55
+ private $_overwritten = false;
56
 
57
  /**
58
  * Constructor
140
  }
141
 
142
  /**
143
+ * Set overwritten flat
144
+ *
145
+ * @param boolean $overwritten
146
  *
147
+ * @return void
148
+ *
149
+ * @access public
150
+ */
151
+ public function setOverwritten($overwritten = true) {
152
+ $this->_overwritten = $overwritten;
153
+ }
154
+
155
+ /**
156
+ * Check if options are overwritten
157
  *
158
  * @return boolean
159
  *
160
  * @access public
161
  */
162
  public function isOverwritten () {
163
+ return $this->_overwritten;
 
 
 
 
164
  }
165
 
166
  }
Application/Core/Object/Menu.php CHANGED
@@ -31,7 +31,8 @@ class AAM_Core_Object_Menu extends AAM_Core_Object {
31
 
32
  if (empty($option)) {
33
  $option = $this->getSubject()->inheritFromParent('menu');
34
- $this->setInherited(empty($option) ? null : 'role');
 
35
  }
36
 
37
  $this->setOption($option);
31
 
32
  if (empty($option)) {
33
  $option = $this->getSubject()->inheritFromParent('menu');
34
+ } else {
35
+ $this->setOverwritten(true);
36
  }
37
 
38
  $this->setOption($option);
Application/Core/Object/Metabox.php CHANGED
@@ -31,7 +31,8 @@ class AAM_Core_Object_Metabox extends AAM_Core_Object {
31
 
32
  if (empty($option)) {
33
  $option = $this->getSubject()->inheritFromParent('metabox');
34
- $this->setInherited(empty($option) ? null : 'role');
 
35
  }
36
 
37
  $this->setOption($option);
31
 
32
  if (empty($option)) {
33
  $option = $this->getSubject()->inheritFromParent('metabox');
34
+ } else {
35
+ $this->setOverwritten(true);
36
  }
37
 
38
  $this->setOption($option);
Application/Core/Object/Post.php CHANGED
@@ -80,8 +80,10 @@ class AAM_Core_Object_Post extends AAM_Core_Object {
80
  if ($option === false) { //if false, then the cache is empty but exist
81
  $option = array();
82
  } else {
 
83
  if (empty($option)) { //no cache for this element
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
@@ -90,17 +92,16 @@ class AAM_Core_Object_Post extends AAM_Core_Object {
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);
101
 
102
- //if cache is on and result is empty, simply cache the false to speed-up
103
- AAM_Core_Cache::set($chname, (empty($option) ? false : $option));
104
  }
105
 
106
  /**
@@ -192,22 +193,4 @@ class AAM_Core_Object_Post extends AAM_Core_Object {
192
  return $this->_post;
193
  }
194
 
195
- /**
196
- * Check if options were overwritten
197
- *
198
- * In order to consider options overwritten there are three conditions to be met:
199
- * - Current object should have no empty option set;
200
- * - The inherited flad should be null;
201
- *
202
- * @return boolean
203
- *
204
- * @access public
205
- */
206
- public function isOverwritten () {
207
- $option = $this->getOption();
208
- $inherit = $this->getInherited();
209
-
210
- return (!empty($option) && is_null($inherit));
211
- }
212
-
213
  }
80
  if ($option === false) { //if false, then the cache is empty but exist
81
  $option = array();
82
  } else {
83
+ //Cache is empty. Get post access for current subject (user or role)
84
  if (empty($option)) { //no cache for this element
85
  $option = get_post_meta($this->getPost()->ID, $opname, true);
86
+ $this->setOverwritten(!empty($option));
87
  }
88
 
89
  //try to inherit from terms or default settings - AAM Plus Package or any
92
  $option = apply_filters('aam-post-access-filter', $option, $this);
93
  }
94
 
95
+ //No settings for a post. Try to inherit from the parent
96
  if (empty($option)) {
97
  $option = $subject->inheritFromParent('post', $this->getPost()->ID);
 
98
  }
99
  }
100
 
101
  $this->setOption($option);
102
 
103
+ //if result is empty, simply cache the false to speed-up
104
+ AAM_Core_Cache::set($subject, $chname, (empty($option) ? false : $option));
105
  }
106
 
107
  /**
193
  return $this->_post;
194
  }
195
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
196
  }
Application/Core/Repository.php CHANGED
@@ -113,8 +113,9 @@ class AAM_Core_Repository {
113
  *
114
  */
115
  protected function integrateUtility() {
116
- //block AAM Utilities Extension from load
117
  define('AAM_UTILITIES', '99');
 
118
  //TODO - Remove this in Jul 2017
119
 
120
  //caching filter & action
@@ -252,7 +253,7 @@ class AAM_Core_Repository {
252
  */
253
  protected function prepareExtensionCache() {
254
  if (empty($this->cache)) {
255
- $list = AAM_Core_API::getOption('aam-extension-repository', array());
256
  $licenses = AAM_Core_API::getOption('aam-extension-license', array());
257
 
258
  //WP Error Fix bug report
113
  *
114
  */
115
  protected function integrateUtility() {
116
+ //block AAM Utilities and Post Filter Extension from load
117
  define('AAM_UTILITIES', '99');
118
+ define('AAM_POST_FILTER', '99');
119
  //TODO - Remove this in Jul 2017
120
 
121
  //caching filter & action
253
  */
254
  protected function prepareExtensionCache() {
255
  if (empty($this->cache)) {
256
+ $list = AAM_Core_API::getOption('aam-extension-repository', array());
257
  $licenses = AAM_Core_API::getOption('aam-extension-license', array());
258
 
259
  //WP Error Fix bug report
Application/Core/Server.php CHANGED
@@ -32,7 +32,10 @@ final class AAM_Core_Server {
32
  * @access public
33
  */
34
  public static function check() {
35
- $response = self::send(self::SERVER_URL . '/check');
 
 
 
36
  $result = array();
37
  if (!is_wp_error($response)) {
38
  //WP Error Fix bug report
32
  * @access public
33
  */
34
  public static function check() {
35
+ $domain = parse_url(site_url(), PHP_URL_HOST);
36
+ $response = self::send(
37
+ self::SERVER_URL . '/check?domain=' . urlencode($domain)
38
+ );
39
  $result = array();
40
  if (!is_wp_error($response)) {
41
  //WP Error Fix bug report
Application/Core/Subject.php CHANGED
@@ -288,7 +288,9 @@ abstract class AAM_Core_Subject {
288
  *
289
  * @access public
290
  */
291
- abstract public function getParent();
 
 
292
 
293
  /**
294
  * Check if subject has parent
288
  *
289
  * @access public
290
  */
291
+ public function getParent() {
292
+ return null;
293
+ }
294
 
295
  /**
296
  * Check if subject has parent
Application/Core/Subject/Role.php CHANGED
@@ -95,7 +95,7 @@ class AAM_Core_Subject_Role extends AAM_Core_Subject {
95
  * @access public
96
  */
97
  public function removeCapability($capability) {
98
- $this->getSubject()->remove_cap($capability);
99
 
100
  return true;
101
  }
95
  * @access public
96
  */
97
  public function removeCapability($capability) {
98
+ $this->getSubject()->add_cap($capability, false);
99
 
100
  return true;
101
  }
Application/Frontend/Manager.php CHANGED
@@ -23,6 +23,11 @@ class AAM_Frontend_Manager {
23
  * @access private
24
  */
25
  private static $_instance = null;
 
 
 
 
 
26
 
27
  /**
28
  * Construct the manager
@@ -50,6 +55,9 @@ class AAM_Frontend_Manager {
50
  add_filter('wp_authenticate_user', array($this, 'authenticate'), 1, 2);
51
  //add post filter for LIST restriction
52
  add_filter('the_posts', array($this, 'thePosts'), 999, 2);
 
 
 
53
  //filter post content
54
  add_filter('the_content', array($this, 'theContent'), 999);
55
  //admin bar
@@ -75,7 +83,15 @@ class AAM_Frontend_Manager {
75
  * @global WP_Post $post
76
  */
77
  public function wp() {
78
- global $post;
 
 
 
 
 
 
 
 
79
 
80
  if (is_a($post, 'WP_Post')) {
81
  $this->checkPostReadAccess($post);
@@ -291,6 +307,57 @@ class AAM_Frontend_Manager {
291
  return $filtered;
292
  }
293
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
294
  /**
295
  *
296
  * @global WP_Post $post
23
  * @access private
24
  */
25
  private static $_instance = null;
26
+
27
+ /**
28
+ * pre_get_posts flag
29
+ */
30
+ protected $skip = false;
31
 
32
  /**
33
  * Construct the manager
55
  add_filter('wp_authenticate_user', array($this, 'authenticate'), 1, 2);
56
  //add post filter for LIST restriction
57
  add_filter('the_posts', array($this, 'thePosts'), 999, 2);
58
+ if (AAM_Core_Config::get('large-post-number', false)) {
59
+ add_action('pre_get_posts', array($this, 'preparePostQuery'));
60
+ }
61
  //filter post content
62
  add_filter('the_content', array($this, 'theContent'), 999);
63
  //admin bar
83
  * @global WP_Post $post
84
  */
85
  public function wp() {
86
+ global $wp_query;
87
+
88
+ if (!empty($wp_query->queried_object)) {
89
+ $post = $wp_query->queried_object;
90
+ } elseif (!empty($wp_query->post)) {
91
+ $post = $wp_query->post;
92
+ } else {
93
+ $post = null;
94
+ }
95
 
96
  if (is_a($post, 'WP_Post')) {
97
  $this->checkPostReadAccess($post);
307
  return $filtered;
308
  }
309
 
310
+ /**
311
+ *
312
+ * @param type $query
313
+ */
314
+ public function preparePostQuery($query) {
315
+ if ($this->skip === false) {
316
+ $filtered = array();
317
+
318
+ foreach ($this->fetchPosts($query) as $id) {
319
+ if (AAM::getUser()->getObject('post', $id)->has('frontend.list')) {
320
+ $filtered[] = $id;
321
+ }
322
+ }
323
+
324
+ if (isset($query->query_vars['post__not_in'])) {
325
+ $query->query_vars['post__not_in'] = array_merge(
326
+ $query->query_vars['post__not_in'], $filtered
327
+ );
328
+ } else {
329
+ $query->query_vars['post__not_in'] = $filtered;
330
+ }
331
+ }
332
+ }
333
+
334
+ /**
335
+ *
336
+ * @param type $query
337
+ * @return type
338
+ */
339
+ protected function fetchPosts($query) {
340
+ $this->skip = true;
341
+
342
+ if (!empty($query->query['post_type'])) {
343
+ $postType = $query->query['post_type'];
344
+ } elseif (!empty($query->query_vars['post_type'])) {
345
+ $postType = $query->query_vars['post_type'];
346
+ } else {
347
+ $postType = 'post';
348
+ }
349
+
350
+ $posts = get_posts(array(
351
+ 'post_type' => (is_string($postType) ? $postType : 'post'),
352
+ 'numberposts' => -1,
353
+ 'fields' => 'ids'
354
+ ));
355
+
356
+ $this->skip = false;
357
+
358
+ return $posts;
359
+ }
360
+
361
  /**
362
  *
363
  * @global WP_Post $post
Lang/advanced-access-manager-en_US.mo CHANGED
Binary file
Lang/advanced-access-manager-en_US.po CHANGED
@@ -1,13 +1,13 @@
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: AAM\n"
4
- "POT-Creation-Date: 2016-08-07 19:46-0400\n"
5
  "PO-Revision-Date: \n"
6
  "Language-Team: WP AAM <vasyl@vasyltech.com>\n"
7
  "MIME-Version: 1.0\n"
8
  "Content-Type: text/plain; charset=UTF-8\n"
9
  "Content-Transfer-Encoding: 8bit\n"
10
- "X-Generator: Poedit 1.8.8\n"
11
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
12
  "X-Poedit-SourceCharset: UTF-8\n"
13
  "X-Poedit-KeywordsList: __\n"
@@ -16,234 +16,240 @@ msgstr ""
16
  "Language: en_US\n"
17
  "X-Poedit-SearchPath-0: .\n"
18
 
19
- #: media/js/aam-ui.js:43 Application/Backend/View/Localization.php:23
20
  msgid "Loading..."
21
  msgstr ""
22
 
23
- #: media/js/aam-ui.js:48 Application/Backend/View/Localization.php:24
24
- #: Application/Backend/phtml/index.phtml:103
25
  msgid "Select Role"
26
  msgstr ""
27
 
28
- #: media/js/aam-ui.js:82 Application/Backend/View/Localization.php:25
29
  msgid "Search Role"
30
  msgstr ""
31
 
32
- #: media/js/aam-ui.js:83 Application/Backend/View/Localization.php:26
33
  msgid "_TOTAL_ role(s)"
34
  msgstr ""
35
 
36
- #: media/js/aam-ui.js:90 media/js/aam-ui.js:440
37
  #: Application/Backend/View/Localization.php:27
38
- #: Application/Backend/phtml/index.phtml:108
39
- #: Application/Backend/phtml/object/capability.phtml:26
40
- #: Application/Backend/phtml/object/capability.phtml:55
41
  msgid "Create"
42
  msgstr ""
43
 
44
- #: media/js/aam-ui.js:115 Application/Backend/View/Localization.php:28
45
- #: Application/Backend/phtml/index.phtml:71
46
- #: Application/Backend/phtml/index.phtml:221
47
  msgid "Users"
48
  msgstr ""
49
 
50
- #: media/js/aam-ui.js:143 Application/Backend/View/Localization.php:45
51
  msgid "Manage Role"
52
  msgstr ""
53
 
54
- #: media/js/aam-ui.js:158 Application/Backend/View/Localization.php:46
55
  msgid "Edit Role Name"
56
  msgstr ""
57
 
58
- #: media/js/aam-ui.js:177 media/js/aam-ui.js:317
 
 
 
 
59
  #: Application/Backend/View/Localization.php:35
60
  #: Application/Backend/View/Localization.php:47
61
- #: Application/Backend/phtml/index.phtml:141
62
  msgid "Delete Role"
63
  msgstr ""
64
 
65
- #: media/js/aam-ui.js:220 media/js/aam-ui.js:264 media/js/aam-ui.js:1002
66
- #: media/js/aam-ui.js:1048 Application/Backend/View/Localization.php:13
67
  msgid "Saving..."
68
  msgstr ""
69
 
70
- #: media/js/aam-ui.js:228 Application/Backend/View/Localization.php:29
71
  msgid "Failed to add new role"
72
  msgstr ""
73
 
74
- #: media/js/aam-ui.js:233 media/js/aam-ui.js:276 media/js/aam-ui.js:313
75
- #: media/js/aam-ui.js:405 media/js/aam-ui.js:753 media/js/aam-ui.js:790
76
- #: media/js/aam-ui.js:1015 media/js/aam-ui.js:1061 media/js/aam-ui.js:1102
77
- #: media/js/aam-ui.js:1257 media/js/aam-ui.js:1304 media/js/aam-ui.js:1554
78
- #: media/js/aam-ui.js:1627 media/js/aam.js:193
 
79
  #: Application/Backend/View/Localization.php:15
80
  msgid "Application error"
81
  msgstr ""
82
 
83
- #: media/js/aam-ui.js:236 Application/Backend/View/Localization.php:30
84
  msgid "Add Role"
85
  msgstr ""
86
 
87
- #: media/js/aam-ui.js:271 Application/Backend/View/Localization.php:31
88
  msgid "Failed to update role"
89
  msgstr ""
90
 
91
- #: media/js/aam-ui.js:280 Application/Backend/View/Localization.php:32
92
- #: Application/Backend/phtml/extension.phtml:47
93
- #: Application/Backend/phtml/extension.phtml:72
94
- #: Application/Backend/phtml/index.phtml:129
95
- #: Application/Backend/phtml/object/capability.phtml:77
96
  msgid "Update"
97
  msgstr ""
98
 
99
- #: media/js/aam-ui.js:303 media/js/aam-ui.js:1089
100
  #: Application/Backend/View/Localization.php:33
101
  msgid "Deleting..."
102
  msgstr ""
103
 
104
- #: media/js/aam-ui.js:309 Application/Backend/View/Localization.php:34
105
  msgid "Failed to delete role"
106
  msgstr ""
107
 
108
- #: media/js/aam-ui.js:390 media/js/aam-ui.js:391 media/js/aam-ui.js:532
109
  #: Application/Backend/View/Localization.php:51
110
  msgid "Unlock User"
111
  msgstr ""
112
 
113
- #: media/js/aam-ui.js:396 media/js/aam-ui.js:397 media/js/aam-ui.js:521
114
  #: Application/Backend/View/Localization.php:50
115
  msgid "Lock User"
116
  msgstr ""
117
 
118
- #: media/js/aam-ui.js:401 Application/Backend/View/Localization.php:36
119
  msgid "Failed to block user"
120
  msgstr ""
121
 
122
- #: media/js/aam-ui.js:432 Application/Backend/View/Localization.php:37
123
  msgid "Search User"
124
  msgstr ""
125
 
126
- #: media/js/aam-ui.js:433 Application/Backend/View/Localization.php:38
127
  msgid "_TOTAL_ user(s)"
128
  msgstr ""
129
 
130
- #: media/js/aam-ui.js:457 Application/Backend/View/Localization.php:39
131
- #: Application/Backend/phtml/index.phtml:81
132
  msgid "Role"
133
  msgstr ""
134
 
135
- #: media/js/aam-ui.js:481 Application/Backend/View/Localization.php:48
136
  msgid "Manage User"
137
  msgstr ""
138
 
139
- #: media/js/aam-ui.js:502 Application/Backend/View/Localization.php:49
140
  msgid "Edit User"
141
  msgstr ""
142
 
143
- #: media/js/aam-ui.js:562
144
  msgid "Switch To User"
145
  msgstr ""
146
 
147
- #: media/js/aam-ui.js:609 Application/Backend/View/Localization.php:40
148
  msgid "Anonymous"
149
  msgstr ""
150
 
151
- #: media/js/aam-ui.js:658 Application/Backend/View/Localization.php:17
152
- #: Application/Backend/phtml/object/menu.phtml:47
153
  msgid "Show Menu"
154
  msgstr ""
155
 
156
- #: media/js/aam-ui.js:673 Application/Backend/View/Localization.php:18
157
- #: Application/Backend/phtml/object/menu.phtml:51
158
  msgid "Restrict Menu"
159
  msgstr ""
160
 
161
- #: media/js/aam-ui.js:785 Application/Backend/View/Localization.php:19
162
  msgid "Failed to retrieve mataboxes"
163
  msgstr ""
164
 
165
- #: media/js/aam-ui.js:869 Application/Backend/View/Localization.php:52
 
 
 
 
 
 
 
 
 
 
 
 
166
  msgid "Failed to grand capability - WordPress policy"
167
  msgstr ""
168
 
169
- #: media/js/aam-ui.js:904 Application/Backend/View/Localization.php:11
170
  msgid "Search Capability"
171
  msgstr ""
172
 
173
- #: media/js/aam-ui.js:905 Application/Backend/View/Localization.php:12
174
  msgid "_TOTAL_ capability(s)"
175
  msgstr ""
176
 
177
- #: media/js/aam-ui.js:907
178
  msgid "Nothing to show"
179
  msgstr ""
180
 
181
- #: media/js/aam-ui.js:1010 Application/Backend/View/Localization.php:14
182
  msgid "Failed to add new capability"
183
  msgstr ""
184
 
185
- #: media/js/aam-ui.js:1018 Application/Backend/View/Localization.php:16
186
  msgid "Add Capability"
187
  msgstr ""
188
 
189
- #: media/js/aam-ui.js:1056
190
  msgid "Failed to update capability"
191
  msgstr ""
192
 
193
- #: media/js/aam-ui.js:1064 Application/Backend/phtml/object/capability.phtml:67
194
  msgid "Update Capability"
195
  msgstr ""
196
 
197
- #: media/js/aam-ui.js:1097
198
  msgid "Failed to delete capability"
199
  msgstr ""
200
 
201
- #: media/js/aam-ui.js:1105 Application/Backend/phtml/object/capability.phtml:89
202
  msgid "Delete Capability"
203
  msgstr ""
204
 
205
- #: media/js/aam-ui.js:1242
206
- msgid "parent role"
207
- msgstr ""
208
-
209
- #: media/js/aam-ui.js:1244
210
- msgid "default settings"
211
- msgstr ""
212
-
213
- #: media/js/aam-ui.js:1246
214
- msgid "parent category"
215
- msgstr ""
216
-
217
- #: media/js/aam-ui.js:1345 Application/Backend/View/Localization.php:20
218
  msgid "Search"
219
  msgstr ""
220
 
221
- #: media/js/aam-ui.js:1346 Application/Backend/View/Localization.php:21
222
  msgid "_TOTAL_ object(s)"
223
  msgstr ""
224
 
225
- #: media/js/aam-ui.js:1417
226
  msgid "Drill-Down"
227
  msgstr ""
228
 
229
- #: media/js/aam-ui.js:1430 Application/Backend/View/Localization.php:43
230
  #: Application/Backend/phtml/metabox.phtml:7
231
  msgid "Manage Access"
232
  msgstr ""
233
 
234
- #: media/js/aam-ui.js:1442 Application/Backend/View/Localization.php:44
235
- #: Application/Backend/phtml/object/post.phtml:126
236
  msgid "Edit"
237
  msgstr ""
238
 
239
- #: media/js/aam-ui.js:1738 media/js/aam-ui.js:1759
240
  msgid "Application Error"
241
  msgstr ""
242
 
243
  #: Application/Backend/Feature/Abstract.php:29
244
  #: Application/Backend/Feature/Role.php:29
245
- #: Application/Backend/Feature/User.php:29
246
- msgid "Accedd Denied"
 
247
  msgstr ""
248
 
249
  #: Application/Backend/Feature/Capability.php:104
@@ -261,13 +267,13 @@ msgstr ""
261
 
262
  #: Application/Backend/Feature/Capability.php:253
263
  #: Application/Backend/Feature/Capability.php:293
264
- #: Application/Backend/Feature/Post.php:292
265
  msgid "Posts & Pages"
266
  msgstr ""
267
 
268
  #: Application/Backend/Feature/Capability.php:254
269
  #: Application/Backend/Feature/Capability.php:295
270
- #: Application/Backend/phtml/object/post.phtml:109
271
  msgid "Backend"
272
  msgstr ""
273
 
@@ -288,7 +294,7 @@ msgstr ""
288
  msgid "License key is missing."
289
  msgstr ""
290
 
291
- #: Application/Backend/Feature/Extension.php:173
292
  msgid "Extensions"
293
  msgstr ""
294
 
@@ -296,93 +302,39 @@ msgstr ""
296
  msgid "Backend Menu"
297
  msgstr ""
298
 
299
- #: Application/Backend/Feature/Metabox.php:216
300
  msgid "Metaboxes & Widgets"
301
  msgstr ""
302
 
303
- #: Application/Backend/Feature/Post.php:197
304
  msgid "You reached your limitation."
305
  msgstr ""
306
 
307
- #: Application/Backend/Feature/ProductList.php:17
308
- msgid ""
309
- "Our best selling extension that allows you to setup access to unlimited "
310
- "number of posts, pages or custom post types as well as define default access "
311
- "to ALL posts, pages, custom post types, categories or custom taxonomies."
312
- msgstr ""
313
-
314
- #: Application/Backend/Feature/ProductList.php:29
315
- msgid ""
316
- "With this extension you can define custom redirect or \"Access Denied\" "
317
- "message for each role, individual user or all visitors."
318
- msgstr ""
319
-
320
- #: Application/Backend/Feature/ProductList.php:40
321
- msgid ""
322
- "More advanced user and role administration. Based on user capabilities "
323
- "level, filter list of roles that user can manage. Also prevent from editing, "
324
- "promoting or deleting higher level users."
325
- msgstr ""
326
-
327
- #: Application/Backend/Feature/ProductList.php:52
328
- msgid ""
329
- "Get list of all available premium extensions in one package and save $5 USD."
330
- msgstr ""
331
-
332
- #: Application/Backend/Feature/ProductList.php:62
333
- msgid ""
334
- "Convenient way to navigate between different sites in the Network Admin "
335
- "Panel. This extension adds additional widget to the AAM page that allows to "
336
- "switch between different sites."
337
- msgstr ""
338
-
339
- #: Application/Backend/Feature/ProductList.php:79
340
- msgid ""
341
- "Patent-pending technology that provides solutions to PHP errors within "
342
- "hours, preventing costly maintenance time and keeping your WordPress site "
343
- "error."
344
- msgstr ""
345
-
346
- #: Application/Backend/Feature/ProductList.php:86
347
- msgid ""
348
- "Development tool with an easy way to manage all your website custom "
349
- "settings. "
350
- msgstr ""
351
-
352
- #: Application/Backend/Feature/ProductList.php:93
353
- msgid "Instant switching between user accounts in WordPress."
354
  msgstr ""
355
 
356
- #: Application/Backend/Feature/Redirect.php:97
357
- msgid "Redirect"
358
  msgstr ""
359
 
360
- #: Application/Backend/Feature/Utility.php:95
361
  msgid "Utilities"
362
  msgstr ""
363
 
364
- #: Application/Backend/Manager.php:82
365
  #, php-format
366
  msgid "Extension %s has new update available for download."
367
  msgstr ""
368
 
369
- #: Application/Backend/Manager.php:127
370
  msgid "Access Manager"
371
  msgstr ""
372
 
373
- #: Application/Backend/Manager.php:197 Application/Backend/Manager.php:222
374
  msgid "Access"
375
  msgstr ""
376
 
377
- #: Application/Backend/Manager.php:342 Application/Backend/Manager.php:343
378
- msgid "AAM"
379
- msgstr ""
380
-
381
- #: Application/Backend/Manager.php:380 Application/Backend/Manager.php:405
382
- #: Application/Core/API.php:256
383
- msgid "Access Denied"
384
- msgstr ""
385
-
386
  #: Application/Backend/View/Localization.php:22
387
  msgid "Failed"
388
  msgstr ""
@@ -395,12 +347,12 @@ msgstr ""
395
  msgid "Current role"
396
  msgstr ""
397
 
398
- #: Application/Core/Repository.php:294
399
  #, php-format
400
  msgid "Failed to create %s"
401
  msgstr ""
402
 
403
- #: Application/Core/Repository.php:298
404
  #, php-format
405
  msgid "Directory %s is not writable"
406
  msgstr ""
@@ -420,8 +372,7 @@ msgid ""
420
  msgstr ""
421
 
422
  #: Application/Backend/phtml/extension.phtml:11
423
- #: Application/Backend/phtml/extension.phtml:141
424
- msgid "Install Extension"
425
  msgstr ""
426
 
427
  #: Application/Backend/phtml/extension.phtml:15
@@ -429,77 +380,90 @@ msgid "License Key"
429
  msgstr ""
430
 
431
  #: Application/Backend/phtml/extension.phtml:19
432
- #: Application/Backend/phtml/extension.phtml:95
433
- msgid "Install"
434
  msgstr ""
435
 
436
- #: Application/Backend/phtml/extension.phtml:25
437
  msgid "Premium"
438
  msgstr ""
439
 
440
- #: Application/Backend/phtml/extension.phtml:26
441
- #: Application/Backend/phtml/extension.phtml:63
442
- #: Application/Backend/phtml/extension.phtml:88
443
  msgid "Free"
444
  msgstr ""
445
 
446
- #: Application/Backend/phtml/extension.phtml:27
447
  msgid "Useful Plugins"
448
  msgstr ""
449
 
450
- #: Application/Backend/phtml/extension.phtml:45
451
- #: Application/Backend/phtml/extension.phtml:70
452
- #: Application/Backend/phtml/extension.phtml:97
 
 
 
 
 
 
 
 
453
  msgid "Installed"
454
  msgstr ""
455
 
456
- #: Application/Backend/phtml/extension.phtml:49
457
  msgid "Purchase"
458
  msgstr ""
459
 
460
- #: Application/Backend/phtml/extension.phtml:74
461
- #: Application/Backend/phtml/extension.phtml:129
462
  msgid "Download"
463
  msgstr ""
464
 
465
- #: Application/Backend/phtml/extension.phtml:113
466
- #: Application/Backend/phtml/extension.phtml:140
467
- #: Application/Backend/phtml/extension.phtml:151
468
- #: Application/Backend/phtml/index.phtml:92
469
- #: Application/Backend/phtml/index.phtml:109
 
 
 
470
  #: Application/Backend/phtml/index.phtml:119
471
- #: Application/Backend/phtml/index.phtml:130
472
- #: Application/Backend/phtml/index.phtml:140
473
- #: Application/Backend/phtml/index.phtml:148
474
- #: Application/Backend/phtml/index.phtml:158
475
- #: Application/Backend/phtml/index.phtml:189
476
- #: Application/Backend/phtml/object/capability.phtml:45
477
- #: Application/Backend/phtml/object/capability.phtml:56
478
- #: Application/Backend/phtml/object/capability.phtml:66
479
- #: Application/Backend/phtml/object/capability.phtml:78
480
- #: Application/Backend/phtml/object/capability.phtml:88
481
- #: Application/Backend/phtml/object/capability.phtml:96
482
- #: Application/Backend/phtml/utility.phtml:76
 
483
  msgid "Close"
484
  msgstr ""
485
 
486
- #: Application/Backend/phtml/extension.phtml:114
487
- #: Application/Backend/phtml/index.phtml:159
488
- #: Application/Backend/phtml/index.phtml:190
489
  msgid "Notification"
490
  msgstr ""
491
 
492
- #: Application/Backend/phtml/extension.phtml:118
493
  msgid ""
494
  "Extension requires manual installation. Please follow few simple steps below."
495
  msgstr ""
496
 
497
- #: Application/Backend/phtml/extension.phtml:130
498
- #: Application/Backend/phtml/utility.phtml:84
499
  msgid "Cancel"
500
  msgstr ""
501
 
502
  #: Application/Backend/phtml/extension.phtml:145
 
 
 
 
503
  msgid ""
504
  "Insert license key that you recieved after the payment (find the email "
505
  "example below). It might take up to 2 hours to process the payment. Please "
@@ -537,101 +501,90 @@ msgstr ""
537
  msgid "Notifications"
538
  msgstr ""
539
 
540
- #: Application/Backend/phtml/index.phtml:64
541
- msgid "User/Role Panel"
 
 
 
 
 
 
 
 
542
  msgstr ""
543
 
544
- #: Application/Backend/phtml/index.phtml:70
545
- #: Application/Backend/phtml/index.phtml:216
546
  msgid "Roles"
547
  msgstr ""
548
 
549
- #: Application/Backend/phtml/index.phtml:72
550
- #: Application/Backend/phtml/index.phtml:226
551
  msgid "Visitor"
552
  msgstr ""
553
 
554
- #: Application/Backend/phtml/index.phtml:82
555
- #: Application/Backend/phtml/index.phtml:179
556
  msgid "Action"
557
  msgstr ""
558
 
559
- #: Application/Backend/phtml/index.phtml:93
560
  msgid "Create Role"
561
  msgstr ""
562
 
563
- #: Application/Backend/phtml/index.phtml:97
564
- #: Application/Backend/phtml/index.phtml:124
565
  msgid "Role Name"
566
  msgstr ""
567
 
568
- #: Application/Backend/phtml/index.phtml:98
569
- #: Application/Backend/phtml/index.phtml:125
570
  msgid "Enter Role Name"
571
  msgstr ""
572
 
573
- #: Application/Backend/phtml/index.phtml:101
574
- msgid "Inherit Capabilities From"
575
- msgstr ""
576
-
577
- #: Application/Backend/phtml/index.phtml:120
578
  msgid "Update Role"
579
  msgstr ""
580
 
581
- #: Application/Backend/phtml/index.phtml:144
582
  #, php-format
583
  msgid "Are you sure that you want to delete %s role?"
584
  msgstr ""
585
 
586
- #: Application/Backend/phtml/index.phtml:147
587
- #: Application/Backend/phtml/object/capability.phtml:95
588
- #: Application/Backend/phtml/object/post.phtml:137
589
  msgid "Delete"
590
  msgstr ""
591
 
592
- #: Application/Backend/phtml/index.phtml:162
593
- msgid ""
594
- "You are not allowed to delete this role because either you do not have a "
595
- "capability to \"delete_users\" or there is at least one user assigned to it."
596
- msgstr ""
597
-
598
- #: Application/Backend/phtml/index.phtml:165
599
- #: Application/Backend/phtml/index.phtml:196
600
- msgid "OK"
601
- msgstr ""
602
-
603
- #: Application/Backend/phtml/index.phtml:178
604
  msgid "Username"
605
  msgstr ""
606
 
607
- #: Application/Backend/phtml/index.phtml:193
608
- msgid "You are not allowed to perform this action."
609
- msgstr ""
610
-
611
- #: Application/Backend/phtml/index.phtml:204
612
  msgid ""
613
  "Manage access to your website for visitors (any user that is not "
614
  "authenticated)"
615
  msgstr ""
616
 
617
- #: Application/Backend/phtml/index.phtml:205
618
  msgid "Manage Visitors"
619
  msgstr ""
620
 
621
- #: Application/Backend/phtml/index.phtml:217
622
  msgid ""
623
  "With Roles tab you can manage access for any defined role, edit role's name, "
624
  "create new role or even delete existing (but only when there is no users "
625
  "assigned to it). You are not allowed to delete Administrator role."
626
  msgstr ""
627
 
628
- #: Application/Backend/phtml/index.phtml:222
629
  msgid ""
630
  "Manage access for any user. As a bonus feature, you can block user. It means "
631
  "that user will be not able to login to your website anymore."
632
  msgstr ""
633
 
634
- #: Application/Backend/phtml/index.phtml:227
635
  msgid ""
636
  "Visitor can be considered any user that is not authenticated to your website."
637
  msgstr ""
@@ -644,100 +597,134 @@ msgstr ""
644
  msgid "All Capabilities"
645
  msgstr ""
646
 
647
- #: Application/Backend/phtml/object/capability.phtml:33
648
  msgid "Category"
649
  msgstr ""
650
 
651
- #: Application/Backend/phtml/object/capability.phtml:34
652
- #: Application/Backend/phtml/object/capability.phtml:50
653
- #: Application/Backend/phtml/object/capability.phtml:71
654
  msgid "Capability"
655
  msgstr ""
656
 
657
- #: Application/Backend/phtml/object/capability.phtml:35
658
- #: Application/Backend/phtml/object/post.phtml:47
659
  msgid "Actions"
660
  msgstr ""
661
 
662
- #: Application/Backend/phtml/object/capability.phtml:46
663
  msgid "Create Capability"
664
  msgstr ""
665
 
666
- #: Application/Backend/phtml/object/capability.phtml:51
667
- #: Application/Backend/phtml/object/capability.phtml:72
668
  msgid "Enter Capability"
669
  msgstr ""
670
 
671
- #: Application/Backend/phtml/object/capability.phtml:92
672
  #, php-format
673
  msgid "Are you sure that you want to delete %s capability for all roles?"
674
  msgstr ""
675
 
676
  #: Application/Backend/phtml/object/menu.phtml:6
677
- #: Application/Backend/phtml/object/metabox.phtml:6
678
- msgid "Settings may not be inherited"
 
 
679
  msgstr ""
680
 
681
- #: Application/Backend/phtml/object/menu.phtml:7
682
- #: Application/Backend/phtml/object/metabox.phtml:7
683
- #: Application/Backend/phtml/object/post.phtml:27
684
- msgid "Reset"
685
  msgstr ""
686
 
 
687
  #: Application/Backend/phtml/object/metabox.phtml:13
 
 
 
 
 
688
  msgid "Refresh"
689
  msgstr ""
690
 
691
- #: Application/Backend/phtml/object/metabox.phtml:34
 
 
 
 
692
  msgid "Dashboard Widgets"
693
  msgstr ""
694
 
695
- #: Application/Backend/phtml/object/metabox.phtml:38
696
  msgid "Frontend Widgets"
697
  msgstr ""
698
 
699
- #: Application/Backend/phtml/object/metabox.phtml:68
700
  msgid ""
701
  "The list of metaboxes and widgets is not initialized. Click Refresh button "
702
  "above."
703
  msgstr ""
704
 
705
- #: Application/Backend/phtml/object/post.phtml:16
706
- msgid "Root"
707
  msgstr ""
708
 
709
- #: Application/Backend/phtml/object/post.phtml:26
710
- msgid "Settings are overwritten"
 
 
 
 
 
 
 
 
 
711
  msgstr ""
712
 
713
- #: Application/Backend/phtml/object/post.phtml:31
714
- msgid "Settings inherited from"
715
  msgstr ""
716
 
717
- #: Application/Backend/phtml/object/post.phtml:46
 
 
 
 
 
 
 
 
 
718
  msgid "Title"
719
  msgstr ""
720
 
721
- #: Application/Backend/phtml/object/post.phtml:55
722
- #: Application/Backend/phtml/object/post.phtml:60
723
- #: Application/Backend/phtml/object/post.phtml:149
724
  msgid "Go Back"
725
  msgstr ""
726
 
727
- #: Application/Backend/phtml/object/post.phtml:68
728
  msgid "Frontend"
729
  msgstr ""
730
 
731
- #: Application/Backend/phtml/object/post.phtml:74
732
- #: Application/Backend/phtml/object/post.phtml:115
733
  msgid "List"
734
  msgstr ""
735
 
736
- #: Application/Backend/phtml/object/post.phtml:85
737
  msgid "Read"
738
  msgstr ""
739
 
740
- #: Application/Backend/phtml/object/post.phtml:96
 
 
 
 
741
  msgid "Comment"
742
  msgstr ""
743
 
@@ -777,68 +764,92 @@ msgstr ""
777
  msgid "PHP Callback Function"
778
  msgstr ""
779
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
780
  #: Application/Backend/phtml/utility.phtml:6
781
  #, php-format
782
  msgid "To learn more about AAM Utilities check %sAAM Utilities%s article."
783
  msgstr ""
784
 
785
- #: Application/Backend/phtml/utility.phtml:15
786
  msgid "Edit/Delete Capabilities"
787
  msgstr ""
788
 
789
- #: Application/Backend/phtml/utility.phtml:21
790
- #: Application/Backend/phtml/utility.phtml:32
791
- #: Application/Backend/phtml/utility.phtml:43
792
- #: Application/Backend/phtml/utility.phtml:54
 
793
  msgid "Enabled"
794
  msgstr ""
795
 
796
- #: Application/Backend/phtml/utility.phtml:21
797
- #: Application/Backend/phtml/utility.phtml:32
798
- #: Application/Backend/phtml/utility.phtml:43
799
- #: Application/Backend/phtml/utility.phtml:54
 
800
  msgid "Disabled"
801
  msgstr ""
802
 
803
- #: Application/Backend/phtml/utility.phtml:26
804
  msgid "Backend Access Control"
805
  msgstr ""
806
 
807
- #: Application/Backend/phtml/utility.phtml:28
808
  msgid ""
809
  "Use AAM to control access to posts, pages, categories, menus and metaboxes "
810
  "etc. Disable this setting to stop AAM from controling access for backend."
811
  msgstr ""
812
 
813
- #: Application/Backend/phtml/utility.phtml:37
814
  msgid "Frontend Access Control"
815
  msgstr ""
816
 
817
- #: Application/Backend/phtml/utility.phtml:39
818
  msgid ""
819
  "Use AAM to control access to posts, pages, categories, menus and widgets. "
820
  "Disable this setting to stop AAM from controling access for frontend."
821
  msgstr ""
822
 
823
- #: Application/Backend/phtml/utility.phtml:48
824
  msgid "Media Files Access Control"
825
  msgstr ""
826
 
827
  #: Application/Backend/phtml/utility.phtml:60
828
- #: Application/Backend/phtml/utility.phtml:77
 
 
 
829
  msgid "Clear All Settings"
830
  msgstr ""
831
 
832
- #: Application/Backend/phtml/utility.phtml:62
833
  msgid ""
834
  "Remove all the settings related to AAM (including all extension licenses)."
835
  msgstr ""
836
 
837
- #: Application/Backend/phtml/utility.phtml:80
838
- msgid ""
839
- "All settings related to AAM will be removed. Please confirm your action."
 
 
 
840
  msgstr ""
841
 
842
- #: Application/Backend/phtml/utility.phtml:83
843
  msgid "Clear"
844
  msgstr ""
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: AAM\n"
4
+ "POT-Creation-Date: 2016-10-14 14:07-0400\n"
5
  "PO-Revision-Date: \n"
6
  "Language-Team: WP AAM <vasyl@vasyltech.com>\n"
7
  "MIME-Version: 1.0\n"
8
  "Content-Type: text/plain; charset=UTF-8\n"
9
  "Content-Transfer-Encoding: 8bit\n"
10
+ "X-Generator: Poedit 1.8.9\n"
11
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
12
  "X-Poedit-SourceCharset: UTF-8\n"
13
  "X-Poedit-KeywordsList: __\n"
16
  "Language: en_US\n"
17
  "X-Poedit-SearchPath-0: .\n"
18
 
19
+ #: media/js/aam-ui.js:44 Application/Backend/View/Localization.php:23
20
  msgid "Loading..."
21
  msgstr ""
22
 
23
+ #: media/js/aam-ui.js:49 Application/Backend/View/Localization.php:24
24
+ #: Application/Backend/phtml/partial/role-inheritance.phtml:5
25
  msgid "Select Role"
26
  msgstr ""
27
 
28
+ #: media/js/aam-ui.js:90 Application/Backend/View/Localization.php:25
29
  msgid "Search Role"
30
  msgstr ""
31
 
32
+ #: media/js/aam-ui.js:91 Application/Backend/View/Localization.php:26
33
  msgid "_TOTAL_ role(s)"
34
  msgstr ""
35
 
36
+ #: media/js/aam-ui.js:98 media/js/aam-ui.js:543
37
  #: Application/Backend/View/Localization.php:27
38
+ #: Application/Backend/phtml/index.phtml:118
39
+ #: Application/Backend/phtml/object/capability.phtml:27
40
+ #: Application/Backend/phtml/object/capability.phtml:57
41
  msgid "Create"
42
  msgstr ""
43
 
44
+ #: media/js/aam-ui.js:118 Application/Backend/View/Localization.php:28
45
+ #: Application/Backend/phtml/index.phtml:85
46
+ #: Application/Backend/phtml/index.phtml:198
47
  msgid "Users"
48
  msgstr ""
49
 
50
+ #: media/js/aam-ui.js:150 Application/Backend/View/Localization.php:45
51
  msgid "Manage Role"
52
  msgstr ""
53
 
54
+ #: media/js/aam-ui.js:165 Application/Backend/View/Localization.php:46
55
  msgid "Edit Role Name"
56
  msgstr ""
57
 
58
+ #: media/js/aam-ui.js:179
59
+ msgid "Clone Role"
60
+ msgstr ""
61
+
62
+ #: media/js/aam-ui.js:198 media/js/aam-ui.js:383
63
  #: Application/Backend/View/Localization.php:35
64
  #: Application/Backend/View/Localization.php:47
65
+ #: Application/Backend/phtml/index.phtml:152
66
  msgid "Delete Role"
67
  msgstr ""
68
 
69
+ #: media/js/aam-ui.js:275 media/js/aam-ui.js:330 media/js/aam-ui.js:1121
70
+ #: media/js/aam-ui.js:1167 Application/Backend/View/Localization.php:13
71
  msgid "Saving..."
72
  msgstr ""
73
 
74
+ #: media/js/aam-ui.js:290 Application/Backend/View/Localization.php:29
75
  msgid "Failed to add new role"
76
  msgstr ""
77
 
78
+ #: media/js/aam-ui.js:295 media/js/aam-ui.js:342 media/js/aam-ui.js:379
79
+ #: media/js/aam-ui.js:473 media/js/aam-ui.js:505 media/js/aam-ui.js:834
80
+ #: media/js/aam-ui.js:871 media/js/aam-ui.js:907 media/js/aam-ui.js:1134
81
+ #: media/js/aam-ui.js:1180 media/js/aam-ui.js:1221 media/js/aam-ui.js:1360
82
+ #: media/js/aam-ui.js:1407 media/js/aam-ui.js:1650 media/js/aam-ui.js:1715
83
+ #: media/js/aam-ui.js:1781 media/js/aam-ui.js:1877 media/js/aam.js:207
84
  #: Application/Backend/View/Localization.php:15
85
  msgid "Application error"
86
  msgstr ""
87
 
88
+ #: media/js/aam-ui.js:298 Application/Backend/View/Localization.php:30
89
  msgid "Add Role"
90
  msgstr ""
91
 
92
+ #: media/js/aam-ui.js:337 Application/Backend/View/Localization.php:31
93
  msgid "Failed to update role"
94
  msgstr ""
95
 
96
+ #: media/js/aam-ui.js:346 Application/Backend/View/Localization.php:32
97
+ #: Application/Backend/phtml/extension.phtml:52
98
+ #: Application/Backend/phtml/extension.phtml:77
99
+ #: Application/Backend/phtml/index.phtml:140
100
+ #: Application/Backend/phtml/object/capability.phtml:79
101
  msgid "Update"
102
  msgstr ""
103
 
104
+ #: media/js/aam-ui.js:369 media/js/aam-ui.js:1208
105
  #: Application/Backend/View/Localization.php:33
106
  msgid "Deleting..."
107
  msgstr ""
108
 
109
+ #: media/js/aam-ui.js:375 Application/Backend/View/Localization.php:34
110
  msgid "Failed to delete role"
111
  msgstr ""
112
 
113
+ #: media/js/aam-ui.js:458 media/js/aam-ui.js:459 media/js/aam-ui.js:623
114
  #: Application/Backend/View/Localization.php:51
115
  msgid "Unlock User"
116
  msgstr ""
117
 
118
+ #: media/js/aam-ui.js:464 media/js/aam-ui.js:465 media/js/aam-ui.js:612
119
  #: Application/Backend/View/Localization.php:50
120
  msgid "Lock User"
121
  msgstr ""
122
 
123
+ #: media/js/aam-ui.js:469 Application/Backend/View/Localization.php:36
124
  msgid "Failed to block user"
125
  msgstr ""
126
 
127
+ #: media/js/aam-ui.js:535 Application/Backend/View/Localization.php:37
128
  msgid "Search User"
129
  msgstr ""
130
 
131
+ #: media/js/aam-ui.js:536 Application/Backend/View/Localization.php:38
132
  msgid "_TOTAL_ user(s)"
133
  msgstr ""
134
 
135
+ #: media/js/aam-ui.js:560 Application/Backend/View/Localization.php:39
136
+ #: Application/Backend/phtml/index.phtml:95
137
  msgid "Role"
138
  msgstr ""
139
 
140
+ #: media/js/aam-ui.js:588 Application/Backend/View/Localization.php:48
141
  msgid "Manage User"
142
  msgstr ""
143
 
144
+ #: media/js/aam-ui.js:601 Application/Backend/View/Localization.php:49
145
  msgid "Edit User"
146
  msgstr ""
147
 
148
+ #: media/js/aam-ui.js:634
149
  msgid "Switch To User"
150
  msgstr ""
151
 
152
+ #: media/js/aam-ui.js:690 Application/Backend/View/Localization.php:40
153
  msgid "Anonymous"
154
  msgstr ""
155
 
156
+ #: media/js/aam-ui.js:739 Application/Backend/View/Localization.php:17
157
+ #: Application/Backend/phtml/object/menu.phtml:57
158
  msgid "Show Menu"
159
  msgstr ""
160
 
161
+ #: media/js/aam-ui.js:754 Application/Backend/View/Localization.php:18
162
+ #: Application/Backend/phtml/object/menu.phtml:61
163
  msgid "Restrict Menu"
164
  msgstr ""
165
 
166
+ #: media/js/aam-ui.js:866 Application/Backend/View/Localization.php:19
167
  msgid "Failed to retrieve mataboxes"
168
  msgstr ""
169
 
170
+ #: media/js/aam-ui.js:894
171
+ msgid "Processing"
172
+ msgstr ""
173
+
174
+ #: media/js/aam-ui.js:902
175
+ msgid "Failed to initialize URL"
176
+ msgstr ""
177
+
178
+ #: media/js/aam-ui.js:910 Application/Backend/phtml/object/metabox.phtml:93
179
+ msgid "Initialize"
180
+ msgstr ""
181
+
182
+ #: media/js/aam-ui.js:984 Application/Backend/View/Localization.php:52
183
  msgid "Failed to grand capability - WordPress policy"
184
  msgstr ""
185
 
186
+ #: media/js/aam-ui.js:1019 Application/Backend/View/Localization.php:11
187
  msgid "Search Capability"
188
  msgstr ""
189
 
190
+ #: media/js/aam-ui.js:1020 Application/Backend/View/Localization.php:12
191
  msgid "_TOTAL_ capability(s)"
192
  msgstr ""
193
 
194
+ #: media/js/aam-ui.js:1022
195
  msgid "Nothing to show"
196
  msgstr ""
197
 
198
+ #: media/js/aam-ui.js:1129 Application/Backend/View/Localization.php:14
199
  msgid "Failed to add new capability"
200
  msgstr ""
201
 
202
+ #: media/js/aam-ui.js:1137 Application/Backend/View/Localization.php:16
203
  msgid "Add Capability"
204
  msgstr ""
205
 
206
+ #: media/js/aam-ui.js:1175
207
  msgid "Failed to update capability"
208
  msgstr ""
209
 
210
+ #: media/js/aam-ui.js:1183 Application/Backend/phtml/object/capability.phtml:69
211
  msgid "Update Capability"
212
  msgstr ""
213
 
214
+ #: media/js/aam-ui.js:1216
215
  msgid "Failed to delete capability"
216
  msgstr ""
217
 
218
+ #: media/js/aam-ui.js:1224 Application/Backend/phtml/object/capability.phtml:91
219
  msgid "Delete Capability"
220
  msgstr ""
221
 
222
+ #: media/js/aam-ui.js:1446 Application/Backend/View/Localization.php:20
 
 
 
 
 
 
 
 
 
 
 
 
223
  msgid "Search"
224
  msgstr ""
225
 
226
+ #: media/js/aam-ui.js:1447 Application/Backend/View/Localization.php:21
227
  msgid "_TOTAL_ object(s)"
228
  msgstr ""
229
 
230
+ #: media/js/aam-ui.js:1511
231
  msgid "Drill-Down"
232
  msgstr ""
233
 
234
+ #: media/js/aam-ui.js:1529 Application/Backend/View/Localization.php:43
235
  #: Application/Backend/phtml/metabox.phtml:7
236
  msgid "Manage Access"
237
  msgstr ""
238
 
239
+ #: media/js/aam-ui.js:1541 Application/Backend/View/Localization.php:44
240
+ #: Application/Backend/phtml/object/post.phtml:140
241
  msgid "Edit"
242
  msgstr ""
243
 
244
+ #: media/js/aam-ui.js:1919 media/js/aam-ui.js:1956
245
  msgid "Application Error"
246
  msgstr ""
247
 
248
  #: Application/Backend/Feature/Abstract.php:29
249
  #: Application/Backend/Feature/Role.php:29
250
+ #: Application/Backend/Feature/User.php:29 Application/Backend/Manager.php:452
251
+ #: Application/Backend/Manager.php:477 Application/Core/API.php:256
252
+ msgid "Access Denied"
253
  msgstr ""
254
 
255
  #: Application/Backend/Feature/Capability.php:104
267
 
268
  #: Application/Backend/Feature/Capability.php:253
269
  #: Application/Backend/Feature/Capability.php:293
270
+ #: Application/Backend/Feature/Post.php:363
271
  msgid "Posts & Pages"
272
  msgstr ""
273
 
274
  #: Application/Backend/Feature/Capability.php:254
275
  #: Application/Backend/Feature/Capability.php:295
276
+ #: Application/Backend/phtml/object/post.phtml:123
277
  msgid "Backend"
278
  msgstr ""
279
 
294
  msgid "License key is missing."
295
  msgstr ""
296
 
297
+ #: Application/Backend/Feature/Extension.php:187
298
  msgid "Extensions"
299
  msgstr ""
300
 
302
  msgid "Backend Menu"
303
  msgstr ""
304
 
305
+ #: Application/Backend/Feature/Metabox.php:239
306
  msgid "Metaboxes & Widgets"
307
  msgstr ""
308
 
309
+ #: Application/Backend/Feature/Post.php:268
310
  msgid "You reached your limitation."
311
  msgstr ""
312
 
313
+ #: Application/Backend/Feature/Redirect.php:101
314
+ msgid "Redirect"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
315
  msgstr ""
316
 
317
+ #: Application/Backend/Feature/Teaser.php:101
318
+ msgid "Content Teaser"
319
  msgstr ""
320
 
321
+ #: Application/Backend/Feature/Utility.php:91
322
  msgid "Utilities"
323
  msgstr ""
324
 
325
+ #: Application/Backend/Manager.php:124
326
  #, php-format
327
  msgid "Extension %s has new update available for download."
328
  msgstr ""
329
 
330
+ #: Application/Backend/Manager.php:194
331
  msgid "Access Manager"
332
  msgstr ""
333
 
334
+ #: Application/Backend/Manager.php:264 Application/Backend/Manager.php:289
335
  msgid "Access"
336
  msgstr ""
337
 
 
 
 
 
 
 
 
 
 
338
  #: Application/Backend/View/Localization.php:22
339
  msgid "Failed"
340
  msgstr ""
347
  msgid "Current role"
348
  msgstr ""