Advanced Access Manager - Version 6.0.0

Version Description

  • Complete rewrite of the entire plugin. For more information, check this article
Download this release

Release Info

Developer vasyltech
Plugin Icon 128x128 Advanced Access Manager
Version 6.0.0
Comparing to
See all releases

Code changes from version 6.0.0-beta.2 to 6.0.0

aam.php CHANGED
@@ -3,7 +3,7 @@
3
  /**
4
  * Plugin Name: Advanced Access Manager
5
  * Description: Collection of features to manage your WordPress website authentication, authorization and monitoring
6
- * Version: 6.0.0-beta.2
7
  * Author: Vasyl Martyniuk <vasyl@vasyltech.com>
8
  * Author URI: https://vasyltech.com
9
  * Text Domain: advanced-access-manager
@@ -59,7 +59,9 @@ class AAM
59
  $this->initializeUser();
60
 
61
  // Make sure if user is changed dynamically, AAM adjusts accordingly
62
- add_action('set_current_user', array($this, 'initializeUser'));
 
 
63
  }
64
 
65
  /**
@@ -108,21 +110,28 @@ class AAM
108
  *
109
  * This method is triggered if some process updates current user
110
  *
111
- * @return void
112
  *
113
  * @access public
114
  * @version 6.0.0
115
  */
116
  public function initializeUser()
117
  {
118
- $id = get_current_user_id();
 
 
 
119
 
120
  // Change current user
121
  if ($id) {
122
- $this->setUser(new AAM_Core_Subject_User($id));
123
  } else {
124
- $this->setUser(new AAM_Core_Subject_Visitor());
125
  }
 
 
 
 
126
  }
127
 
128
  /**
@@ -203,7 +212,6 @@ class AAM
203
 
204
  // Validate logged in user status
205
  if (is_user_logged_in()) {
206
- AAM::getUser()->initialize();
207
  AAM::getUser()->validateStatus();
208
  }
209
  }
3
  /**
4
  * Plugin Name: Advanced Access Manager
5
  * Description: Collection of features to manage your WordPress website authentication, authorization and monitoring
6
+ * Version: 6.0.0
7
  * Author: Vasyl Martyniuk <vasyl@vasyltech.com>
8
  * Author URI: https://vasyltech.com
9
  * Text Domain: advanced-access-manager
59
  $this->initializeUser();
60
 
61
  // Make sure if user is changed dynamically, AAM adjusts accordingly
62
+ add_action('set_current_user', function() {
63
+ $this->initializeUser();
64
+ });
65
  }
66
 
67
  /**
110
  *
111
  * This method is triggered if some process updates current user
112
  *
113
+ * @return AAM_Core_Subject
114
  *
115
  * @access public
116
  * @version 6.0.0
117
  */
118
  public function initializeUser()
119
  {
120
+ global $current_user;
121
+
122
+ // Important! Do not use WP core function to avoid loop
123
+ $id = (is_a($current_user, 'WP_User') ? $current_user->ID : null);
124
 
125
  // Change current user
126
  if ($id) {
127
+ $user = (new AAM_Core_Subject_User($id))->initialize();
128
  } else {
129
+ $user = new AAM_Core_Subject_Visitor();
130
  }
131
+
132
+ $this->setUser($user);
133
+
134
+ return $user;
135
  }
136
 
137
  /**
212
 
213
  // Validate logged in user status
214
  if (is_user_logged_in()) {
 
215
  AAM::getUser()->validateStatus();
216
  }
217
  }
application/Addon/Repository.php CHANGED
@@ -52,7 +52,9 @@ class AAM_Addon_Repository
52
  */
53
  public function getRegistry()
54
  {
55
- return AAM_Core_API::getOption(self::DB_OPTION, array(), 'site');
 
 
56
  }
57
 
58
  /**
52
  */
53
  public function getRegistry()
54
  {
55
+ $registry = AAM_Core_API::getOption(self::DB_OPTION, array(), 'site');
56
+
57
+ return (is_array($registry) ? $registry : array());
58
  }
59
 
60
  /**
application/Backend/Feature/Main/Policy.php CHANGED
@@ -57,10 +57,7 @@ extends AAM_Backend_Feature_Abstract implements AAM_Backend_Feature_ISubjectAwar
57
  add_filter('aam_user_row_actions_filter', array($this, 'renderUserActions'), 1, 2);
58
 
59
  add_filter('aam_visitor_subject_tab_filter', function ($content, $params) {
60
- global $post;
61
-
62
- if (is_a($post, 'WP_Post')
63
- && ($post->post_type === AAM_Service_AccessPolicy::POLICY_CPT)) {
64
  $content = AAM_Backend_View::getInstance()->loadPartial(
65
  'visitor-principal-subject-tab',
66
  $params
57
  add_filter('aam_user_row_actions_filter', array($this, 'renderUserActions'), 1, 2);
58
 
59
  add_filter('aam_visitor_subject_tab_filter', function ($content, $params) {
60
+ if ($this->getFromQuery('aamframe') === 'principal') {
 
 
 
61
  $content = AAM_Backend_View::getInstance()->loadPartial(
62
  'visitor-principal-subject-tab',
63
  $params
application/Backend/Manager.php CHANGED
@@ -31,9 +31,7 @@ class AAM_Backend_Manager
31
  protected function __construct()
32
  {
33
  //print required JS & CSS
34
- add_action('admin_print_footer_scripts', array($this, 'printFooterJavascript'));
35
  add_action('aam_iframe_footer_action', array($this, 'printFooterJavascript'));
36
- add_action('admin_print_styles', array($this, 'printStylesheet'));
37
 
38
  // Alter user edit screen with support for multiple roles
39
  if (AAM::api()->getConfig('core.settings.multiSubject', false)) {
@@ -167,22 +165,6 @@ class AAM_Backend_Manager
167
  }
168
  }
169
 
170
- /**
171
- * Print all the necessary AAM styles
172
- *
173
- * @return void
174
- *
175
- * @access public
176
- * @version 6.0.0
177
- */
178
- public function printStylesheet()
179
- {
180
- if (AAM::isAAM()) {
181
- wp_enqueue_style('aam-vendor', AAM_MEDIA . '/css/vendor.min.css');
182
- wp_enqueue_style('aam-main', AAM_MEDIA . '/css/aam.css');
183
- }
184
- }
185
-
186
  /**
187
  * Adjust user edit/add screen to support multiple roles
188
  *
@@ -270,10 +252,8 @@ class AAM_Backend_Manager
270
  if (AAM::isAAM()) {
271
  $text = '<span id="footer-thankyou">';
272
  $text .= AAM_Backend_View_Helper::preparePhrase('[Help us] to be more noticeable and submit your review', 'b');
273
- $text .= '<a href="https://wordpress.org/support/plugin/advanced-access-manager/reviews/"';
274
- $text .= 'target="_blank"><i class="icon-star"></i>';
275
- $text .= '<i class="icon-star"></i><i class="icon-star"></i>';
276
- $text .= '<i class="icon-star"></i><i class="icon-star"></i></a>';
277
  $text .= '</span>';
278
  }
279
 
@@ -334,8 +314,7 @@ class AAM_Backend_Manager
334
  {
335
  check_ajax_referer('aam_ajax');
336
 
337
- // flush any output buffer
338
- @ob_clean();
339
 
340
  if (current_user_can('aam_manager')) {
341
  $partial = filter_input(INPUT_POST, 'partial');
31
  protected function __construct()
32
  {
33
  //print required JS & CSS
 
34
  add_action('aam_iframe_footer_action', array($this, 'printFooterJavascript'));
 
35
 
36
  // Alter user edit screen with support for multiple roles
37
  if (AAM::api()->getConfig('core.settings.multiSubject', false)) {
165
  }
166
  }
167
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
168
  /**
169
  * Adjust user edit/add screen to support multiple roles
170
  *
252
  if (AAM::isAAM()) {
253
  $text = '<span id="footer-thankyou">';
254
  $text .= AAM_Backend_View_Helper::preparePhrase('[Help us] to be more noticeable and submit your review', 'b');
255
+ $text .= ' <a href="https://wordpress.org/support/plugin/advanced-access-manager/reviews/"';
256
+ $text .= 'target="_blank">here</a>';
 
 
257
  $text .= '</span>';
258
  }
259
 
314
  {
315
  check_ajax_referer('aam_ajax');
316
 
317
+ @ob_clean(); // flush any output buffer
 
318
 
319
  if (current_user_can('aam_manager')) {
320
  $partial = filter_input(INPUT_POST, 'partial');
application/Backend/View.php CHANGED
@@ -204,6 +204,8 @@ class AAM_Backend_View
204
  'type' => 'main'
205
  )
206
  );
 
 
207
  } else {
208
  echo apply_filters('aam_iframe_content_filter', null, $type, $this);
209
  }
@@ -246,7 +248,7 @@ class AAM_Backend_View
246
  dirname(__FILE__) . '/tmpl/metabox/term-metabox.php',
247
  (object) array(
248
  'term' => $term,
249
- 'postType' => $this->getFromQuery('post_type')
250
  )
251
  );
252
  }
204
  'type' => 'main'
205
  )
206
  );
207
+ } elseif ($type === 'main') {
208
+ echo $this->loadTemplate($basedir . 'main-iframe.php');
209
  } else {
210
  echo apply_filters('aam_iframe_content_filter', null, $type, $this);
211
  }
248
  dirname(__FILE__) . '/tmpl/metabox/term-metabox.php',
249
  (object) array(
250
  'term' => $term,
251
+ 'postType' => filter_input(INPUT_GET, 'post_type')
252
  )
253
  );
254
  }
application/Backend/tmpl/index.php CHANGED
@@ -1,120 +1,8 @@
1
  <?php /** @version 6.0.0 */ ?>
2
 
3
  <?php if (defined('AAM_KEY')) { ?>
4
- <div class="wrap" id="aam-container">
5
- <?php echo static::loadTemplate(__DIR__ . '/page/current-subject.php'); ?>
6
-
7
- <div class="row">
8
- <div class="col-xs-12 col-md-8">
9
- <div class="metabox-holder">
10
- <div class="postbox">
11
- <div class="inside" id="access-manager-inside">
12
- <div class="aam-postbox-inside" id="aam-content">
13
- <?php echo static::loadPartial('loading-content'); ?>
14
- </div>
15
- </div>
16
- </div>
17
- </div>
18
- </div>
19
-
20
- <div class="col-xs-12 col-md-4 aam-sidebar">
21
- <?php if (AAM_Core_Console::count() && current_user_can('aam_show_notifications')) { ?>
22
- <div class="metabox-holder shared-metabox">
23
- <div class="postbox">
24
- <h3 class="hndle text-danger">
25
- <i class='icon-attention-circled'></i> <span><?php echo __('Notifications', AAM_KEY); ?></span>
26
- </h3>
27
- <div class="inside">
28
- <div class="aam-postbox-inside">
29
- <ul class="aam-error-list">
30
- <?php foreach (AAM_Core_Console::getAll() as $message) { ?>
31
- <li><?php echo $message; ?></li>
32
- <?php } ?>
33
- </ul>
34
- <div class="hidden" id="migration-errors-container"><?php echo base64_encode(print_r(AAM_Core_Migration::getFailureLog(), 1)); ?></div>
35
- </div>
36
- </div>
37
- </div>
38
- </div>
39
- <?php } ?>
40
-
41
- <div class="metabox-holder shared-metabox">
42
- <div class="postbox">
43
- <div class="inside">
44
- <div class="aam-social">
45
- <a href="#" title="Access" data-type="main" class="aam-area text-danger">
46
- <i class="icon-cog-alt"></i>
47
- <span><?php echo __('Access', AAM_KEY); ?></span>
48
- </a>
49
- <?php if (current_user_can('aam_manage_settings')) { ?>
50
- <a href="#" title="Settings" data-type="settings" class="aam-area">
51
- <i class="icon-wrench"></i>
52
- <span><?php echo __('Settings', AAM_KEY); ?></span>
53
- </a>
54
- <?php } ?>
55
- <?php if (current_user_can('aam_manage_addons')) { ?>
56
- <a href="#" title="Add-ons" data-type="extensions" class="aam-area">
57
- <i class="icon-cubes"></i>
58
- <span><?php echo __('Add-Ons', AAM_KEY); ?></span>
59
- </a>
60
- <?php } ?>
61
- <?php if (current_user_can('aam_view_help_btn')) { ?>
62
- <a href="https://aamplugin.com/support" title="Help" target="_blank">
63
- <i class="icon-help-circled"></i>
64
- <span><?php echo __('Help', AAM_KEY); ?></span>
65
- </a>
66
- <?php } ?>
67
- </div>
68
- </div>
69
- </div>
70
- </div>
71
-
72
- <?php if (current_user_can('aam_manage_settings')) { ?>
73
- <div class="metabox-holder settings-metabox" style="display:none;">
74
- <div class="postbox">
75
- <div class="inside">
76
- <div class="row">
77
- <div class="col-xs-12 col-md-12">
78
- <a href="#clear-settings-modal" data-toggle="modal" class="btn btn-danger btn-block"><?php echo __('Reset AAM Settings', AAM_KEY); ?></a>
79
- </div>
80
- </div>
81
- </div>
82
- </div>
83
-
84
- <div class="modal fade" id="clear-settings-modal" tabindex="-1" role="dialog">
85
- <div class="modal-dialog modal-sm" role="document">
86
- <div class="modal-content">
87
- <div class="modal-header">
88
- <button type="button" class="close" data-dismiss="modal" aria-label="<?php echo __('Close', AAM_KEY); ?>"><span aria-hidden="true">&times;</span></button>
89
- <h4 class="modal-title"><?php echo __('Clear all settings', AAM_KEY); ?></h4>
90
- </div>
91
- <div class="modal-body">
92
- <p class="text-center alert alert-danger text-larger"><?php echo __('All AAM settings will be removed.', AAM_KEY); ?></p>
93
- </div>
94
- <div class="modal-footer">
95
- <button type="button" class="btn btn-danger" id="clear-settings"><?php echo __('Clear', AAM_KEY); ?></button>
96
- <button type="button" class="btn btn-default" data-dismiss="modal"><?php echo __('Cancel', AAM_KEY); ?></button>
97
- </div>
98
- </div>
99
- </div>
100
- </div>
101
- </div>
102
- <?php } ?>
103
-
104
- <div class="metabox-holder extensions-metabox" style="display:none;">
105
- <div class="postbox">
106
- <div class="inside">
107
- <div class="aam-postbox-inside text-center">
108
- <p class="alert alert-info text-larger highlighted-italic"><?php echo AAM_Backend_View_Helper::preparePhrase('With the [Enterprise Package] get our dedicated support channel and all the premium add-ons for [50+ live websites]', 'i', 'b'); ?></p>
109
- <a href="https://aamplugin.com/pricing/enterprise-package" target="_blank" class="btn btn-sm btn-primary btn-block"><i class="icon-link"></i> <?php echo __('Read More', AAM_KEY); ?></a>
110
- </div>
111
- </div>
112
- </div>
113
- </div>
114
-
115
- <?php echo static::loadTemplate(__DIR__ . '/page/subject-panel.php'); ?>
116
- <?php echo static::loadTemplate(__DIR__ . '/page/subject-panel-advanced.php'); ?>
117
- </div>
118
- </div>
119
  </div>
 
120
  <?php }
1
  <?php /** @version 6.0.0 */ ?>
2
 
3
  <?php if (defined('AAM_KEY')) { ?>
4
+ <div class="aam-iframe-container" style="overflow: hidden; padding-top: 56.25%; position: relative; margin: 0;">
5
+ <iframe src="<?php echo admin_url('admin.php?page=aam&aamframe=main'); ?>" width="100%" height="100%" style="border: 0; height: 100%; left: 0; position: absolute; top: 0; width: 100%;"></iframe>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6
  </div>
7
+ <style>.wp-admin { background-color: #FFFFFF; }</style>
8
  <?php }
application/Backend/tmpl/metabox/main-iframe.php ADDED
@@ -0,0 +1,124 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php /** @version 6.0.0 */ ?>
2
+
3
+ <?php if (defined('AAM_KEY')) { ?>
4
+ <?php echo static::loadTemplate(__DIR__ . '/iframe-header.php'); ?>
5
+
6
+ <div class="wrap" id="aam-container">
7
+ <?php echo static::loadTemplate(dirname(__DIR__) . '/page/current-subject.php'); ?>
8
+
9
+ <div class="row">
10
+ <div class="col-xs-12 col-md-8">
11
+ <div class="metabox-holder">
12
+ <div class="postbox">
13
+ <div class="inside" id="access-manager-inside">
14
+ <div class="aam-postbox-inside" id="aam-content">
15
+ <?php echo static::loadPartial('loading-content'); ?>
16
+ </div>
17
+ </div>
18
+ </div>
19
+ </div>
20
+ </div>
21
+
22
+ <div class="col-xs-12 col-md-4 aam-sidebar">
23
+ <?php if (AAM_Core_Console::count() && current_user_can('aam_show_notifications')) { ?>
24
+ <div class="metabox-holder shared-metabox">
25
+ <div class="postbox">
26
+ <h3 class="hndle text-danger">
27
+ <i class='icon-attention-circled'></i> <span><?php echo __('Notifications', AAM_KEY); ?></span>
28
+ </h3>
29
+ <div class="inside">
30
+ <div class="aam-postbox-inside">
31
+ <ul class="aam-error-list">
32
+ <?php foreach (AAM_Core_Console::getAll() as $message) { ?>
33
+ <li><?php echo $message; ?></li>
34
+ <?php } ?>
35
+ </ul>
36
+ <div class="hidden" id="migration-errors-container"><?php echo base64_encode(print_r(AAM_Core_Migration::getFailureLog(), 1)); ?></div>
37
+ </div>
38
+ </div>
39
+ </div>
40
+ </div>
41
+ <?php } ?>
42
+
43
+ <div class="metabox-holder shared-metabox">
44
+ <div class="postbox">
45
+ <div class="inside">
46
+ <div class="aam-social">
47
+ <a href="#" title="Access" data-type="main" class="aam-area text-danger">
48
+ <i class="icon-cog-alt"></i>
49
+ <span><?php echo __('Access', AAM_KEY); ?></span>
50
+ </a>
51
+ <?php if (current_user_can('aam_manage_settings')) { ?>
52
+ <a href="#" title="Settings" data-type="settings" class="aam-area">
53
+ <i class="icon-wrench"></i>
54
+ <span><?php echo __('Settings', AAM_KEY); ?></span>
55
+ </a>
56
+ <?php } ?>
57
+ <?php if (current_user_can('aam_manage_addons')) { ?>
58
+ <a href="#" title="Add-ons" data-type="extensions" class="aam-area">
59
+ <i class="icon-cubes"></i>
60
+ <span><?php echo __('Add-Ons', AAM_KEY); ?></span>
61
+ </a>
62
+ <?php } ?>
63
+ <?php if (current_user_can('aam_view_help_btn')) { ?>
64
+ <a href="https://aamplugin.com/support" title="Help" target="_blank">
65
+ <i class="icon-help-circled"></i>
66
+ <span><?php echo __('Help', AAM_KEY); ?></span>
67
+ </a>
68
+ <?php } ?>
69
+ </div>
70
+ </div>
71
+ </div>
72
+ </div>
73
+
74
+ <?php if (current_user_can('aam_manage_settings')) { ?>
75
+ <div class="metabox-holder settings-metabox" style="display:none;">
76
+ <div class="postbox">
77
+ <div class="inside">
78
+ <div class="row">
79
+ <div class="col-xs-12 col-md-12">
80
+ <a href="#clear-settings-modal" data-toggle="modal" class="btn btn-danger btn-block"><?php echo __('Reset AAM Settings', AAM_KEY); ?></a>
81
+ </div>
82
+ </div>
83
+ </div>
84
+ </div>
85
+
86
+ <div class="modal fade" id="clear-settings-modal" tabindex="-1" role="dialog">
87
+ <div class="modal-dialog modal-sm" role="document">
88
+ <div class="modal-content">
89
+ <div class="modal-header">
90
+ <button type="button" class="close" data-dismiss="modal" aria-label="<?php echo __('Close', AAM_KEY); ?>"><span aria-hidden="true">&times;</span></button>
91
+ <h4 class="modal-title"><?php echo __('Clear all settings', AAM_KEY); ?></h4>
92
+ </div>
93
+ <div class="modal-body">
94
+ <p class="text-center alert alert-danger text-larger"><?php echo __('All AAM settings will be removed.', AAM_KEY); ?></p>
95
+ </div>
96
+ <div class="modal-footer">
97
+ <button type="button" class="btn btn-danger" id="clear-settings"><?php echo __('Clear', AAM_KEY); ?></button>
98
+ <button type="button" class="btn btn-default" data-dismiss="modal"><?php echo __('Cancel', AAM_KEY); ?></button>
99
+ </div>
100
+ </div>
101
+ </div>
102
+ </div>
103
+ </div>
104
+ <?php } ?>
105
+
106
+ <div class="metabox-holder extensions-metabox" style="display:none;">
107
+ <div class="postbox">
108
+ <div class="inside">
109
+ <div class="aam-postbox-inside text-center">
110
+ <p class="alert alert-info text-larger highlighted-italic"><?php echo AAM_Backend_View_Helper::preparePhrase('With the [Enterprise Package] get our dedicated support channel and all the premium add-ons for [50+ live websites]', 'i', 'b'); ?></p>
111
+ <a href="https://aamplugin.com/pricing/enterprise-package" target="_blank" class="btn btn-sm btn-primary btn-block"><i class="icon-link"></i> <?php echo __('Read More', AAM_KEY); ?></a>
112
+ </div>
113
+ </div>
114
+ </div>
115
+ </div>
116
+
117
+ <?php echo static::loadTemplate(dirname(__DIR__) . '/page/subject-panel.php'); ?>
118
+ <?php echo static::loadTemplate(dirname(__DIR__) . '/page/subject-panel-advanced.php'); ?>
119
+ </div>
120
+ </div>
121
+ </div>
122
+
123
+ <?php echo static::loadTemplate(__DIR__ . '/iframe-footer.php'); ?>
124
+ <?php }
application/Backend/tmpl/service/welcome.php CHANGED
@@ -8,6 +8,8 @@
8
  <div class="col-xs-12">
9
  <div class="panel panel-default">
10
  <div class="panel-body">
 
 
11
  <p class="text-larger"><?php echo __('Thank you for using the Advanced Access Manager (aka AAM) plugin. With strong knowledge and experience in WordPress core, AAM becomes a very powerful collection of services to manage access to the website frontend, backend, and RESTful API.', AAM_KEY); ?></p>
12
  <p class="text-larger"><span class="aam-highlight"><?php echo __('Note!', AAM_KEY); ?></span> <?php echo sprintf(AAM_Backend_View_Helper::preparePhrase('Power comes with responsibility. Make sure you have a good understanding of %sWordPress Roles & Capabilities%s because AAM is very closely integrated with WordPress core. It is also recommended to have a backup of your database table wp_options before you start working with AAM. There is no need to back up your files. AAM does not modify any physical files on your server and never did.'), '<a href="https://aamplugin.com/article/wordpress-roles-and-capabilities" target="_blank">', '</a>', $wpdb->options); ?></p>
13
  <p class="text-larger"><?php echo __('AAM is thoroughly tested on the fresh installation of the latest WordPress and in the latest versions of Chrome, Safari, IE, and Firefox. If you have any issues, the most typical cause is a conflict with other plugins or themes.', AAM_KEY); ?></p>
8
  <div class="col-xs-12">
9
  <div class="panel panel-default">
10
  <div class="panel-body">
11
+ <p class="text-center"><img src="<?php echo AAM_MEDIA . '/armadillo.svg'; ?>" width="192" /></p>
12
+
13
  <p class="text-larger"><?php echo __('Thank you for using the Advanced Access Manager (aka AAM) plugin. With strong knowledge and experience in WordPress core, AAM becomes a very powerful collection of services to manage access to the website frontend, backend, and RESTful API.', AAM_KEY); ?></p>
14
  <p class="text-larger"><span class="aam-highlight"><?php echo __('Note!', AAM_KEY); ?></span> <?php echo sprintf(AAM_Backend_View_Helper::preparePhrase('Power comes with responsibility. Make sure you have a good understanding of %sWordPress Roles & Capabilities%s because AAM is very closely integrated with WordPress core. It is also recommended to have a backup of your database table wp_options before you start working with AAM. There is no need to back up your files. AAM does not modify any physical files on your server and never did.'), '<a href="https://aamplugin.com/article/wordpress-roles-and-capabilities" target="_blank">', '</a>', $wpdb->options); ?></p>
15
  <p class="text-larger"><?php echo __('AAM is thoroughly tested on the fresh installation of the latest WordPress and in the latest versions of Chrome, Safari, IE, and Firefox. If you have any issues, the most typical cause is a conflict with other plugins or themes.', AAM_KEY); ?></p>
application/Core/Gateway.php CHANGED
@@ -182,8 +182,12 @@ final class AAM_Core_Gateway
182
  * @access public
183
  * @version 6.0.0
184
  */
185
- public function getAccessPolicyManager(AAM_Core_Subject $subject)
186
  {
 
 
 
 
187
  if (AAM_Core_Config::get(AAM_Service_AccessPolicy::FEATURE_FLAG, true)) {
188
  $manager = AAM_Core_Policy_Factory::get($subject);
189
  } else {
182
  * @access public
183
  * @version 6.0.0
184
  */
185
+ public function getAccessPolicyManager(AAM_Core_Subject $subject = null)
186
  {
187
+ if (is_null($subject)) {
188
+ $subject = AAM::getUser();
189
+ }
190
+
191
  if (AAM_Core_Config::get(AAM_Service_AccessPolicy::FEATURE_FLAG, true)) {
192
  $manager = AAM_Core_Policy_Factory::get($subject);
193
  } else {
application/Core/Jwt/Issuer.php CHANGED
@@ -124,24 +124,15 @@ class AAM_Core_Jwt_Issuer
124
  *
125
  * @return object
126
  *
127
- * @access public
128
  * @version 6.0.0
129
  */
130
- public function extractTokenHeaders($token)
131
  {
132
  $parts = explode('.', $token);
133
- $headers = array();
134
- try {
135
- $headers = Firebase\JWT\JWT::jsonDecode(
136
- Firebase\JWT\JWT::urlsafeB64Decode($parts[0])
137
- );
138
- } catch (Exception $ex) {
139
- _doing_it_wrong(
140
- __CLASS__ . '::' . __METHOD__,
141
- 'Invalid JWT token: ' . $ex->getMessage(),
142
- AAM_VERSION
143
- );
144
- }
145
 
146
  return (object) $headers;
147
  }
124
  *
125
  * @return object
126
  *
127
+ * @access protected
128
  * @version 6.0.0
129
  */
130
+ protected function extractTokenHeaders($token)
131
  {
132
  $parts = explode('.', $token);
133
+ $headers = Firebase\JWT\JWT::jsonDecode(
134
+ Firebase\JWT\JWT::urlsafeB64Decode($parts[0])
135
+ );
 
 
 
 
 
 
 
 
 
136
 
137
  return (object) $headers;
138
  }
application/Core/Policy/Manager.php CHANGED
@@ -97,6 +97,36 @@ class AAM_Core_Policy_Manager
97
  return $value;
98
  }
99
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
100
  /**
101
  * Find all statements that match provided resource of list of resources
102
  *
97
  return $value;
98
  }
99
 
100
+ /**
101
+ * Find all params that match provided search criteria
102
+ *
103
+ * @param string|array $s
104
+ * @param array $args
105
+ *
106
+ * @return array
107
+ *
108
+ * @access public
109
+ * @version 6.0.0
110
+ */
111
+ public function getParams($s, $args = array())
112
+ {
113
+ if (is_array($s)) {
114
+ $regex = '/^(' . implode('|', $s) . ')$/i';
115
+ } else {
116
+ $regex = "/^{$s}$/i";
117
+ }
118
+
119
+ $params = array();
120
+
121
+ foreach ($this->tree['Param'] as $key => $param) {
122
+ if (preg_match($regex, $key) && $this->isApplicable($param, $args)) {
123
+ $params[$key] = $param;
124
+ }
125
+ }
126
+
127
+ return $this->replaceTokens($params);
128
+ }
129
+
130
  /**
131
  * Find all statements that match provided resource of list of resources
132
  *
application/Core/Policy/Token.php CHANGED
@@ -37,6 +37,7 @@ class AAM_Core_Policy_Token
37
  'HTTP_COOKIE' => 'AAM_Core_Request::cookie',
38
  'PHP_SERVER' => 'AAM_Core_Request::server',
39
  'ARGS' => 'AAM_Core_Policy_Token::getArgValue',
 
40
  'CONST' => 'AAM_Core_Policy_Token::getConstant',
41
  'WP_OPTION' => 'AAM_Core_API::getOption',
42
  'JWT' => 'AAM_Core_Policy_Token::getJwtClaim'
@@ -136,7 +137,7 @@ class AAM_Core_Policy_Token
136
  break;
137
 
138
  default:
139
- $value = $user->{$prop};
140
  break;
141
  }
142
 
37
  'HTTP_COOKIE' => 'AAM_Core_Request::cookie',
38
  'PHP_SERVER' => 'AAM_Core_Request::server',
39
  'ARGS' => 'AAM_Core_Policy_Token::getArgValue',
40
+ 'ENV' => 'getenv',
41
  'CONST' => 'AAM_Core_Policy_Token::getConstant',
42
  'WP_OPTION' => 'AAM_Core_API::getOption',
43
  'JWT' => 'AAM_Core_Policy_Token::getJwtClaim'
137
  break;
138
 
139
  default:
140
+ $value = (is_a($user, 'AAM_Core_Subject_User') ? $user->{$prop} : null);
141
  break;
142
  }
143
 
application/Migration/2019_06_30-base.php CHANGED
@@ -199,7 +199,8 @@ class Migration600 implements AAM_Core_Contract_MigrationInterface
199
  case 'aam-check':
200
  case 'aam-uid':
201
  // Skip this one and just delete
202
- $result = AAM_Core_API::deleteOption($option->option_name);
 
203
  break;
204
 
205
  default:
@@ -379,7 +380,7 @@ class Migration600 implements AAM_Core_Contract_MigrationInterface
379
 
380
  if ($result === true) {
381
  // Delete legacy option
382
- AAM_Core_API::deleteOption($option->option_name);
383
  } else {
384
  $response = new WP_Error(
385
  'migration_error', 'Failed to convert ConfigPress settings', $option
@@ -407,7 +408,7 @@ class Migration600 implements AAM_Core_Contract_MigrationInterface
407
 
408
  if ($result === true) {
409
  // Delete legacy option
410
- AAM_Core_API::deleteOption($option->option_name);
411
  } else {
412
  $response = new WP_Error(
413
  'migration_error', 'Failed to convert Addon settings', $option
@@ -475,7 +476,7 @@ class Migration600 implements AAM_Core_Contract_MigrationInterface
475
 
476
  if ($result === true) {
477
  // Delete legacy option
478
- AAM_Core_API::deleteOption($option->option_name);
479
  } else {
480
  $response = new WP_Error(
481
  'migration_error', 'Failed to convert core settings', $option
@@ -574,7 +575,7 @@ class Migration600 implements AAM_Core_Contract_MigrationInterface
574
  AAM_Core_AccessSettings::getInstance()->set($xpath, $options);
575
 
576
  // Delete legacy option
577
- AAM_Core_API::deleteOption($option->option_name);
578
  } else {
579
  $error = new WP_Error(
580
  'migration_error',
199
  case 'aam-check':
200
  case 'aam-uid':
201
  // Skip this one and just delete
202
+ $result = true;
203
+ //$result = AAM_Core_API::deleteOption($option->option_name);
204
  break;
205
 
206
  default:
380
 
381
  if ($result === true) {
382
  // Delete legacy option
383
+ // AAM_Core_API::deleteOption($option->option_name);
384
  } else {
385
  $response = new WP_Error(
386
  'migration_error', 'Failed to convert ConfigPress settings', $option
408
 
409
  if ($result === true) {
410
  // Delete legacy option
411
+ // AAM_Core_API::deleteOption($option->option_name);
412
  } else {
413
  $response = new WP_Error(
414
  'migration_error', 'Failed to convert Addon settings', $option
476
 
477
  if ($result === true) {
478
  // Delete legacy option
479
+ // AAM_Core_API::deleteOption($option->option_name);
480
  } else {
481
  $response = new WP_Error(
482
  'migration_error', 'Failed to convert core settings', $option
575
  AAM_Core_AccessSettings::getInstance()->set($xpath, $options);
576
 
577
  // Delete legacy option
578
+ // AAM_Core_API::deleteOption($option->option_name);
579
  } else {
580
  $error = new WP_Error(
581
  'migration_error',
application/Service/AccessPolicy.php CHANGED
@@ -448,6 +448,9 @@ class AAM_Service_AccessPolicy
448
  break;
449
 
450
  default:
 
 
 
451
  break;
452
  }
453
 
@@ -468,7 +471,7 @@ class AAM_Service_AccessPolicy
468
  */
469
  protected function convertedPostSimpleAction(&$options, $action, $statement)
470
  {
471
- $options[$action] = strtolower($statement['Effect']) !== "allow";
472
  }
473
 
474
  /**
@@ -485,7 +488,7 @@ class AAM_Service_AccessPolicy
485
  */
486
  protected function convertedPostReadAction(&$options, $statement, $ns = '')
487
  {
488
- $effect = strtolower($statement['Effect']) !== "allow";
489
 
490
  if (array_key_exists('Metadata', $statement)) {
491
  $metadata = $statement['Metadata'];
@@ -573,8 +576,15 @@ class AAM_Service_AccessPolicy
573
  $chunks = explode(':', $resource);
574
  $effect = (strtolower($stm['Effect']) === 'allow' ? false : true);
575
 
 
 
 
 
 
 
 
576
  // Take in consideration only visibility properties
577
- if ($chunks[2] === 'list') {
578
  if (is_numeric($chunks[1])) {
579
  $id = intval($chunks[1]);
580
  } else {
@@ -585,7 +595,7 @@ class AAM_Service_AccessPolicy
585
  // Making sure that we have at least numeric post ID
586
  if (!empty($id)) {
587
  $visibility->pushOptions('post', "{$id}|{$chunks[0]}", array(
588
- 'hidden' => $effect
589
  ));
590
  }
591
  }
@@ -618,11 +628,12 @@ class AAM_Service_AccessPolicy
618
  $parsed[$uri] = array(
619
  'type' => 'allow'
620
  );
621
- } elseif (array_key_exists('Metadata', $stm)) {
622
- $option[$uri] = $this->convertUriAction($stm['Metadata']);
623
  } else {
624
  $option[$uri] = array(
625
- 'type' => 'default'
 
626
  );
627
  }
628
  }
448
  break;
449
 
450
  default:
451
+ $output = apply_filters(
452
+ 'aam_convert_post_action_filter', $output, $action, $stmt, $ns
453
+ );
454
  break;
455
  }
456
 
471
  */
472
  protected function convertedPostSimpleAction(&$options, $action, $statement)
473
  {
474
+ $options[$action] = strtolower($statement['Effect']) !== 'allow';
475
  }
476
 
477
  /**
488
  */
489
  protected function convertedPostReadAction(&$options, $statement, $ns = '')
490
  {
491
+ $effect = strtolower($statement['Effect']) !== 'allow';
492
 
493
  if (array_key_exists('Metadata', $statement)) {
494
  $metadata = $statement['Metadata'];
576
  $chunks = explode(':', $resource);
577
  $effect = (strtolower($stm['Effect']) === 'allow' ? false : true);
578
 
579
+ // Allow other plugins to determine what access options should be
580
+ // considered during visibility check. For example Plus Package uses
581
+ // HIDDEN TO OTHERS options
582
+ $map = apply_filters('aam_policy_post_visibility_map_filter', array(
583
+ 'list' => 'hidden'
584
+ ));
585
+
586
  // Take in consideration only visibility properties
587
+ if (array_key_exists($chunks[2], $map)) {
588
  if (is_numeric($chunks[1])) {
589
  $id = intval($chunks[1]);
590
  } else {
595
  // Making sure that we have at least numeric post ID
596
  if (!empty($id)) {
597
  $visibility->pushOptions('post', "{$id}|{$chunks[0]}", array(
598
+ $map[$chunks[2]] => $effect
599
  ));
600
  }
601
  }
628
  $parsed[$uri] = array(
629
  'type' => 'allow'
630
  );
631
+ } elseif(isset($stm['Metadata']['Redirect'])) {
632
+ $option[$uri] = $this->convertUriAction($stm['Metadata']['Redirect']);
633
  } else {
634
  $option[$uri] = array(
635
+ 'type' => 'default',
636
+ 'action' => null
637
  );
638
  }
639
  }
application/Service/Content.php CHANGED
@@ -307,7 +307,7 @@ class AAM_Service_Content
307
  $response = new WP_REST_Response($data, $status);
308
 
309
  if ($auth->get_error_code() === 'post_access_redirected') {
310
- $response->set_headers(array('Location' => $data['location']));
311
  }
312
  } else {
313
  $this->incrementPostReadCounter($object);
@@ -545,12 +545,7 @@ class AAM_Service_Content
545
  }
546
 
547
  if ($postType === 'any') {
548
- $postType = array_keys(
549
- get_post_types(
550
- array('public' => true, 'exclude_from_search' => false),
551
- 'names'
552
- )
553
- );
554
  }
555
 
556
  return (array) $postType;
@@ -1064,8 +1059,8 @@ class AAM_Service_Content
1064
  'post_access_redirected',
1065
  'Direct access is not allowed. Follow the provided redirect rule.',
1066
  array(
1067
- 'location' => $location,
1068
- 'status' => $redirect['httpCode']
1069
  )
1070
  );
1071
  }
307
  $response = new WP_REST_Response($data, $status);
308
 
309
  if ($auth->get_error_code() === 'post_access_redirected') {
310
+ $response->set_headers(array('Location' => $data['url']));
311
  }
312
  } else {
313
  $this->incrementPostReadCounter($object);
545
  }
546
 
547
  if ($postType === 'any') {
548
+ $postType = array_keys(get_post_types(array('public' => true), 'names'));
 
 
 
 
 
549
  }
550
 
551
  return (array) $postType;
1059
  'post_access_redirected',
1060
  'Direct access is not allowed. Follow the provided redirect rule.',
1061
  array(
1062
+ 'url' => $location,
1063
+ 'status' => $redirect['httpCode']
1064
  )
1065
  );
1066
  }
application/Service/Jwt.php CHANGED
@@ -510,8 +510,9 @@ class AAM_Service_Jwt
510
  */
511
  public function determineUser($userId)
512
  {
 
513
  if (empty($userId)) {
514
- $token = $this->extractToken();
515
 
516
  if (!empty($token)) {
517
  $result = AAM_Core_Jwt_Issuer::getInstance()->validateToken($token->jwt);
510
  */
511
  public function determineUser($userId)
512
  {
513
+
514
  if (empty($userId)) {
515
+ $token = $this->extractToken();
516
 
517
  if (!empty($token)) {
518
  $result = AAM_Core_Jwt_Issuer::getInstance()->validateToken($token->jwt);
application/Service/SecureLogin.php CHANGED
@@ -136,19 +136,23 @@ class AAM_Service_SecureLogin
136
  'callback' => array($this, 'authenticate'),
137
  'args' => apply_filters('aam_restful_authentication_args_filter', array(
138
  'username' => array(
139
- 'description' => __('Valid username.', AAM_KEY),
140
  'type' => 'string',
141
  ),
142
  'password' => array(
143
- 'description' => __('Valid password.', AAM_KEY),
144
  'type' => 'string',
145
  ),
146
  'redirect' => array(
147
- 'description' => __('Redirect URL after authentication.', AAM_KEY),
148
  'type' => 'string',
149
  ),
150
  'remember' => array(
151
- 'description' => __('Prolong the user session.', AAM_KEY),
 
 
 
 
152
  'type' => 'boolean',
153
  )
154
  )),
@@ -172,6 +176,11 @@ class AAM_Service_SecureLogin
172
  $status = 200;
173
 
174
  try {
 
 
 
 
 
175
  $user = wp_signon(array(
176
  'user_login' => $request->get_param('username'),
177
  'user_password' => $request->get_param('password'),
136
  'callback' => array($this, 'authenticate'),
137
  'args' => apply_filters('aam_restful_authentication_args_filter', array(
138
  'username' => array(
139
+ 'description' => 'Valid username.',
140
  'type' => 'string',
141
  ),
142
  'password' => array(
143
+ 'description' => 'Valid password.',
144
  'type' => 'string',
145
  ),
146
  'redirect' => array(
147
+ 'description' => 'Redirect URL after authentication.',
148
  'type' => 'string',
149
  ),
150
  'remember' => array(
151
+ 'description' => 'Prolong the user session.',
152
+ 'type' => 'boolean',
153
+ ),
154
+ 'returnAuthCookies' => array(
155
+ 'description' => 'Return auth cookies.',
156
  'type' => 'boolean',
157
  )
158
  )),
176
  $status = 200;
177
 
178
  try {
179
+ // No need to generate Auth cookies, unless explicitly stated so
180
+ if ($request->get_param('returnAuthCookies') !== true) {
181
+ add_filter('send_auth_cookies', '__return_false');
182
+ }
183
+
184
  $user = wp_signon(array(
185
  'user_login' => $request->get_param('username'),
186
  'user_password' => $request->get_param('password'),
lang/advanced-access-manager-en_US.po CHANGED
@@ -1,7 +1,7 @@
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Advanced Access Manager\n"
4
- "POT-Creation-Date: 2019-10-31 22:27-0400\n"
5
  "PO-Revision-Date: \n"
6
  "Last-Translator: \n"
7
  "Language-Team: AAMPlugin <support@aamplugin.com>\n"
@@ -16,15 +16,15 @@ msgstr ""
16
  "X-Poedit-Basepath: ..\n"
17
  "X-Poedit-SearchPath-0: .\n"
18
 
19
- #: aam.php:226
20
  msgid "PHP 5.6.40 or higher is required."
21
  msgstr ""
22
 
23
- #: aam.php:228
24
  msgid "WP 4.7.0 or higher is required."
25
  msgstr ""
26
 
27
- #: application/Addon/Repository.php:108
28
  msgid ""
29
  "Manage access to your WordPress website posts, pages, media, custom post "
30
  "types, categories, tags and custom taxonomies for any role, individual user, "
@@ -32,21 +32,21 @@ msgid ""
32
  "for frontend, backend or API levels."
33
  msgstr ""
34
 
35
- #: application/Addon/Repository.php:113
36
  msgid ""
37
  "Manage access to your WordPress website by users IP address or referred host "
38
  "and completely lock down the entire website if necessary. Define the "
39
  "unlimited number of whitelisted or blacklisted IPs or hosts."
40
  msgstr ""
41
 
42
- #: application/Addon/Repository.php:118
43
  msgid ""
44
  "Define and manage complex WordPress role hierarchy where all the access "
45
  "settings are propagated down the tree with the ability to override any "
46
  "settings for any specific role."
47
  msgstr ""
48
 
49
- #: application/Addon/Repository.php:133
50
  msgid ""
51
  "Get the complete list of all premium AAM addons in one package and all "
52
  "future premium addons will be included for now additional cost."
@@ -130,11 +130,11 @@ msgstr ""
130
  msgid "Metaboxes & Widgets"
131
  msgstr ""
132
 
133
- #: application/Backend/Feature/Main/Policy.php:214
134
  msgid "(no title)"
135
  msgstr ""
136
 
137
- #: application/Backend/Feature/Main/Policy.php:307
138
  #: application/Service/AccessPolicy.php:66
139
  #: application/Service/AccessPolicy.php:169
140
  msgid "Access Policies"
@@ -184,13 +184,12 @@ msgid "Access Denied Redirect"
184
  msgstr ""
185
 
186
  #: application/Backend/Feature/Main/Route.php:118
187
- #: application/Service/Route.php:66
188
  msgid "API Routes"
189
  msgstr ""
190
 
191
  #: application/Backend/Feature/Main/Toolbar.php:140
192
- #: application/Service/Toolbar.php:66
193
- msgid "Admin Toolbar"
194
  msgstr ""
195
 
196
  #: application/Backend/Feature/Main/Uri.php:135 application/Service/Uri.php:53
@@ -294,13 +293,13 @@ msgstr ""
294
  msgid "Cannot manage yourself"
295
  msgstr ""
296
 
297
- #: application/Backend/Feature/Subject/User.php:227
298
- #: application/Backend/Feature/Subject/User.php:252
299
- #: application/Backend/View/Localization.php:142 media/js/aam.js:4664
300
  msgid "Unexpected application error"
301
  msgstr ""
302
 
303
- #: application/Backend/Manager.php:116
304
  #, php-format
305
  msgid ""
306
  "There was at least one error detected with the automated migration script. "
@@ -308,12 +307,12 @@ msgid ""
308
  "%ssupport@aamplugin.com%s for further assistance."
309
  msgstr ""
310
 
311
- #: application/Backend/Manager.php:272
312
  msgid "[Help us] to be more noticeable and submit your review"
313
  msgstr ""
314
 
315
  #: application/Backend/Subject.php:177
316
- msgid "You are not allowed to manage AAM subjects"
317
  msgstr ""
318
 
319
  #: application/Backend/View/Localization.php:32 media/js/aam.js:1993
@@ -328,7 +327,7 @@ msgstr ""
328
  #: media/js/aam.js:471 media/js/aam.js:1030 media/js/aam.js:2141
329
  #: media/js/aam.js:2183 media/js/aam.js:2382 media/js/aam.js:2401
330
  #: media/js/aam.js:2471 media/js/aam.js:2493 media/js/aam.js:2512
331
- #: media/js/aam.js:3478
332
  msgid "Saving..."
333
  msgstr ""
334
 
@@ -371,12 +370,12 @@ msgstr ""
371
  msgid "Failed to retrieve mataboxes"
372
  msgstr ""
373
 
374
- #: application/Backend/View/Localization.php:43 media/js/aam.js:2652
375
- #: media/js/aam.js:3365 media/js/aam.js:3557 media/js/aam.js:3786
376
  msgid "Search"
377
  msgstr ""
378
 
379
- #: application/Backend/View/Localization.php:44 media/js/aam.js:2653
380
  msgid "_TOTAL_ object(s)"
381
  msgstr ""
382
 
@@ -385,7 +384,7 @@ msgid "Failed"
385
  msgstr ""
386
 
387
  #: application/Backend/View/Localization.php:46 media/js/aam.js:64
388
- #: media/js/aam.js:4295
389
  msgid "Loading..."
390
  msgstr ""
391
 
@@ -410,7 +409,7 @@ msgstr ""
410
  #: application/Backend/tmpl/service/capability.php:30
411
  #: application/Backend/tmpl/service/capability.php:64
412
  #: application/Backend/tmpl/service/jwt.php:84 media/js/aam.js:1320
413
- #: media/js/aam.js:3568 media/js/aam.js:3801 media/js/aam.js:3886
414
  msgid "Create"
415
  msgstr ""
416
 
@@ -449,7 +448,7 @@ msgid "Update..."
449
  msgstr ""
450
 
451
  #: application/Backend/View/Localization.php:59 media/js/aam.js:510
452
- #: media/js/aam.js:1942 media/js/aam.js:3516 media/js/aam.js:3904
453
  msgid "Deleting..."
454
  msgstr ""
455
 
@@ -493,7 +492,7 @@ msgid "All Users, Roles and Visitor"
493
  msgstr ""
494
 
495
  #: application/Backend/View/Localization.php:69 media/js/aam.js:1161
496
- #: media/js/aam.js:1236 media/js/aam.js:4264
497
  msgid "Failed to apply policy changes"
498
  msgstr ""
499
 
@@ -510,7 +509,7 @@ msgid "Detach Policy From Visitors"
510
  msgstr ""
511
 
512
  #: application/Backend/View/Localization.php:72 media/js/aam.js:649
513
- #: media/js/aam.js:3692
514
  msgid "Generating URL..."
515
  msgstr ""
516
 
@@ -520,7 +519,7 @@ msgid "Anonymous"
520
  msgstr ""
521
 
522
  #: application/Backend/View/Localization.php:74 media/js/aam.js:1142
523
- #: media/js/aam.js:1217 media/js/aam.js:1808 media/js/aam.js:4110
524
  msgid "Processing..."
525
  msgstr ""
526
 
@@ -529,7 +528,7 @@ msgid "Loading roles..."
529
  msgstr ""
530
 
531
  #: application/Backend/View/Localization.php:76 media/js/aam.js:659
532
- #: media/js/aam.js:3703
533
  msgid "Failed to generate JWT token"
534
  msgstr ""
535
 
@@ -545,7 +544,7 @@ msgstr ""
545
  msgid "Current role"
546
  msgstr ""
547
 
548
- #: application/Backend/View/Localization.php:80 media/js/aam.js:2842
549
  msgid "Manage Access"
550
  msgstr ""
551
 
@@ -554,7 +553,7 @@ msgid "Filter by role"
554
  msgstr ""
555
 
556
  #: application/Backend/View/Localization.php:82
557
- #: application/Backend/View/PostOptionList.php:76 media/js/aam.js:2854
558
  msgid "Edit"
559
  msgstr ""
560
 
@@ -564,9 +563,9 @@ msgstr ""
564
  #: application/Backend/tmpl/partial/post-access-form.php:90
565
  #: application/Backend/tmpl/partial/post-access-form.php:163
566
  #: application/Backend/tmpl/partial/post-access-form.php:184
567
- #: application/Backend/tmpl/partial/post-access-form.php:205
568
  #: application/Backend/tmpl/service/uri.php:108 media/js/aam.js:1044
569
- #: media/js/aam.js:3495
570
  msgid "Save"
571
  msgstr ""
572
 
@@ -673,158 +672,158 @@ msgstr ""
673
  msgid "No capabilities"
674
  msgstr ""
675
 
676
- #: application/Backend/View/Localization.php:106 media/js/aam.js:2674
677
  msgid "Post Type"
678
  msgstr ""
679
 
680
- #: application/Backend/View/Localization.php:107 media/js/aam.js:2679
681
  msgid "Hierarchical Taxonomy"
682
  msgstr ""
683
 
684
- #: application/Backend/View/Localization.php:108 media/js/aam.js:2684
685
  msgid "Hierarchical Term"
686
  msgstr ""
687
 
688
- #: application/Backend/View/Localization.php:109 media/js/aam.js:2689
689
  msgid "Tag Taxonomy"
690
  msgstr ""
691
 
692
- #: application/Backend/View/Localization.php:110 media/js/aam.js:2694
693
  msgid "Tag"
694
  msgstr ""
695
 
696
- #: application/Backend/View/Localization.php:111 media/js/aam.js:2705
697
  msgid "Customized Settings"
698
  msgstr ""
699
 
700
- #: application/Backend/View/Localization.php:112 media/js/aam.js:2775
701
- #: media/js/aam.js:2797
702
  msgid "Parent"
703
  msgstr ""
704
 
705
- #: application/Backend/View/Localization.php:113 media/js/aam.js:2828
706
  msgid "Drill-Down"
707
  msgstr ""
708
 
709
- #: application/Backend/View/Localization.php:114 media/js/aam.js:3366
710
  msgid "_TOTAL_ route(s)"
711
  msgstr ""
712
 
713
- #: application/Backend/View/Localization.php:115 media/js/aam.js:3368
714
  msgid "No API endpoints found. You might have APIs disabled."
715
  msgstr ""
716
 
717
- #: application/Backend/View/Localization.php:116 media/js/aam.js:3369
718
- #: media/js/aam.js:3790 media/js/aam.js:4064
719
  msgid "Nothing to show"
720
  msgstr ""
721
 
722
- #: application/Backend/View/Localization.php:117 media/js/aam.js:3486
723
  msgid "Failed to save URI rule"
724
  msgstr ""
725
 
726
- #: application/Backend/View/Localization.php:118 media/js/aam.js:3522
727
  msgid "Failed to delete URI rule"
728
  msgstr ""
729
 
730
- #: application/Backend/View/Localization.php:119 media/js/aam.js:3558
731
  msgid "_TOTAL_ URI(s)"
732
  msgstr ""
733
 
734
- #: application/Backend/View/Localization.php:120 media/js/aam.js:3597
735
  msgid "Edit Rule"
736
  msgstr ""
737
 
738
- #: application/Backend/View/Localization.php:121 media/js/aam.js:3609
739
  msgid "Delete Rule"
740
  msgstr ""
741
 
742
- #: application/Backend/View/Localization.php:122 media/js/aam.js:3624
743
  msgid "Denied"
744
  msgstr ""
745
 
746
- #: application/Backend/View/Localization.php:123 media/js/aam.js:3631
747
  msgid "Redirected"
748
  msgstr ""
749
 
750
- #: application/Backend/View/Localization.php:124 media/js/aam.js:3636
751
  msgid "Callback"
752
  msgstr ""
753
 
754
- #: application/Backend/View/Localization.php:125 media/js/aam.js:3641
755
  msgid "Allowed"
756
  msgstr ""
757
 
758
- #: application/Backend/View/Localization.php:126 media/js/aam.js:3688
759
  msgid "Generating token..."
760
  msgstr ""
761
 
762
- #: application/Backend/View/Localization.php:127 media/js/aam.js:3787
763
  msgid "_TOTAL_ token(s)"
764
  msgstr ""
765
 
766
- #: application/Backend/View/Localization.php:128 media/js/aam.js:3789
767
  msgid "No JWT tokens have been generated."
768
  msgstr ""
769
 
770
- #: application/Backend/View/Localization.php:129 media/js/aam.js:3834
771
  msgid "Delete Token"
772
  msgstr ""
773
 
774
- #: application/Backend/View/Localization.php:130 media/js/aam.js:3847
775
  msgid "View Token"
776
  msgstr ""
777
 
778
- #: application/Backend/View/Localization.php:131 media/js/aam.js:3872
779
  msgid "Creating..."
780
  msgstr ""
781
 
782
- #: application/Backend/View/Localization.php:132 media/js/aam.js:4061
783
  msgid "Search Service"
784
  msgstr ""
785
 
786
- #: application/Backend/View/Localization.php:133 media/js/aam.js:4062
787
  msgid "_TOTAL_ service(s)"
788
  msgstr ""
789
 
790
  #: application/Backend/View/Localization.php:134
791
  #: application/Backend/tmpl/settings/content.php:19
792
  #: application/Backend/tmpl/settings/core.php:16
793
- #: application/Backend/tmpl/settings/security.php:16 media/js/aam.js:4074
794
  msgid "Enabled"
795
  msgstr ""
796
 
797
  #: application/Backend/View/Localization.php:135
798
  #: application/Backend/tmpl/settings/content.php:19
799
  #: application/Backend/tmpl/settings/core.php:16
800
- #: application/Backend/tmpl/settings/security.php:16 media/js/aam.js:4074
801
  msgid "Disabled"
802
  msgstr ""
803
 
804
- #: application/Backend/View/Localization.php:136 media/js/aam.js:4116
805
  msgid "All settings has been cleared successfully"
806
  msgstr ""
807
 
808
  #: application/Backend/View/Localization.php:137
809
- #: application/Backend/tmpl/index.php:95 media/js/aam.js:4128
810
  msgid "Clear"
811
  msgstr ""
812
 
813
  #: application/Backend/View/Localization.php:138
814
  #: application/Backend/tmpl/page/subject-panel-advanced.php:102
815
- #: application/Backend/tmpl/partial/role-inheritance.php:7 media/js/aam.js:4300
816
  msgid "Select Role"
817
  msgstr ""
818
 
819
- #: application/Backend/View/Localization.php:139 media/js/aam.js:4586
820
  msgid "Data has been saved to clipboard"
821
  msgstr ""
822
 
823
- #: application/Backend/View/Localization.php:140 media/js/aam.js:4590
824
  msgid "Failed to save data to clipboard"
825
  msgstr ""
826
 
827
- #: application/Backend/View/Localization.php:141 media/js/aam.js:4660
828
  msgid "Operation completed successfully"
829
  msgstr ""
830
 
@@ -945,8 +944,8 @@ msgstr ""
945
  #: application/Backend/View/PostOptionList.php:81
946
  #: application/Backend/tmpl/page/subject-panel-advanced.php:59
947
  #: application/Backend/tmpl/service/jwt.php:136
948
- #: application/Backend/tmpl/service/uri.php:130 media/js/aam.js:3530
949
- #: media/js/aam.js:3918
950
  msgid "Delete"
951
  msgstr ""
952
 
@@ -980,31 +979,31 @@ msgstr ""
980
  msgid "Howdy, %username%"
981
  msgstr ""
982
 
983
- #: application/Backend/tmpl/index.php:25
984
  msgid "Notifications"
985
  msgstr ""
986
 
987
- #: application/Backend/tmpl/index.php:47
988
  msgid "Access"
989
  msgstr ""
990
 
991
- #: application/Backend/tmpl/index.php:52
992
  msgid "Settings"
993
  msgstr ""
994
 
995
- #: application/Backend/tmpl/index.php:58
996
  msgid "Add-Ons"
997
  msgstr ""
998
 
999
- #: application/Backend/tmpl/index.php:64
1000
  msgid "Help"
1001
  msgstr ""
1002
 
1003
- #: application/Backend/tmpl/index.php:78
1004
  msgid "Reset AAM Settings"
1005
  msgstr ""
1006
 
1007
- #: application/Backend/tmpl/index.php:88
1008
  #: application/Backend/tmpl/page/addon-panel.php:70
1009
  #: application/Backend/tmpl/page/addon-panel.php:81
1010
  #: application/Backend/tmpl/page/addon-panel.php:91
@@ -1026,7 +1025,7 @@ msgstr ""
1026
  #: application/Backend/tmpl/partial/post-access-form.php:174
1027
  #: application/Backend/tmpl/partial/post-access-form.php:185
1028
  #: application/Backend/tmpl/partial/post-access-form.php:195
1029
- #: application/Backend/tmpl/partial/post-access-form.php:206
1030
  #: application/Backend/tmpl/service/capability.php:49
1031
  #: application/Backend/tmpl/service/capability.php:65
1032
  #: application/Backend/tmpl/service/capability.php:75
@@ -1055,25 +1054,25 @@ msgstr ""
1055
  msgid "Close"
1056
  msgstr ""
1057
 
1058
- #: application/Backend/tmpl/index.php:89
1059
  msgid "Clear all settings"
1060
  msgstr ""
1061
 
1062
- #: application/Backend/tmpl/index.php:92
1063
  msgid "All AAM settings will be removed."
1064
  msgstr ""
1065
 
1066
- #: application/Backend/tmpl/index.php:96
1067
  msgid "Cancel"
1068
  msgstr ""
1069
 
1070
- #: application/Backend/tmpl/index.php:108
1071
  msgid ""
1072
  "With the [Enterprise Package] get our dedicated support channel and all the "
1073
  "premium add-ons for [50+ live websites]"
1074
  msgstr ""
1075
 
1076
- #: application/Backend/tmpl/index.php:109
1077
  #: application/Backend/tmpl/page/addon-panel.php:55
1078
  msgid "Read More"
1079
  msgstr ""
@@ -1705,9 +1704,9 @@ msgstr ""
1705
  #, php-format
1706
  msgid ""
1707
  "Customize login redirect for [%s] when the authentication is completed "
1708
- "successfully. [Please note!] Login redirect works with default WordPress "
1709
- "login form or %sAAM Secure Login widget%s. It may [not] work with any other "
1710
- "login solutions."
1711
  msgstr ""
1712
 
1713
  #: application/Backend/tmpl/service/login-redirect.php:29
@@ -1981,10 +1980,10 @@ msgstr ""
1981
 
1982
  #: application/Backend/tmpl/service/toolbar.php:8
1983
  msgid ""
1984
- "[Note!] Admin Toolbar service is not intended to restrict direct access to "
1985
- "linked pages. It used only to remove unnecessary items from the top admin "
1986
- "toolbar. Use [Backend Menu] tab to restrict direct access to backend pages "
1987
- "or utilize the great power of capabilities."
1988
  msgstr ""
1989
 
1990
  #: application/Backend/tmpl/service/toolbar.php:46
@@ -2056,7 +2055,7 @@ msgstr ""
2056
  msgid "Type"
2057
  msgstr ""
2058
 
2059
- #: application/Backend/tmpl/service/welcome.php:11
2060
  msgid ""
2061
  "Thank you for using the Advanced Access Manager (aka AAM) plugin. With "
2062
  "strong knowledge and experience in WordPress core, AAM becomes a very "
@@ -2064,11 +2063,11 @@ msgid ""
2064
  "backend, and RESTful API."
2065
  msgstr ""
2066
 
2067
- #: application/Backend/tmpl/service/welcome.php:12
2068
  msgid "Note!"
2069
  msgstr ""
2070
 
2071
- #: application/Backend/tmpl/service/welcome.php:12
2072
  #, php-format
2073
  msgid ""
2074
  "Power comes with responsibility. Make sure you have a good understanding of "
@@ -2079,7 +2078,7 @@ msgid ""
2079
  "server and never did."
2080
  msgstr ""
2081
 
2082
- #: application/Backend/tmpl/service/welcome.php:13
2083
  msgid ""
2084
  "AAM is thoroughly tested on the fresh installation of the latest WordPress "
2085
  "and in the latest versions of Chrome, Safari, IE, and Firefox. If you have "
@@ -2087,7 +2086,7 @@ msgid ""
2087
  "themes."
2088
  msgstr ""
2089
 
2090
- #: application/Backend/tmpl/service/welcome.php:14
2091
  #, php-format
2092
  msgid ""
2093
  "If you are not sure where to start, please check our %s\"Get Started\"%s "
@@ -2095,7 +2094,7 @@ msgid ""
2095
  "your WordPress website more effectively."
2096
  msgstr ""
2097
 
2098
- #: application/Backend/tmpl/service/welcome.php:16
2099
  msgid "Go To The \"Get Started\" Page"
2100
  msgstr ""
2101
 
@@ -2153,15 +2152,15 @@ msgstr ""
2153
  msgid "Lost your password?"
2154
  msgstr ""
2155
 
2156
- #: application/Backend/tmpl/widget/login-frontend.php:102
2157
  msgid "Dashboard"
2158
  msgstr ""
2159
 
2160
- #: application/Backend/tmpl/widget/login-frontend.php:103
2161
  msgid "Edit My Profile"
2162
  msgstr ""
2163
 
2164
- #: application/Backend/tmpl/widget/login-frontend.php:105
2165
  msgid "Log Out"
2166
  msgstr ""
2167
 
@@ -2186,7 +2185,7 @@ msgstr ""
2186
 
2187
  #: application/Core/Redirect.php:74
2188
  #: application/Service/ExtendedCapabilities.php:81
2189
- #: application/Service/Route.php:216
2190
  msgid "Access Denied"
2191
  msgstr ""
2192
 
@@ -2255,7 +2254,7 @@ msgstr ""
2255
  msgid "Access Manager"
2256
  msgstr ""
2257
 
2258
- #: application/Service/Content.php:579
2259
  msgid "[No teaser message provided]"
2260
  msgstr ""
2261
 
@@ -2287,11 +2286,13 @@ msgstr ""
2287
  msgid "Issue JWT Token"
2288
  msgstr ""
2289
 
2290
- #: application/Service/Jwt.php:156 application/Service/Jwt.php:168
 
 
2291
  msgid "JWT token."
2292
  msgstr ""
2293
 
2294
- #: application/Service/Jwt.php:235
2295
  msgid "JWT token is not refreshable"
2296
  msgstr ""
2297
 
@@ -2321,36 +2322,36 @@ msgid ""
2321
  "individual user."
2322
  msgstr ""
2323
 
2324
- #: application/Service/Route.php:67
2325
  msgid ""
2326
  "Manage access to any individual RESTful endpoint for any role, user or "
2327
  "unauthenticated application request. The service works great with JWT "
2328
  "service that authenticate requests with JWT Bearer token."
2329
  msgstr ""
2330
 
2331
- #: application/Service/Route.php:95
2332
  msgid "XML-RPC WordPress API"
2333
  msgstr ""
2334
 
2335
- #: application/Service/Route.php:96
2336
  #, php-format
2337
  msgid ""
2338
  "Remote procedure call (RPC) interface is used to manage WordPress website "
2339
  "content and features. For more information check %sXML-RPC Support%s article."
2340
  msgstr ""
2341
 
2342
- #: application/Service/Route.php:100
2343
  msgid "RESTful WordPress API"
2344
  msgstr ""
2345
 
2346
- #: application/Service/Route.php:101
2347
  #, php-format
2348
  msgid ""
2349
  "RESTful interface that is used to manage WordPress website content and "
2350
  "features. For more information check %sREST API handbook%s."
2351
  msgstr ""
2352
 
2353
- #: application/Service/Route.php:127
2354
  msgid "RESTful API is disabled"
2355
  msgstr ""
2356
 
@@ -2369,31 +2370,15 @@ msgstr ""
2369
  msgid "Block User Account"
2370
  msgstr ""
2371
 
2372
- #: application/Service/SecureLogin.php:139
2373
- msgid "Valid username."
2374
- msgstr ""
2375
-
2376
- #: application/Service/SecureLogin.php:143
2377
- msgid "Valid password."
2378
- msgstr ""
2379
-
2380
- #: application/Service/SecureLogin.php:147
2381
- msgid "Redirect URL after authentication."
2382
- msgstr ""
2383
-
2384
- #: application/Service/SecureLogin.php:151
2385
- msgid "Prolong the user session."
2386
- msgstr ""
2387
-
2388
- #: application/Service/SecureLogin.php:315
2389
  msgid "Exceeded maximum number for authentication attempts. Try again later."
2390
  msgstr ""
2391
 
2392
- #: application/Service/SecureLogin.php:342
2393
  msgid "[ERROR]: User is locked. Contact website administrator."
2394
  msgstr ""
2395
 
2396
- #: application/Service/SecureLogin.php:365
2397
  #, php-format
2398
  msgid "%sAccess is restricted. Login to get access.%s"
2399
  msgstr ""
@@ -2408,6 +2393,10 @@ msgid ""
2408
  "frontent content as well as some UI helpers."
2409
  msgstr ""
2410
 
 
 
 
 
2411
  #: application/Service/Toolbar.php:67
2412
  msgid ""
2413
  "Manage access to the top admin toolbar items for any role or individual "
@@ -2452,24 +2441,24 @@ msgid "Add role"
2452
  msgstr ""
2453
 
2454
  #: media/js/aam.js:1063 media/js/aam.js:2364 media/js/aam.js:2435
2455
- #: media/js/aam.js:4700
2456
  msgid "Resetting..."
2457
  msgstr ""
2458
 
2459
- #: media/js/aam.js:2669
2460
  msgid "Post"
2461
  msgstr ""
2462
 
2463
- #: media/js/aam.js:2735
2464
  msgid "post type"
2465
  msgstr ""
2466
 
2467
- #: media/js/aam.js:2740 media/js/aam.js:2766 media/js/aam.js:2779
2468
- #: media/js/aam.js:2788 media/js/aam.js:2801
2469
  msgid "ID:"
2470
  msgstr ""
2471
 
2472
- #: media/js/aam.js:2762
2473
  msgid "taxonomy"
2474
  msgstr ""
2475
 
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Advanced Access Manager\n"
4
+ "POT-Creation-Date: 2019-11-19 16:45-0500\n"
5
  "PO-Revision-Date: \n"
6
  "Last-Translator: \n"
7
  "Language-Team: AAMPlugin <support@aamplugin.com>\n"
16
  "X-Poedit-Basepath: ..\n"
17
  "X-Poedit-SearchPath-0: .\n"
18
 
19
+ #: aam.php:236
20
  msgid "PHP 5.6.40 or higher is required."
21
  msgstr ""
22
 
23
+ #: aam.php:238
24
  msgid "WP 4.7.0 or higher is required."
25
  msgstr ""
26
 
27
+ #: application/Addon/Repository.php:110
28
  msgid ""
29
  "Manage access to your WordPress website posts, pages, media, custom post "
30
  "types, categories, tags and custom taxonomies for any role, individual user, "
32
  "for frontend, backend or API levels."
33
  msgstr ""
34
 
35
+ #: application/Addon/Repository.php:115
36
  msgid ""
37
  "Manage access to your WordPress website by users IP address or referred host "
38
  "and completely lock down the entire website if necessary. Define the "
39
  "unlimited number of whitelisted or blacklisted IPs or hosts."
40
  msgstr ""
41
 
42
+ #: application/Addon/Repository.php:120
43
  msgid ""
44
  "Define and manage complex WordPress role hierarchy where all the access "
45
  "settings are propagated down the tree with the ability to override any "
46
  "settings for any specific role."
47
  msgstr ""
48
 
49
+ #: application/Addon/Repository.php:135
50
  msgid ""
51
  "Get the complete list of all premium AAM addons in one package and all "
52
  "future premium addons will be included for now additional cost."
130
  msgid "Metaboxes & Widgets"
131
  msgstr ""
132
 
133
+ #: application/Backend/Feature/Main/Policy.php:211
134
  msgid "(no title)"
135
  msgstr ""
136
 
137
+ #: application/Backend/Feature/Main/Policy.php:304
138
  #: application/Service/AccessPolicy.php:66
139
  #: application/Service/AccessPolicy.php:169
140
  msgid "Access Policies"
184
  msgstr ""
185
 
186
  #: application/Backend/Feature/Main/Route.php:118
187
+ #: application/Service/Route.php:52
188
  msgid "API Routes"
189
  msgstr ""
190
 
191
  #: application/Backend/Feature/Main/Toolbar.php:140
192
+ msgid "Toolbar"
 
193
  msgstr ""
194
 
195
  #: application/Backend/Feature/Main/Uri.php:135 application/Service/Uri.php:53
293
  msgid "Cannot manage yourself"
294
  msgstr ""
295
 
296
+ #: application/Backend/Feature/Subject/User.php:225
297
+ #: application/Backend/Feature/Subject/User.php:250
298
+ #: application/Backend/View/Localization.php:142 media/js/aam.js:4657
299
  msgid "Unexpected application error"
300
  msgstr ""
301
 
302
+ #: application/Backend/Manager.php:114
303
  #, php-format
304
  msgid ""
305
  "There was at least one error detected with the automated migration script. "
307
  "%ssupport@aamplugin.com%s for further assistance."
308
  msgstr ""
309
 
310
+ #: application/Backend/Manager.php:254
311
  msgid "[Help us] to be more noticeable and submit your review"
312
  msgstr ""
313
 
314
  #: application/Backend/Subject.php:177
315
+ msgid "You are not allowed to manage any AAM subject"
316
  msgstr ""
317
 
318
  #: application/Backend/View/Localization.php:32 media/js/aam.js:1993
327
  #: media/js/aam.js:471 media/js/aam.js:1030 media/js/aam.js:2141
328
  #: media/js/aam.js:2183 media/js/aam.js:2382 media/js/aam.js:2401
329
  #: media/js/aam.js:2471 media/js/aam.js:2493 media/js/aam.js:2512
330
+ #: media/js/aam.js:3475
331
  msgid "Saving..."
332
  msgstr ""
333
 
370
  msgid "Failed to retrieve mataboxes"
371
  msgstr ""
372
 
373
+ #: application/Backend/View/Localization.php:43 media/js/aam.js:2649
374
+ #: media/js/aam.js:3362 media/js/aam.js:3554 media/js/aam.js:3781
375
  msgid "Search"
376
  msgstr ""
377
 
378
+ #: application/Backend/View/Localization.php:44 media/js/aam.js:2650
379
  msgid "_TOTAL_ object(s)"
380
  msgstr ""
381
 
384
  msgstr ""
385
 
386
  #: application/Backend/View/Localization.php:46 media/js/aam.js:64
387
+ #: media/js/aam.js:4290
388
  msgid "Loading..."
389
  msgstr ""
390
 
409
  #: application/Backend/tmpl/service/capability.php:30
410
  #: application/Backend/tmpl/service/capability.php:64
411
  #: application/Backend/tmpl/service/jwt.php:84 media/js/aam.js:1320
412
+ #: media/js/aam.js:3565 media/js/aam.js:3796 media/js/aam.js:3881
413
  msgid "Create"
414
  msgstr ""
415
 
448
  msgstr ""
449
 
450
  #: application/Backend/View/Localization.php:59 media/js/aam.js:510
451
+ #: media/js/aam.js:1942 media/js/aam.js:3513 media/js/aam.js:3899
452
  msgid "Deleting..."
453
  msgstr ""
454
 
492
  msgstr ""
493
 
494
  #: application/Backend/View/Localization.php:69 media/js/aam.js:1161
495
+ #: media/js/aam.js:1236 media/js/aam.js:4259
496
  msgid "Failed to apply policy changes"
497
  msgstr ""
498
 
509
  msgstr ""
510
 
511
  #: application/Backend/View/Localization.php:72 media/js/aam.js:649
512
+ #: media/js/aam.js:3689
513
  msgid "Generating URL..."
514
  msgstr ""
515
 
519
  msgstr ""
520
 
521
  #: application/Backend/View/Localization.php:74 media/js/aam.js:1142
522
+ #: media/js/aam.js:1217 media/js/aam.js:1808 media/js/aam.js:4105
523
  msgid "Processing..."
524
  msgstr ""
525
 
528
  msgstr ""
529
 
530
  #: application/Backend/View/Localization.php:76 media/js/aam.js:659
531
+ #: media/js/aam.js:3700
532
  msgid "Failed to generate JWT token"
533
  msgstr ""
534
 
544
  msgid "Current role"
545
  msgstr ""
546
 
547
+ #: application/Backend/View/Localization.php:80 media/js/aam.js:2839
548
  msgid "Manage Access"
549
  msgstr ""
550
 
553
  msgstr ""
554
 
555
  #: application/Backend/View/Localization.php:82
556
+ #: application/Backend/View/PostOptionList.php:76 media/js/aam.js:2851
557
  msgid "Edit"
558
  msgstr ""
559
 
563
  #: application/Backend/tmpl/partial/post-access-form.php:90
564
  #: application/Backend/tmpl/partial/post-access-form.php:163
565
  #: application/Backend/tmpl/partial/post-access-form.php:184
566
+ #: application/Backend/tmpl/partial/post-access-form.php:206
567
  #: application/Backend/tmpl/service/uri.php:108 media/js/aam.js:1044
568
+ #: media/js/aam.js:3492
569
  msgid "Save"
570
  msgstr ""
571
 
672
  msgid "No capabilities"
673
  msgstr ""
674
 
675
+ #: application/Backend/View/Localization.php:106 media/js/aam.js:2671
676
  msgid "Post Type"
677
  msgstr ""
678
 
679
+ #: application/Backend/View/Localization.php:107 media/js/aam.js:2676
680
  msgid "Hierarchical Taxonomy"
681
  msgstr ""
682
 
683
+ #: application/Backend/View/Localization.php:108 media/js/aam.js:2681
684
  msgid "Hierarchical Term"
685
  msgstr ""
686
 
687
+ #: application/Backend/View/Localization.php:109 media/js/aam.js:2686
688
  msgid "Tag Taxonomy"
689
  msgstr ""
690
 
691
+ #: application/Backend/View/Localization.php:110 media/js/aam.js:2691
692
  msgid "Tag"
693
  msgstr ""
694
 
695
+ #: application/Backend/View/Localization.php:111 media/js/aam.js:2702
696
  msgid "Customized Settings"
697
  msgstr ""
698
 
699
+ #: application/Backend/View/Localization.php:112 media/js/aam.js:2772
700
+ #: media/js/aam.js:2794
701
  msgid "Parent"
702
  msgstr ""
703
 
704
+ #: application/Backend/View/Localization.php:113 media/js/aam.js:2825
705
  msgid "Drill-Down"
706
  msgstr ""
707
 
708
+ #: application/Backend/View/Localization.php:114 media/js/aam.js:3363
709
  msgid "_TOTAL_ route(s)"
710
  msgstr ""
711
 
712
+ #: application/Backend/View/Localization.php:115 media/js/aam.js:3365
713
  msgid "No API endpoints found. You might have APIs disabled."
714
  msgstr ""
715
 
716
+ #: application/Backend/View/Localization.php:116 media/js/aam.js:3366
717
+ #: media/js/aam.js:3785 media/js/aam.js:4059
718
  msgid "Nothing to show"
719
  msgstr ""
720
 
721
+ #: application/Backend/View/Localization.php:117 media/js/aam.js:3483
722
  msgid "Failed to save URI rule"
723
  msgstr ""
724
 
725
+ #: application/Backend/View/Localization.php:118 media/js/aam.js:3519
726
  msgid "Failed to delete URI rule"
727
  msgstr ""
728
 
729
+ #: application/Backend/View/Localization.php:119 media/js/aam.js:3555
730
  msgid "_TOTAL_ URI(s)"
731
  msgstr ""
732
 
733
+ #: application/Backend/View/Localization.php:120 media/js/aam.js:3594
734
  msgid "Edit Rule"
735
  msgstr ""
736
 
737
+ #: application/Backend/View/Localization.php:121 media/js/aam.js:3606
738
  msgid "Delete Rule"
739
  msgstr ""
740
 
741
+ #: application/Backend/View/Localization.php:122 media/js/aam.js:3621
742
  msgid "Denied"
743
  msgstr ""
744
 
745
+ #: application/Backend/View/Localization.php:123 media/js/aam.js:3628
746
  msgid "Redirected"
747
  msgstr ""
748
 
749
+ #: application/Backend/View/Localization.php:124 media/js/aam.js:3633
750
  msgid "Callback"
751
  msgstr ""
752
 
753
+ #: application/Backend/View/Localization.php:125 media/js/aam.js:3638
754
  msgid "Allowed"
755
  msgstr ""
756
 
757
+ #: application/Backend/View/Localization.php:126 media/js/aam.js:3685
758
  msgid "Generating token..."
759
  msgstr ""
760
 
761
+ #: application/Backend/View/Localization.php:127 media/js/aam.js:3782
762
  msgid "_TOTAL_ token(s)"
763
  msgstr ""
764
 
765
+ #: application/Backend/View/Localization.php:128 media/js/aam.js:3784
766
  msgid "No JWT tokens have been generated."
767
  msgstr ""
768
 
769
+ #: application/Backend/View/Localization.php:129 media/js/aam.js:3829
770
  msgid "Delete Token"
771
  msgstr ""
772
 
773
+ #: application/Backend/View/Localization.php:130 media/js/aam.js:3842
774
  msgid "View Token"
775
  msgstr ""
776
 
777
+ #: application/Backend/View/Localization.php:131 media/js/aam.js:3867
778
  msgid "Creating..."
779
  msgstr ""
780
 
781
+ #: application/Backend/View/Localization.php:132 media/js/aam.js:4056
782
  msgid "Search Service"
783
  msgstr ""
784
 
785
+ #: application/Backend/View/Localization.php:133 media/js/aam.js:4057
786
  msgid "_TOTAL_ service(s)"
787
  msgstr ""
788
 
789
  #: application/Backend/View/Localization.php:134
790
  #: application/Backend/tmpl/settings/content.php:19
791
  #: application/Backend/tmpl/settings/core.php:16
792
+ #: application/Backend/tmpl/settings/security.php:16 media/js/aam.js:4069
793
  msgid "Enabled"
794
  msgstr ""
795
 
796
  #: application/Backend/View/Localization.php:135
797
  #: application/Backend/tmpl/settings/content.php:19
798
  #: application/Backend/tmpl/settings/core.php:16
799
+ #: application/Backend/tmpl/settings/security.php:16 media/js/aam.js:4069
800
  msgid "Disabled"
801
  msgstr ""
802
 
803
+ #: application/Backend/View/Localization.php:136 media/js/aam.js:4111
804
  msgid "All settings has been cleared successfully"
805
  msgstr ""
806
 
807
  #: application/Backend/View/Localization.php:137
808
+ #: application/Backend/tmpl/metabox/main-iframe.php:97 media/js/aam.js:4123
809
  msgid "Clear"
810
  msgstr ""
811
 
812
  #: application/Backend/View/Localization.php:138
813
  #: application/Backend/tmpl/page/subject-panel-advanced.php:102
814
+ #: application/Backend/tmpl/partial/role-inheritance.php:7 media/js/aam.js:4295
815
  msgid "Select Role"
816
  msgstr ""
817
 
818
+ #: application/Backend/View/Localization.php:139 media/js/aam.js:4581
819
  msgid "Data has been saved to clipboard"
820
  msgstr ""
821
 
822
+ #: application/Backend/View/Localization.php:140 media/js/aam.js:4585
823
  msgid "Failed to save data to clipboard"
824
  msgstr ""
825
 
826
+ #: application/Backend/View/Localization.php:141 media/js/aam.js:4653
827
  msgid "Operation completed successfully"
828
  msgstr ""
829
 
944
  #: application/Backend/View/PostOptionList.php:81
945
  #: application/Backend/tmpl/page/subject-panel-advanced.php:59
946
  #: application/Backend/tmpl/service/jwt.php:136
947
+ #: application/Backend/tmpl/service/uri.php:130 media/js/aam.js:3527
948
+ #: media/js/aam.js:3913
949
  msgid "Delete"
950
  msgstr ""
951
 
979
  msgid "Howdy, %username%"
980
  msgstr ""
981
 
982
+ #: application/Backend/tmpl/metabox/main-iframe.php:27
983
  msgid "Notifications"
984
  msgstr ""
985
 
986
+ #: application/Backend/tmpl/metabox/main-iframe.php:49
987
  msgid "Access"
988
  msgstr ""
989
 
990
+ #: application/Backend/tmpl/metabox/main-iframe.php:54
991
  msgid "Settings"
992
  msgstr ""
993
 
994
+ #: application/Backend/tmpl/metabox/main-iframe.php:60
995
  msgid "Add-Ons"
996
  msgstr ""
997
 
998
+ #: application/Backend/tmpl/metabox/main-iframe.php:66
999
  msgid "Help"
1000
  msgstr ""
1001
 
1002
+ #: application/Backend/tmpl/metabox/main-iframe.php:80
1003
  msgid "Reset AAM Settings"
1004
  msgstr ""
1005
 
1006
+ #: application/Backend/tmpl/metabox/main-iframe.php:90
1007
  #: application/Backend/tmpl/page/addon-panel.php:70
1008
  #: application/Backend/tmpl/page/addon-panel.php:81
1009
  #: application/Backend/tmpl/page/addon-panel.php:91
1025
  #: application/Backend/tmpl/partial/post-access-form.php:174
1026
  #: application/Backend/tmpl/partial/post-access-form.php:185
1027
  #: application/Backend/tmpl/partial/post-access-form.php:195
1028
+ #: application/Backend/tmpl/partial/post-access-form.php:207
1029
  #: application/Backend/tmpl/service/capability.php:49
1030
  #: application/Backend/tmpl/service/capability.php:65
1031
  #: application/Backend/tmpl/service/capability.php:75
1054
  msgid "Close"
1055
  msgstr ""
1056
 
1057
+ #: application/Backend/tmpl/metabox/main-iframe.php:91
1058
  msgid "Clear all settings"
1059
  msgstr ""
1060
 
1061
+ #: application/Backend/tmpl/metabox/main-iframe.php:94
1062
  msgid "All AAM settings will be removed."
1063
  msgstr ""
1064
 
1065
+ #: application/Backend/tmpl/metabox/main-iframe.php:98
1066
  msgid "Cancel"
1067
  msgstr ""
1068
 
1069
+ #: application/Backend/tmpl/metabox/main-iframe.php:110
1070
  msgid ""
1071
  "With the [Enterprise Package] get our dedicated support channel and all the "
1072
  "premium add-ons for [50+ live websites]"
1073
  msgstr ""
1074
 
1075
+ #: application/Backend/tmpl/metabox/main-iframe.php:111
1076
  #: application/Backend/tmpl/page/addon-panel.php:55
1077
  msgid "Read More"
1078
  msgstr ""
1704
  #, php-format
1705
  msgid ""
1706
  "Customize login redirect for [%s] when the authentication is completed "
1707
+ "successfully. [Note!] Login redirect works with default WordPress login form "
1708
+ "or %sAAM Secure Login widget%s. It may [not] work with any other login "
1709
+ "solutions."
1710
  msgstr ""
1711
 
1712
  #: application/Backend/tmpl/service/login-redirect.php:29
1980
 
1981
  #: application/Backend/tmpl/service/toolbar.php:8
1982
  msgid ""
1983
+ "[Note!] Toolbar service is not intended to restrict direct access to linked "
1984
+ "pages. It used only to remove unnecessary items from the top toolbar. Use "
1985
+ "[Backend Menu] tab to restrict direct access to backend pages or utilize the "
1986
+ "great power of capabilities."
1987
  msgstr ""
1988
 
1989
  #: application/Backend/tmpl/service/toolbar.php:46
2055
  msgid "Type"
2056
  msgstr ""
2057
 
2058
+ #: application/Backend/tmpl/service/welcome.php:13
2059
  msgid ""
2060
  "Thank you for using the Advanced Access Manager (aka AAM) plugin. With "
2061
  "strong knowledge and experience in WordPress core, AAM becomes a very "
2063
  "backend, and RESTful API."
2064
  msgstr ""
2065
 
2066
+ #: application/Backend/tmpl/service/welcome.php:14
2067
  msgid "Note!"
2068
  msgstr ""
2069
 
2070
+ #: application/Backend/tmpl/service/welcome.php:14
2071
  #, php-format
2072
  msgid ""
2073
  "Power comes with responsibility. Make sure you have a good understanding of "
2078
  "server and never did."
2079
  msgstr ""
2080
 
2081
+ #: application/Backend/tmpl/service/welcome.php:15
2082
  msgid ""
2083
  "AAM is thoroughly tested on the fresh installation of the latest WordPress "
2084
  "and in the latest versions of Chrome, Safari, IE, and Firefox. If you have "
2086
  "themes."
2087
  msgstr ""
2088
 
2089
+ #: application/Backend/tmpl/service/welcome.php:16
2090
  #, php-format
2091
  msgid ""
2092
  "If you are not sure where to start, please check our %s\"Get Started\"%s "
2094
  "your WordPress website more effectively."
2095
  msgstr ""
2096
 
2097
+ #: application/Backend/tmpl/service/welcome.php:18
2098
  msgid "Go To The \"Get Started\" Page"
2099
  msgstr ""
2100
 
2152
  msgid "Lost your password?"
2153
  msgstr ""
2154
 
2155
+ #: application/Backend/tmpl/widget/login-frontend.php:101
2156
  msgid "Dashboard"
2157
  msgstr ""
2158
 
2159
+ #: application/Backend/tmpl/widget/login-frontend.php:102
2160
  msgid "Edit My Profile"
2161
  msgstr ""
2162
 
2163
+ #: application/Backend/tmpl/widget/login-frontend.php:104
2164
  msgid "Log Out"
2165
  msgstr ""
2166
 
2185
 
2186
  #: application/Core/Redirect.php:74
2187
  #: application/Service/ExtendedCapabilities.php:81
2188
+ #: application/Service/Route.php:171
2189
  msgid "Access Denied"
2190
  msgstr ""
2191
 
2254
  msgid "Access Manager"
2255
  msgstr ""
2256
 
2257
+ #: application/Service/Content.php:574
2258
  msgid "[No teaser message provided]"
2259
  msgstr ""
2260
 
2286
  msgid "Issue JWT Token"
2287
  msgstr ""
2288
 
2289
+ #: application/Service/Jwt.php:159 application/Service/Jwt.php:169
2290
+ #: application/Service/Jwt.php:181 application/Service/Jwt.php:191
2291
+ #: application/Service/Jwt.php:203
2292
  msgid "JWT token."
2293
  msgstr ""
2294
 
2295
+ #: application/Service/Jwt.php:306
2296
  msgid "JWT token is not refreshable"
2297
  msgstr ""
2298
 
2322
  "individual user."
2323
  msgstr ""
2324
 
2325
+ #: application/Service/Route.php:53
2326
  msgid ""
2327
  "Manage access to any individual RESTful endpoint for any role, user or "
2328
  "unauthenticated application request. The service works great with JWT "
2329
  "service that authenticate requests with JWT Bearer token."
2330
  msgstr ""
2331
 
2332
+ #: application/Service/Route.php:81
2333
  msgid "XML-RPC WordPress API"
2334
  msgstr ""
2335
 
2336
+ #: application/Service/Route.php:82
2337
  #, php-format
2338
  msgid ""
2339
  "Remote procedure call (RPC) interface is used to manage WordPress website "
2340
  "content and features. For more information check %sXML-RPC Support%s article."
2341
  msgstr ""
2342
 
2343
+ #: application/Service/Route.php:86
2344
  msgid "RESTful WordPress API"
2345
  msgstr ""
2346
 
2347
+ #: application/Service/Route.php:87
2348
  #, php-format
2349
  msgid ""
2350
  "RESTful interface that is used to manage WordPress website content and "
2351
  "features. For more information check %sREST API handbook%s."
2352
  msgstr ""
2353
 
2354
+ #: application/Service/Route.php:113
2355
  msgid "RESTful API is disabled"
2356
  msgstr ""
2357
 
2370
  msgid "Block User Account"
2371
  msgstr ""
2372
 
2373
+ #: application/Service/SecureLogin.php:324
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2374
  msgid "Exceeded maximum number for authentication attempts. Try again later."
2375
  msgstr ""
2376
 
2377
+ #: application/Service/SecureLogin.php:351
2378
  msgid "[ERROR]: User is locked. Contact website administrator."
2379
  msgstr ""
2380
 
2381
+ #: application/Service/SecureLogin.php:374
2382
  #, php-format
2383
  msgid "%sAccess is restricted. Login to get access.%s"
2384
  msgstr ""
2393
  "frontent content as well as some UI helpers."
2394
  msgstr ""
2395
 
2396
+ #: application/Service/Toolbar.php:66
2397
+ msgid "Admin Toolbar"
2398
+ msgstr ""
2399
+
2400
  #: application/Service/Toolbar.php:67
2401
  msgid ""
2402
  "Manage access to the top admin toolbar items for any role or individual "
2441
  msgstr ""
2442
 
2443
  #: media/js/aam.js:1063 media/js/aam.js:2364 media/js/aam.js:2435
2444
+ #: media/js/aam.js:4693
2445
  msgid "Resetting..."
2446
  msgstr ""
2447
 
2448
+ #: media/js/aam.js:2666
2449
  msgid "Post"
2450
  msgstr ""
2451
 
2452
+ #: media/js/aam.js:2732
2453
  msgid "post type"
2454
  msgstr ""
2455
 
2456
+ #: media/js/aam.js:2737 media/js/aam.js:2763 media/js/aam.js:2776
2457
+ #: media/js/aam.js:2785 media/js/aam.js:2798
2458
  msgid "ID:"
2459
  msgstr ""
2460
 
2461
+ #: media/js/aam.js:2759
2462
  msgid "taxonomy"
2463
  msgstr ""
2464
 
media/active-menu.svg CHANGED
@@ -1,21 +1,18 @@
1
  <?xml version="1.0" encoding="UTF-8"?>
2
- <svg width="18px" height="19px" viewBox="0 0 18 19" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
- <!-- Generator: Sketch 42 (36781) - http://www.bohemiancoding.com/sketch -->
4
- <title>Icon Small</title>
5
  <desc>Created with Sketch.</desc>
6
  <defs></defs>
7
- <g id="Plugin-Banners" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
8
- <g id="Icon-Small" transform="translate(-1.000000, 0.000000)">
9
- <rect id="Rectangle-2" x="0" y="0" width="18" height="18"></rect>
10
- <g id="User-Icon" transform="translate(1.000000, 0.000000)" fill="#FFFFFF">
11
- <g id="User-Body">
12
- <path d="M1.47319377,6.58573908 C0.554745344,7.6585469 0,9.0519647 0,10.5749502 C0,13.9644586 2.74773947,16.7121981 6.13724789,16.7121981 C9.52675631,16.7121981 12.2744958,13.9644586 12.2744958,10.5749502 C12.2744958,9.0519647 11.7197504,7.6585469 10.801302,6.58573908 C9.67568066,7.29370796 8.00377079,7.74237426 6.13724789,7.74237426 C4.27072499,7.74237426 2.59881512,7.29370796 1.47319377,6.58573908 Z" id="Combined-Shape"></path>
13
- <ellipse id="Oval-3" cx="6.13724789" cy="3.30467194" rx="3.30467194" ry="3.30467194"></ellipse>
14
- </g>
15
- <g id="Circled-Lock" transform="translate(8.969824, 10.102854)">
16
- <circle id="Oval-3" stroke="#333333" stroke-width="3" cx="3.30467194" cy="3.30467194" r="3.30467194"></circle>
17
- <path d="M4.59827732,5.19305591 L2.10548576,5.19305591 C1.93335404,5.19305591 1.79396477,5.05213877 1.79396477,4.87835146 L1.79396477,3.30467194 C1.79396477,3.13088463 1.93350996,2.98981022 2.10548576,2.98981022 L2.26124625,2.98981022 L2.26124625,2.51783218 C2.26124625,1.90949795 2.74957645,1.41628797 3.35188154,1.41628797 C3.95418663,1.41628797 4.44251683,1.90949795 4.44251683,2.51783218 L4.44251683,2.98981022 L4.59827732,2.98981022 C4.77040904,2.98981022 4.90979831,3.13072735 4.90979831,3.30467194 L4.90979831,4.87835146 C4.90979831,5.0519815 4.77025313,5.19305591 4.59827732,5.19305591 L4.59827732,5.19305591 Z M3.97507943,2.51783218 C3.97507943,2.17025755 3.69598906,1.88842328 3.35188154,1.88842328 C3.00777402,1.88842328 2.72868365,2.17025755 2.72868365,2.51783218 L2.72868365,2.98981022 L3.97507943,2.98981022 L3.97507943,2.51783218 L3.97507943,2.51783218 Z" id="Shape"></path>
18
- </g>
19
  </g>
20
  </g>
21
  </g>
1
  <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="22px" height="13px" viewBox="0 0 22 13" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <!-- Generator: Sketch 43.2 (39069) - http://www.bohemiancoding.com/sketch -->
4
+ <title>Group</title>
5
  <desc>Created with Sketch.</desc>
6
  <defs></defs>
7
+ <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
8
+ <g id="AAM_logo-Primary-White" fill-rule="nonzero" fill="#FFFFFF">
9
+ <g id="Group">
10
+ <path d="M17.88,9.72 C17.560842,10.2644295 17.101568,10.7133439 16.55,11.02 L16.65,12.02 L15.85,12.77 L17.9,12.77 L17.48,12.08 C17.9197072,11.3770047 18.0635006,10.5286238 17.88,9.72 Z" id="Shape"></path>
11
+ <path d="M5,3.34 C5.10665152,1.86447639 4.12175889,0.531475157 2.68,0.2 L4.34,3.52 L5,3.34 Z" id="Shape"></path>
12
+ <path d="M3.8,3.92 C3.25866153,2.71433285 2.00444325,1.99245159 0.69,2.13 L3.25,4.47 L3.8,3.92 Z" id="Shape"></path>
13
+ <path d="M19,7.53 L18.4,9 C18.9934863,10.3348945 19.9030027,11.5052534 21.05,12.41 C21.33,12.63 21.39,12.51 21.39,12.51 C20.2632314,11.029638 19.4500133,9.3351502 19,7.53 Z" id="Shape"></path>
14
+ <polygon id="Shape" points="6.83 11.02 5.42 9.52 5.47 11.87 4.42 12.73 6.3 12.73 6 12.14"></polygon>
15
+ <path d="M18.67,6.8 C18.4526417,6.24060699 18.1987615,5.69610071 17.91,5.17 C17.6558098,4.72271992 17.378777,4.28881313 17.08,3.87 C16.94255,4.67257973 16.4977468,5.3900043 15.84,5.87 C16.1916486,5.00143184 16.4270179,4.09021635 16.54,3.16 C15.959368,2.50461223 15.2517492,1.97389817 14.46,1.6 C14.7095472,2.88002006 14.304493,4.20019683 13.38,5.12 C13.6976455,3.86634338 13.7957622,2.56714314 13.67,1.28 C12.5984101,0.956104321 11.4707713,0.860714935 10.36,1 C10.6135514,1.17026439 10.817194,1.4049712 10.95,1.68 C11.6659437,2.96002471 11.6659437,4.51997529 10.95,5.8 C10.95,5.8 10.85,2.32 9.69,1.09 C8.91565749,1.226512 8.16033516,1.45478719 7.44,1.77 C7.28660462,1.83304177 7.13932001,1.91003145 7,2 C7.26085542,2.13214864 7.48955978,2.31989102 7.67,2.55 C8.69557697,3.77552453 9.00651012,5.44773819 8.49,6.96 C8.49,6.96 7.78,3.66 6.49,2.38 C6.00079572,2.79972322 5.56727902,3.28028825 5.2,3.81 C4.56012816,3.93783564 3.98819902,4.29307113 3.59,4.81 C3.585531,4.86991678 3.585531,4.93008322 3.59,4.99 C3.59,5.1 3.49,5.21 3.44,5.32 C3.2,5.89 2.95,6.45 2.75,7.03 C2.55,7.61 2.44,8.21 2.23,8.8 L2.23,8.8 C2.05972554,9.27570338 1.82050606,9.72381875 1.52,10.13 C1.44,10.46 1.89,10.73 2.11,10.73 C2.33,10.73 4.76,8.66 5.11,8.43 C5.25887477,8.11542061 5.3503131,7.77676012 5.38,7.43 C5.49257853,7.85748518 5.51303021,8.30401366 5.44,8.74 C6.03,9.38 7.38,10.74 7.44,10.74 L7.58,11.82 L6.67,12.74 L8.52,12.74 L8.16,12.27 C9.07127312,11.2465863 10.1375928,10.3726091 11.32,9.68 C12.5427446,9.15637965 13.8371694,8.81928986 15.16,8.68 C15.3561728,8.94545904 15.4957236,9.24838641 15.57,9.57 C15.5998812,10.5296804 15.0902507,11.4253946 14.25,11.89 C13.9159506,12.1337529 13.5612726,12.3478981 13.19,12.53 C13.07,12.59 12.85,12.76 12.71,12.76 L15.32,12.76 L14.87,12.04 C18.42,9.82 18.67,6.8 18.67,6.8 Z M4.46,7.64 L4.2,7.64 C4.2446582,7.71735027 4.2446582,7.81264973 4.2,7.89 C4.10774975,8.01387702 3.94520545,8.06264031 3.8,8.01 L3.73,8.01 C3.60885219,7.91937851 3.57081364,7.75454476 3.64,7.62 C3.66749169,7.55834046 3.70850451,7.5036567 3.76,7.46 C3.80169617,7.42996502 3.84949455,7.40948 3.9,7.4 C4.03739526,7.37246618 4.18012061,7.39744312 4.3,7.47 L4.57,7.7 C4.57,7.7 4.47,7.64 4.46,7.64 L4.46,7.64 Z" id="Shape"></path>
 
 
 
16
  </g>
17
  </g>
18
  </g>
media/armadillo.svg ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="254px" height="43px" viewBox="0 0 254 43" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <!-- Generator: Sketch 43.2 (39069) - http://www.bohemiancoding.com/sketch -->
4
+ <title>AAM_logo-Primary Full Color</title>
5
+ <desc>Created with Sketch.</desc>
6
+ <defs></defs>
7
+ <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
8
+ <g id="AAM_logo-Primary-Full-Color" transform="translate(-1.000000, 0.000000)" fill-rule="nonzero">
9
+ <path d="M48.6944681,26.4714894 C47.8252718,27.9541909 46.5744831,29.1767663 45.0723404,30.0119149 L45.3446809,32.7353191 L43.1659574,34.7778723 L48.7489362,34.7778723 L47.6051064,32.8987234 C48.8026069,30.9841829 49.1942144,28.6736988 48.6944681,26.4714894 Z" id="Shape" fill="#BE3026"></path>
10
+ <path d="M13.6170213,9.09617021 C13.9074765,5.07772294 11.2252157,1.4474217 7.2987234,0.544680851 L11.8195745,9.58638298 L13.6170213,9.09617021 Z" id="Shape" fill="#EF4136"></path>
11
+ <path d="M10.3489362,10.6757447 C8.87465267,7.39222564 5.45890927,5.42625114 1.87914894,5.80085106 L8.85106383,12.173617 L10.3489362,10.6757447 Z" id="Shape" fill="#BE3026"></path>
12
+ <path d="M51.7446809,20.507234 L50.1106383,24.5106383 C51.7269413,28.1460957 54.2039222,31.333456 57.3276596,33.7974468 C58.0902128,34.3965957 58.253617,34.0697872 58.253617,34.0697872 C55.1849705,30.038163 52.9702491,25.4233878 51.7446809,20.507234 Z" id="Shape" fill="#EF4136"></path>
13
+ <polygon id="Shape" fill="#BE3026" points="18.6008511 30.0119149 14.7608511 25.9268085 14.8970213 32.3268085 12.0374468 34.6689362 17.1574468 34.6689362 16.3404255 33.0621277"></polygon>
14
+ <path d="M50.8459574,18.5191489 C50.254003,16.9956956 49.5625845,15.5127849 48.7761702,14.08 C48.0839075,12.8618755 47.3294352,11.6801719 46.5157447,10.5395745 C46.1414128,12.7253235 44.9300338,14.6791606 43.1387234,15.986383 C44.0964048,13.6209208 44.7374106,11.1393126 45.0451064,8.60595745 C43.4638106,6.8210716 41.5366788,5.37572268 39.3804255,4.35744681 C40.0600435,7.84345887 38.9569171,11.4388339 36.4391489,13.9438298 C37.3042261,10.529616 37.5714374,6.99136856 37.2289362,3.48595745 C34.3105638,2.60385858 31.2395474,2.34407472 28.2144681,2.72340426 C28.904991,3.18710302 29.4595923,3.82630454 29.8212766,4.57531915 C31.7710807,8.06134388 31.7710807,12.3097199 29.8212766,15.7957447 C29.8212766,15.7957447 29.5489362,6.31829787 26.3897872,2.96851064 C24.2809395,3.34028799 22.2238915,3.96197363 20.2621277,4.82042553 C19.84437,4.99211375 19.4432545,5.20178777 19.0638298,5.44680851 C19.7742446,5.80670269 20.397099,6.31800109 20.8885106,6.94468085 C23.6815713,10.2822796 24.528368,14.8363934 23.1217021,18.9548936 C23.1217021,18.9548936 21.1880851,9.96765957 17.6748936,6.48170213 C16.3425926,7.62477814 15.1619514,8.93355099 14.1617021,10.3761702 C12.4190724,10.7243183 10.8614782,11.6917682 9.77702128,13.0995745 C9.76485038,13.2627521 9.76485038,13.4266096 9.77702128,13.5897872 C9.77702128,13.8893617 9.50468085,14.1889362 9.36851064,14.4885106 C8.71489362,16.0408511 8.03404255,17.5659574 7.4893617,19.1455319 C6.94468085,20.7251064 6.64510638,22.3591489 6.07319149,23.9659574 L6.07319149,23.9659574 C5.6094653,25.2614901 4.95797395,26.4818894 4.13957447,27.5880851 C3.92170213,28.4868085 5.14723404,29.2221277 5.74638298,29.2221277 C6.34553191,29.2221277 12.9634043,23.5846809 13.9165957,22.9582979 C14.3220419,22.101571 14.5710655,21.1792616 14.6519149,20.2348936 C14.9585117,21.3991086 15.0142099,22.6151861 14.8153191,23.8025532 C16.4221277,25.5455319 20.0987234,29.2493617 20.2621277,29.2493617 L20.6434043,32.1906383 L18.1651064,34.6961702 L23.2034043,34.6961702 L22.2229787,33.4161702 C24.7047438,30.6290011 27.6087634,28.2488079 30.8289362,26.3625532 C34.1589639,24.9365233 37.6842059,24.0184915 41.2868085,23.6391489 C41.8210664,24.3621012 42.2011197,25.1870949 42.4034043,26.0629787 C42.4847828,28.6765765 41.096853,31.1159683 38.8085106,32.3812766 C37.8987591,33.0451143 36.9328276,33.6283182 35.9217021,34.1242553 C35.5948936,34.2876596 34.9957447,34.7506383 34.6144681,34.7506383 L41.7225532,34.7506383 L40.4970213,32.7897872 C50.1651064,26.7438298 50.8459574,18.5191489 50.8459574,18.5191489 Z M12.146383,20.8068085 L11.4382979,20.8068085 C11.5599202,21.0174646 11.5599202,21.2770035 11.4382979,21.4876596 C11.1870631,21.8250268 10.7443893,21.9578289 10.3489362,21.8144681 L10.1582979,21.8144681 C9.82836342,21.5676691 9.72476906,21.1187602 9.91319149,20.7523404 C9.98806248,20.5844166 10.099757,20.4354906 10.24,20.3165957 C10.3535555,20.2347984 10.4837298,20.1790094 10.6212766,20.1531915 C10.9954594,20.0782058 11.3841583,20.1462281 11.7106383,20.3438298 L12.4459574,20.9702128 C12.4459574,20.9702128 12.173617,20.8068085 12.146383,20.8068085 L12.146383,20.8068085 Z" id="Shape" fill="#EF4136"></path>
15
+ <path d="M194.151489,40.987234 L192.13617,40.987234 L192.13617,23.1217021 C193.654725,22.6517505 195.231221,22.3951115 196.820426,22.3591489 C200.878298,22.3591489 202.675745,24.6195745 202.675745,29.0042553 C202.675745,33.3889362 200.68766,35.9217021 197.446809,35.9217021 C196.275479,35.9286899 195.128493,35.5874378 194.151489,34.9412766 L194.151489,40.987234 Z M196.575319,24.0748936 C195.749872,24.0703776 194.929857,24.2085824 194.151489,24.4834043 L194.151489,33.1165957 C195.043745,33.8461705 196.158126,34.2496532 197.310638,34.2604255 C199.734468,34.2604255 200.660426,31.8638298 200.660426,29.2493617 C200.660426,26.6348936 199.897872,24.0748936 196.575319,24.0748936 L196.575319,24.0748936 Z" id="Shape" fill="#BCBEC0"></path>
16
+ <path d="M207.332766,17.5931915 L207.332766,31.9455319 C207.332766,33.6885106 207.659574,34.3148936 208.966809,34.3148936 C209.564989,34.3062614 210.152744,34.1569903 210.682553,33.8791489 L211.145532,35.2680851 C210.318305,35.7403757 209.373601,35.9671048 208.422128,35.9217021 C205.399149,35.9217021 205.262979,33.933617 205.262979,32.2178723 L205.262979,17.5931915 L207.332766,17.5931915 Z" id="Shape" fill="#BCBEC0"></path>
17
+ <path d="M222.148085,22.7131915 L222.148085,33.6068085 L222.311489,35.4859574 L220.595745,35.4859574 L220.377872,33.7157447 L220.377872,33.7157447 C219.483595,35.0778994 217.948955,35.8812681 216.32,35.84 C213.596596,35.84 212.153191,34.3965957 212.153191,31.4280851 L212.153191,22.6314894 L214.168511,22.6314894 L214.168511,30.8017021 C214.168511,32.7353191 214.577021,34.2059574 216.891915,34.2059574 C218.661566,34.2013182 220.142264,32.8616387 220.323404,31.1012766 L220.323404,22.5770213 L222.148085,22.7131915 Z" id="Shape" fill="#BCBEC0"></path>
18
+ <path d="M226.042553,39.026383 C226.204836,36.9843553 227.499104,35.2060509 229.39234,34.4238298 C227.050213,34.2604255 224.762553,32.9259574 224.762553,28.813617 C224.549934,27.1225388 225.098981,25.4243322 226.261356,24.1778028 C227.423732,22.9312734 229.079484,22.2650582 230.781277,22.3591489 C232.412321,22.356231 234.029266,22.6611407 235.547234,23.2578723 L235.547234,32.9259574 L235.547234,36.466383 C235.356596,40.1157447 233.640851,42.3761702 230.100426,42.3761702 C227.431489,42.3761702 226.042553,41.1234043 226.042553,39.026383 Z M233.559149,24.347234 C232.590812,24.0376676 231.580016,23.8814537 230.563404,23.8842553 C228.248511,23.8842553 226.750638,25.4910638 226.750638,28.6229787 C226.750638,30.692766 227.131915,33.2255319 230.26383,33.2255319 C231.128159,33.3131549 231.987958,33.0212494 232.620282,32.4255065 C233.252606,31.8297637 233.59517,30.9888632 233.559149,30.1208511 L233.559149,24.347234 Z M230.26383,40.6876596 C232.82383,40.6876596 233.531915,38.2910638 233.531915,35.4042553 L233.531915,33.4161702 C229.719149,35.186383 228.085106,36.6297872 228.085106,38.6451064 C227.97617,40.2519149 228.765957,40.8510638 230.26383,40.8510638 L230.26383,40.6876596 Z" id="Shape" fill="#BCBEC0"></path>
19
+ <path d="M239.795745,17.7021277 C240.547792,17.7021277 241.157447,18.3117825 241.157447,19.0638298 C241.157447,19.8158771 240.547792,20.4255319 239.795745,20.4255319 C239.434413,20.4262384 239.088905,20.2773545 238.841261,20.0142324 C238.593617,19.7511104 238.465927,19.3972214 238.488511,19.0365957 C238.481188,18.6852014 238.615675,18.3456617 238.861627,18.0945856 C239.107579,17.8435096 239.444274,17.7020514 239.795745,17.7021277 Z M238.788085,35.5676596 L238.788085,22.7131915 L240.803404,22.7131915 L240.803404,35.5676596 L238.788085,35.5676596 Z" id="Shape" fill="#BCBEC0"></path>
20
+ <path d="M244.071489,35.5676596 L244.071489,24.6740426 L243.935319,22.7404255 L245.678298,22.7404255 L245.89617,24.6195745 C246.807081,23.2064492 248.381875,22.3624418 250.062979,22.386383 C252.786383,22.386383 254.175319,23.8842553 254.175319,26.8255319 L254.175319,35.5948936 L252.16,35.5948936 L252.16,27.4246809 C252.16,25.5182979 251.751489,23.9659574 249.436596,23.9659574 C247.617437,23.9459926 246.093778,25.3387115 245.950638,27.1523404 L245.950638,35.5676596 L244.071489,35.5676596 Z" id="Shape" fill="#BCBEC0"></path>
21
+ <path d="M99.186383,20.7795745 C99.2365776,16.8743092 100.838133,13.1494003 103.637852,10.4263158 C106.437571,7.70323131 110.205484,6.20564666 114.110638,6.26382979 C116.966878,6.20309061 119.75006,7.16947302 121.954043,8.98723404 L121.954043,8.98723404 L121.954043,6.26382979 L129.41617,6.26382979 L129.41617,34.4782979 L121.954043,34.4782979 L121.954043,32.027234 C119.710163,34.1842467 116.674422,35.3177212 113.565957,35.1591489 C109.704438,35.3226988 105.951139,33.8603012 103.218185,31.1273468 C100.485231,28.3943925 99.0228331,24.6410936 99.186383,20.7795745 L99.186383,20.7795745 Z M121.954043,20.7795745 C122.122991,17.9613671 120.715444,15.281844 118.299083,13.8216944 C115.882722,12.3615449 112.856002,12.3615449 110.439641,13.8216944 C108.02328,15.281844 106.615732,17.9613671 106.784681,20.7795745 C106.725451,22.8200621 107.49868,24.7968821 108.926638,26.2556598 C110.354597,27.7144375 112.314458,28.5296944 114.355745,28.5140426 C116.40645,28.5528508 118.382717,27.7458546 119.820107,26.2827048 C121.257497,24.819555 122.029266,22.8292669 121.954043,20.7795745 L121.954043,20.7795745 Z" id="Shape" fill="#939598"></path>
22
+ <path d="M65.0893617,20.7795745 C65.1395563,16.8743092 66.7411116,13.1494003 69.5408308,10.4263158 C72.3405499,7.70323131 76.1084626,6.20564666 80.013617,6.26382979 C82.8772612,6.20860004 85.6671521,7.17396021 87.8842553,8.98723404 L87.8842553,8.98723404 L87.8842553,6.26382979 L95.3191489,6.26382979 L95.3191489,34.4782979 L87.8842553,34.4782979 L87.8842553,32.027234 C85.6267523,34.1801302 82.5846749,35.3122949 79.4689362,35.1591489 C75.607417,35.3226988 71.8541182,33.8603012 69.1211638,31.1273468 C66.3882095,28.3943925 64.9258118,24.6410936 65.0893617,20.7795745 L65.0893617,20.7795745 Z M87.8842553,20.7795745 C87.8842553,16.5831504 84.4823815,13.1812766 80.2859574,13.1812766 C76.0895334,13.1812766 72.6876596,16.5831504 72.6876596,20.7795745 C72.6876596,24.9759985 76.0895334,28.3778723 80.2859574,28.3778723 C84.4823815,28.3778723 87.8842553,24.9759985 87.8842553,20.7795745 L87.8842553,20.7795745 Z" id="Shape" fill="#939598"></path>
23
+ <path d="M172.364255,6.2093617 C168.131842,6.2056084 164.073104,7.89184764 161.089362,10.893617 C158.109014,7.73159508 153.911992,6.00516041 149.569362,6.15489362 C146.836317,6.17541255 144.15434,6.89748353 141.780426,8.25191489 L141.780426,6.26382979 L134.236596,6.26382979 L134.236596,34.6689362 L141.834894,34.6689362 L141.834894,21.0519149 C141.75967,19.0022225 142.531439,17.0119343 143.968829,15.5487845 C145.406219,14.0856347 147.382486,13.2786386 149.433191,13.3174468 C151.49106,13.2542522 153.481785,14.0535079 154.924617,15.5221975 C156.36745,16.9908872 157.131223,18.9954937 157.031489,21.0519149 L157.031489,34.6689362 L164.629787,34.6689362 L164.629787,21.0519149 C164.460838,18.2337075 165.868386,15.5541845 168.284747,14.0940349 C170.701108,12.6338853 173.727828,12.6338853 176.144189,14.0940349 C178.56055,15.5541845 179.968098,18.2337075 179.799149,21.0519149 L179.799149,34.6689362 L187.397447,34.6689362 L187.397447,21.0519149 C187.573177,17.0304995 186.039147,13.1224871 183.174759,10.2944231 C180.310371,7.46635919 176.383101,5.98232636 172.364255,6.2093617 Z" id="Shape" fill="#939598"></path>
24
+ </g>
25
+ </g>
26
+ </svg>
media/css/aam.css CHANGED
@@ -323,6 +323,8 @@ div.error {
323
  box-shadow: none;
324
  height: 34px;
325
  border-radius: 0;
 
 
326
  }
327
 
328
  .form-control.highlight {
@@ -966,6 +968,10 @@ input[type=radio]:checked + label:before {
966
  position: relative;
967
  }
968
 
 
 
 
 
969
  .aam-slide-form .table td {
970
  vertical-align: middle;
971
  }
323
  box-shadow: none;
324
  height: 34px;
325
  border-radius: 0;
326
+ border: 1px solid #ccc !important;
327
+ padding: 6px 12px !important;
328
  }
329
 
330
  .form-control.highlight {
968
  position: relative;
969
  }
970
 
971
+ .modal-backdrop {
972
+ z-index: 998;
973
+ }
974
+
975
  .aam-slide-form .table td {
976
  vertical-align: middle;
977
  }
media/js/aam.js CHANGED
@@ -721,7 +721,7 @@
721
  $('.dataTables_filter', '#user-list_wrapper').append(create);
722
 
723
  var filter = $('<select>').attr({
724
- 'class': 'user-filter',
725
  'id': 'user-list-filter'
726
  })
727
  .html('<option value="">' + getAAM().__('Loading roles...') + '</option>')
@@ -2537,7 +2537,6 @@
2537
  previous: "icon-angle-left",
2538
  next: "icon-angle-right"
2539
  },
2540
- minDate: new Date(),
2541
  inline: true,
2542
  defaultDate: $.trim(def) ? new Date(def * 1000) : new Date(),
2543
  sideBySide: true
@@ -4624,10 +4623,8 @@
4624
  //highlight screen if the same level
4625
  if (parseInt(level) >= getLocal().level || type === 'default') {
4626
  $('.aam-current-subject').addClass('danger');
4627
- $('#wpcontent').css('background-color', '#FAEBEA');
4628
  } else {
4629
  $('.aam-current-subject').removeClass('danger');
4630
- $('#wpcontent').css('background-color', '#FFFFFF');
4631
  }
4632
 
4633
  this.triggerHook('setSubject');
721
  $('.dataTables_filter', '#user-list_wrapper').append(create);
722
 
723
  var filter = $('<select>').attr({
724
+ 'class': 'user-filter form-control',
725
  'id': 'user-list-filter'
726
  })
727
  .html('<option value="">' + getAAM().__('Loading roles...') + '</option>')
2537
  previous: "icon-angle-left",
2538
  next: "icon-angle-right"
2539
  },
 
2540
  inline: true,
2541
  defaultDate: $.trim(def) ? new Date(def * 1000) : new Date(),
2542
  sideBySide: true
4623
  //highlight screen if the same level
4624
  if (parseInt(level) >= getLocal().level || type === 'default') {
4625
  $('.aam-current-subject').addClass('danger');
 
4626
  } else {
4627
  $('.aam-current-subject').removeClass('danger');
 
4628
  }
4629
 
4630
  this.triggerHook('setSubject');
readme.txt CHANGED
@@ -1,63 +1,74 @@
1
  === Advanced Access Manager ===
2
  Contributors: vasyltech
3
  Tags: access control, membership, backend menu, user role, restricted content, security, jwt
4
- Requires at least: 4.4.0
5
- Tested up to: 5.2.1
6
- Stable tag: 5.9.7.2
 
7
 
8
- All you need to manage access to you WordPress websites on frontend, backend and API levels for any role, user or visitors.
9
 
10
  == Description ==
11
 
12
- > Advanced Access Manager (aka AAM) is all you need to manage access to your website frontend and backend for any user, role or visitors.
13
 
14
  https://www.youtube.com/watch?v=mj5Xa_Wc16Y
15
 
16
  = Few Quick Facts =
17
 
18
- * The only plugin that gives you absolute freedom to define the most granular access to any aspect of your website and most of the feature are free;
19
  * Bullet-proven plugin that is used on over 100,000 websites where all features are well-tested and [documented](https://aamplugin.com/support). Very low amount of support tickets speaks for quality;
20
- * It is the only plugin that gives you the ability to manage access to your website content for any role, individual user and visitors or even define the default access to all posts, pages, custom post types, categories and custom hierarchical taxonomies;
21
- * AAM is developer oriented plugin. It has dozens of hooks and configurations. It is integrated with WordPress RESTful and XML-RPC APIs and has numerous abstract layers to simplify coding;
22
  * No ads or other promotional crap. The UI is clean and well crafted so you can focus only on what matters;
23
- * No need to be a "paid" customer to get help. Request support via email or start chat with Google Hangout;
24
- * Some features are limited or available only with [premium extensions](https://aamplugin.com/store). AAM functionality is transparent and you will absolute know when you need to get a premium extension;
25
 
26
  = Main Areas Of Focus =
27
 
28
  * [Access & Security Policy](https://aamplugin.com/reference/policy) allows you to define who, when, how and under what conditions your website resources can be accessed;
29
- * Content access control on frontend, backend and API sides to posts, pages, custom post types, categories, custom hierarchical taxonomies and CPTs for any role, user and visitors;
30
- * Roles & capabilities management with ability to create new roles and capabilities, edit, clone or delete existing;
31
  * Access control to backend area including backend menu, toolbar, metaboxes & widgets;
32
- * Access control to RESTful & XML-RPC APIs;
33
- * Developer friendly API so it can be used by other developers to work with AAM core;
34
  * And all necessary features to setup smooth user flow during login, logout, access denied even, 404 etc.
35
 
36
  = The Most Popular Features =
37
 
38
  * [free] Manage Backend Menu. Manage access to the backend menu for any user or role. Find out more from [How to manage WordPress backend menu](https://aamplugin.com/article/how-to-manage-wordpress-backend-menu) article;
39
- * [free] Manage Roles & Capabilities. Manage all your WordPress role and capabilities.
40
  * [free] All necessary set of tools to manage JWT authentication [Ultimate guide to WordPress JWT Authentication](https://aamplugin.com/article/ultimate-guide-to-wordpress-jwt-authentication)
41
  * [free] Create temporary user accounts. Create and manage temporary user accounts. Find out more from [How to create temporary WordPress user account](https://aamplugin.com/article/how-to-create-temporary-wordpress-user-account);
42
- * [limited] Content access. Very granular access to unlimited number of post, page or custom post type ([19 different options](https://aamplugin.com/reference/plugin#posts-terms)). With premium [Plus Package](https://aamplugin.com/extension/plus-package) extension also manage access to hierarchical taxonomies or setup the default access to all post types and taxonomies. Find out more from [How to manage access to the WordPress content](https://aamplugin.com/article/how-to-manage-access-to-the-wordpress-content) article;
43
- * [free] Manage Admin Toolbar. Filter out unnecessary items from the top admin toolbar for any role or user.
44
  * [free] Backend Lockdown. Restrict access to your website backend side for any user or role. Find out more from [How to lockdown WordPress backend](https://aamplugin.com/article/how-to-lockdown-wordpress-backend) article;
45
  * [free] Secure Login Widget & Shortcode. Drop AJAX login widget or shortcode anywhere on your website. Find out more from [How does AAM Secure Login works](https://aamplugin.com/article/how-does-aam-secure-login-works) article;
46
  * [free] Ability to enable/disable RESTful and XML-RPC APIs.
47
- * [limited] URI Access. Allow or deny access to any page of you website by the page URL as well as how to redirect user when access is denied;
48
  * [free] Manage access to RESTful or XML-RPC individual endpoints for any role, user or visitors.
49
- * [free] JWT authentication. Authenticate user with WordPress RESTful API and use received JWT token for further requests. Fid out more from [Hot to authenticate WordPress user with JWT token](https://aamplugin.com/article/how-to-authenticate-wordpress-user-with-jwt-token)
50
  * [free] Login with URL. For more information check [WordPress: Temporary User Account, Login With URL & JWT Token](https://aamplugin.com/article/wordpress-temporary-user-account-login-with-url-jwt-token) article.
51
  * [free] Content Filter. Filter or replace parts of your content with AAM shortcodes. Find out more from [How to filter WordPress post content](https://aamplugin.com/article/how-to-filter-wordpress-post-content) article;
52
  * [free] Login/Logout Redirects. Define custom login and logout redirect for any user or role;
53
- * [free] 404 Redirect. Redefine where user should be redirected when page does not exist. Find out more from [How to redirect on WordPress 404 error](https://aamplugin.com/article/how-to-redirect-on-wordpress-404-error);
54
- * [free] Access Denied Redirect. Define custom redirect for any role, user or visitors when access is denied for restricted area on your website;
55
  * [free] Manage Metaboxes & Widgets. Filter out restricted or unnecessary metaboxes and widgets on both frontend and backend for any user, role or visitors. Find out more from [How to hide WordPress metaboxes & widgets](https://aamplugin.com/article/how-to-hide-wordpress-metaboxes-and-widgets) article;
56
- * [paid] Manage access based on IP address or referred domain. Manage access to your website for all visitors based on referred host or IP address. Find out more from [How to manage access to WordPress website by IP address](https://aamplugin.com/article/how-to-manage-access-to-wordpress-website-by-ip-address) article;
57
- * [paid] Monetize access to you content. Start selling access to your website content with premium [E-Commerce](https://aamplugin.com/extension/ecommerce) extension. Find out more from [How to monetize access to the WordPress content](https://aamplugin.com/article/how-to-monetize-access-to-the-wordpress-content) article;
58
- * [free] Multisite support. Sync access settings across your network or even restrict none-members from accessing one of your sites. Find out more from [AAM and WordPress Multisite support](https://aamplugin.com/article/aam-and-wordpress-multisite-support);
59
- * [free] Multiple role support. Finally AAM supports multiple roles per user [WordPress access control for users with multiple roles](https://aamplugin.com/article/wordpress-access-control-for-users-with-multiple-roles)
60
- * [and even more...] Check our [help page](https://aamplugin.com/support) to learn more about AAM
 
 
 
 
 
 
 
 
 
 
 
61
 
62
  == Installation ==
63
 
@@ -80,6 +91,9 @@ https://www.youtube.com/watch?v=mj5Xa_Wc16Y
80
 
81
  == Changelog ==
82
 
 
 
 
83
  = 5.9.7.1 =
84
  * Fixed the bug with Access Policy for Capability resource
85
  * Fixed the bug with Nginx redirect rules for media access
@@ -100,7 +114,7 @@ https://www.youtube.com/watch?v=mj5Xa_Wc16Y
100
  * Fixed the bug added slashes to the Access Policy JSON document
101
  * Fixed the bug with Metaboxes & Widgets to prevent PHP warning for widgets that registered with Closure callback
102
  * Fixed the bug in URI Access feature that causes PHP warning when data is merged for multiple roles
103
- * Fixed the bug with Access Policy rules that are not initialized correctly for Visitors
104
  * Fixed the bug reported on GitHub https://github.com/aamplugin/advanced-access-manager/issues/6
105
  * Changed the way AAM hooks into get_options pipeline with Access Policy "Params". This is done to support array options
106
  * Changed the way Login Widget is registered to reduce code
@@ -110,7 +124,7 @@ https://www.youtube.com/watch?v=mj5Xa_Wc16Y
110
 
111
  = 5.9.6 =
112
  * Fixed the bug with URI Access feature for URIs with trailing forward slash "/"
113
- * Fixed the bug with Access Policy where incorrect default value was propagated
114
  * Fixed the bug with API Routes not merged properly with multiple-roles support
115
  * Added HTTP Redirect Code to URI Access, Posts & Terms features
116
  * Added new Access Policy marker type QUERY that is alias for the GET
@@ -205,7 +219,7 @@ https://www.youtube.com/watch?v=mj5Xa_Wc16Y
205
 
206
  = 5.8.1 =
207
  * Fixed bug that causes fatal error with Policy editor on Linux servers
208
- * Profiled and improved several bottlenecks that may speed-up website load up to 300 milliseconds
209
 
210
  = 5.8 =
211
  * Fixed the bug with Access Policy settings inheritance mechanism
@@ -263,7 +277,7 @@ https://www.youtube.com/watch?v=mj5Xa_Wc16Y
263
 
264
  = 5.6 =
265
  * Fixed the bug with encoding on Safari when gzip is enabled
266
- * Fixed the bug with double caching
267
  * Added URI Access feature that allows to manage access to any website URI
268
  * Improved UI a little bit
269
 
@@ -378,12 +392,12 @@ https://www.youtube.com/watch?v=mj5Xa_Wc16Y
378
  = 5.3.2 =
379
  * Fixed the bug that triggers PHP warnings when blocked user is trying to login
380
  * Fixed the bug with get current post method in the core API
381
- * WARNING Experimental approach! to the post access that enormously improve AAM performance
382
  * Added custom capability "edit_permalink" that control ability to edit post permalink
383
 
384
  = 5.3.1 =
385
  * Fixed bug with deprecated cache object to keep it backward compatible
386
- * Fixed bug with teaser message on none latin alphabet
387
  * Improved REDIRECT functionality for Posts & Terms feature
388
  * Added finally singe point API (AAM::api method)
389
  * Added "Single Session" option to the Secure Login widget
@@ -673,9 +687,9 @@ https://www.youtube.com/watch?v=mj5Xa_Wc16Y
673
  * Improved Content filter shortcode to allow other shortcodes inside
674
  * Fixed bug for add/edit role with apostrophe
675
  * Fixed bug with custom Access Denied message
676
- * Fixed bug with data migration
677
 
678
- = 4.0.1 =
679
  * Fixed bug with login redirect
680
  * Fixed minor bug with PHP Warnings on Utilities tab
681
  * Fixed post filtering bug
@@ -694,7 +708,7 @@ https://www.youtube.com/watch?v=mj5Xa_Wc16Y
694
  * Improved multisite support
695
  * Improved caching mechanism
696
 
697
- = 3.9.5.1 =
698
  * Fixed bug with login redirect
699
 
700
  = 3.9.5 =
@@ -735,7 +749,7 @@ https://www.youtube.com/watch?v=mj5Xa_Wc16Y
735
 
736
  = 3.9 =
737
  * Fixed UI bug with role list
738
- * Fixed core bug with max user level
739
  * Fixed bug with CodePinch installation page
740
  * Added native user switch functionality
741
 
@@ -855,7 +869,7 @@ https://www.youtube.com/watch?v=mj5Xa_Wc16Y
855
 
856
  = 3.1.3 =
857
  * Fixed bug with default post settings
858
- * Filtering roles and capabilities form malicious code
859
 
860
  = 3.1.2 =
861
  * Quick fix
@@ -995,7 +1009,7 @@ https://www.youtube.com/watch?v=mj5Xa_Wc16Y
995
  * Removed Deprecated ConfigPress Object from the core
996
 
997
  = 2.7 =
998
- * Fixed bug with subject managing check
999
  * Fixed bug with update hook
1000
  * Fixed issue with extension activation hook
1001
  * Added AAM Security Feature. First iteration
1
  === Advanced Access Manager ===
2
  Contributors: vasyltech
3
  Tags: access control, membership, backend menu, user role, restricted content, security, jwt
4
+ Requires at least: 4.7.0
5
+ Requires PHP: 5.6.0
6
+ Tested up to: 5.3
7
+ Stable tag: 6.0.0
8
 
9
+ All you need to manage access to WordPress websites on the frontend, backend and API levels for any role, user or visitors.
10
 
11
  == Description ==
12
 
13
+ > Advanced Access Manager (aka AAM) is a powerfully robust WordPress plugin designed to help you control every aspect of your website, your way.
14
 
15
  https://www.youtube.com/watch?v=mj5Xa_Wc16Y
16
 
17
  = Few Quick Facts =
18
 
19
+ * The only plugin that gives you the absolute freedom to define a most granular access to any aspect of your website and most of the features are free;
20
  * Bullet-proven plugin that is used on over 100,000 websites where all features are well-tested and [documented](https://aamplugin.com/support). Very low amount of support tickets speaks for quality;
21
+ * It is the only plugin that gives you the ability to manage access to your website content for any role, individual user and visitors or even define the default access to all posts, pages, custom post types, categories, and custom taxonomies;
22
+ * AAM is a developer-oriented plugin. It has dozens of hooks and configurations. It is integrated with WordPress RESTful and XML-RPC APIs and has numerous abstract layers to simplify coding;
23
  * No ads or other promotional crap. The UI is clean and well crafted so you can focus only on what matters;
24
+ * No need to be a "paid" customer to get help. Request support at any time;
25
+ * Some features are limited or available only with [premium add-ons](https://aamplugin.com/pricing). AAM functionality is transparent and you will absolutely know when you need to get a premium add-on;
26
 
27
  = Main Areas Of Focus =
28
 
29
  * [Access & Security Policy](https://aamplugin.com/reference/policy) allows you to define who, when, how and under what conditions your website resources can be accessed;
30
+ * Content access control on the frontend, backend and API levels to posts, pages, media attachments, custom post types, categories, tags, custom taxonomies for any role, user and visitors;
31
+ * Roles & capabilities management with the ability to create new roles and capabilities, edit, clone or delete existing;
32
  * Access control to backend area including backend menu, toolbar, metaboxes & widgets;
33
+ * Access control to RESTful API;
34
+ * Developer-friendly API so it can be used by other developers to work with AAM core;
35
  * And all necessary features to setup smooth user flow during login, logout, access denied even, 404 etc.
36
 
37
  = The Most Popular Features =
38
 
39
  * [free] Manage Backend Menu. Manage access to the backend menu for any user or role. Find out more from [How to manage WordPress backend menu](https://aamplugin.com/article/how-to-manage-wordpress-backend-menu) article;
40
+ * [free] Manage Roles & Capabilities. Manage all your WordPress roles and capabilities.
41
  * [free] All necessary set of tools to manage JWT authentication [Ultimate guide to WordPress JWT Authentication](https://aamplugin.com/article/ultimate-guide-to-wordpress-jwt-authentication)
42
  * [free] Create temporary user accounts. Create and manage temporary user accounts. Find out more from [How to create temporary WordPress user account](https://aamplugin.com/article/how-to-create-temporary-wordpress-user-account);
43
+ * [limited] Content access. Very granular access to an unlimited number of posts, pages or custom post types ([20 different options](https://aamplugin.com/reference/plugin#posts-terms)). With premium [Plus Package](https://aamplugin.com/extension/plus-package) add-on also manage access to taxonomies, terms or setup the default access to everything. Find out more from [How to manage access to the WordPress content](https://aamplugin.com/article/how-to-manage-access-to-the-wordpress-content) article;
44
+ * [free] Manage Admin Toolbar. Filter out unnecessary items from the top admin toolbar for any role or user.
45
  * [free] Backend Lockdown. Restrict access to your website backend side for any user or role. Find out more from [How to lockdown WordPress backend](https://aamplugin.com/article/how-to-lockdown-wordpress-backend) article;
46
  * [free] Secure Login Widget & Shortcode. Drop AJAX login widget or shortcode anywhere on your website. Find out more from [How does AAM Secure Login works](https://aamplugin.com/article/how-does-aam-secure-login-works) article;
47
  * [free] Ability to enable/disable RESTful and XML-RPC APIs.
48
+ * [limited] URI Access. Allow or deny access to any page of your website by the page URL as well as how to redirect a user when access is denied;
49
  * [free] Manage access to RESTful or XML-RPC individual endpoints for any role, user or visitors.
 
50
  * [free] Login with URL. For more information check [WordPress: Temporary User Account, Login With URL & JWT Token](https://aamplugin.com/article/wordpress-temporary-user-account-login-with-url-jwt-token) article.
51
  * [free] Content Filter. Filter or replace parts of your content with AAM shortcodes. Find out more from [How to filter WordPress post content](https://aamplugin.com/article/how-to-filter-wordpress-post-content) article;
52
  * [free] Login/Logout Redirects. Define custom login and logout redirect for any user or role;
53
+ * [free] 404 Redirect. Redefine where a user should be redirected when a page does not exist. Find out more from [How to redirect on WordPress 404 error](https://aamplugin.com/article/how-to-redirect-on-wordpress-404-error);
54
+ * [free] Access Denied Redirect. Define custom redirect for any role, user or visitors when access is denied for a restricted area on your website;
55
  * [free] Manage Metaboxes & Widgets. Filter out restricted or unnecessary metaboxes and widgets on both frontend and backend for any user, role or visitors. Find out more from [How to hide WordPress metaboxes & widgets](https://aamplugin.com/article/how-to-hide-wordpress-metaboxes-and-widgets) article;
56
+ * [paid] Manage access based on IP address or referred domain. Manage access to the entire website or any specific page or post based on referred host or IP address. Find out more from [How to manage access to WordPress website by IP address](https://aamplugin.com/article/how-to-manage-access-to-wordpress-website-by-ip-address) article;
57
+ * [free] Multiple role support. AAM supports multiple roles per user [WordPress access control for users with multiple roles](https://aamplugin.com/article/wordpress-access-control-for-users-with-multiple-roles)
58
+ * [and even more...] Check our [official website](https://aamplugin.com) to learn more about AAM
59
+
60
+ = Non-Negotiable =
61
+
62
+ We take security and privacy very seriously, that is why there are several non-negotiable items that we obey for all cost in the basic AAM version.
63
+
64
+ * AAM does not create new or alter existing website database tables;
65
+ * AAM does not read any files outside of the AAM plugin’s folder;
66
+ * AAM does not create new, write or delete any existing files or folders on a server;
67
+ * AAM does not capture or send externally any information about how it is used;
68
+ * AAM does not capture or send externally any information about a website server. The only exception is a website domain that is assigned to a premium license during activation;
69
+ * AAM does not integrate with any other plugins directly;
70
+ * AAM does not impersonate or swap user login sessions. All the authentication is handled by WordPress core where AAM may provide only verified and trusted information as means of authentication;
71
+ * AAM does not include advertisement of any kind (no banners, cross-sales pitches or affiliate links);
72
 
73
  == Installation ==
74
 
91
 
92
  == Changelog ==
93
 
94
+ = 6.0.0 =
95
+ * Complete rewrite of the entire plugin. For more information, check [this article](https://aamplugin.com/article/advanced-access-manager-next-generation)
96
+
97
  = 5.9.7.1 =
98
  * Fixed the bug with Access Policy for Capability resource
99
  * Fixed the bug with Nginx redirect rules for media access
114
  * Fixed the bug added slashes to the Access Policy JSON document
115
  * Fixed the bug with Metaboxes & Widgets to prevent PHP warning for widgets that registered with Closure callback
116
  * Fixed the bug in URI Access feature that causes PHP warning when data is merged for multiple roles
117
+ * Fixed the bug with Access Policy rules that are not initialized correctly for Visitors
118
  * Fixed the bug reported on GitHub https://github.com/aamplugin/advanced-access-manager/issues/6
119
  * Changed the way AAM hooks into get_options pipeline with Access Policy "Params". This is done to support array options
120
  * Changed the way Login Widget is registered to reduce code
124
 
125
  = 5.9.6 =
126
  * Fixed the bug with URI Access feature for URIs with trailing forward slash "/"
127
+ * Fixed the bug with Access Policy where incorrect default value was propagated
128
  * Fixed the bug with API Routes not merged properly with multiple-roles support
129
  * Added HTTP Redirect Code to URI Access, Posts & Terms features
130
  * Added new Access Policy marker type QUERY that is alias for the GET
219
 
220
  = 5.8.1 =
221
  * Fixed bug that causes fatal error with Policy editor on Linux servers
222
+ * Profiled and improved several bottlenecks that may speed-up website load up to 300 milliseconds
223
 
224
  = 5.8 =
225
  * Fixed the bug with Access Policy settings inheritance mechanism
277
 
278
  = 5.6 =
279
  * Fixed the bug with encoding on Safari when gzip is enabled
280
+ * Fixed the bug with double caching
281
  * Added URI Access feature that allows to manage access to any website URI
282
  * Improved UI a little bit
283
 
392
  = 5.3.2 =
393
  * Fixed the bug that triggers PHP warnings when blocked user is trying to login
394
  * Fixed the bug with get current post method in the core API
395
+ * WARNING Experimental approach! to the post access that enormously improve AAM performance
396
  * Added custom capability "edit_permalink" that control ability to edit post permalink
397
 
398
  = 5.3.1 =
399
  * Fixed bug with deprecated cache object to keep it backward compatible
400
+ * Fixed bug with teaser message on none latin alphabet
401
  * Improved REDIRECT functionality for Posts & Terms feature
402
  * Added finally singe point API (AAM::api method)
403
  * Added "Single Session" option to the Secure Login widget
687
  * Improved Content filter shortcode to allow other shortcodes inside
688
  * Fixed bug for add/edit role with apostrophe
689
  * Fixed bug with custom Access Denied message
690
+ * Fixed bug with data migration
691
 
692
+ = 4.0.1 =
693
  * Fixed bug with login redirect
694
  * Fixed minor bug with PHP Warnings on Utilities tab
695
  * Fixed post filtering bug
708
  * Improved multisite support
709
  * Improved caching mechanism
710
 
711
+ = 3.9.5.1 =
712
  * Fixed bug with login redirect
713
 
714
  = 3.9.5 =
749
 
750
  = 3.9 =
751
  * Fixed UI bug with role list
752
+ * Fixed core bug with max user level
753
  * Fixed bug with CodePinch installation page
754
  * Added native user switch functionality
755
 
869
 
870
  = 3.1.3 =
871
  * Fixed bug with default post settings
872
+ * Filtering roles and capabilities form malicious code
873
 
874
  = 3.1.2 =
875
  * Quick fix
1009
  * Removed Deprecated ConfigPress Object from the core
1010
 
1011
  = 2.7 =
1012
+ * Fixed bug with subject managing check
1013
  * Fixed bug with update hook
1014
  * Fixed issue with extension activation hook
1015
  * Added AAM Security Feature. First iteration