Advanced Access Manager - Version 5.0.2

Version Description

  • Fixed bug with admin menu reported by Andrew
  • Fixed possible bug with theTitle filter
  • Fixed bug with custom HTML message for the access denied redirect rule
  • Fixed bug with ACCESS EXPIRATION option for Posts & Pages
  • Fixed bug with Multinetwork setup when super admin is not able to add new users
  • Fixed bug with extension statuses
  • Removed support for integration with ConfigPress plugin. Use ConfigPress extension instead
  • Added localization strings for Login widget & shortcode
Download this release

Release Info

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

Code changes from version 5.0.1 to 5.0.2

Application/Backend/Feature/Extension/Manager.php CHANGED
@@ -56,8 +56,14 @@ class AAM_Backend_Feature_Extension_Manager extends AAM_Backend_Feature_Abstract
56
  $package = AAM_Core_Server::download($license);
57
 
58
  if (is_wp_error($package)) {
 
 
 
 
 
59
  $response = array(
60
- 'status' => 'failure', 'error' => $package->get_error_message()
 
61
  );
62
  }elseif ($error = $repo->checkDirectory()) {
63
  $response = $this->installFailureResponse($error, $package);
56
  $package = AAM_Core_Server::download($license);
57
 
58
  if (is_wp_error($package)) {
59
+ $manually = sprintf(
60
+ __('To install extension manually, check %sthis article%s.', AAM_KEY),
61
+ '<a href="https://aamplugin.com/help/how-to-install-aam-extension-manually">',
62
+ '</a>'
63
+ );
64
  $response = array(
65
+ 'status' => 'failure',
66
+ 'error' => strip_tags($package->get_error_message()) . ' ' . $manually
67
  );
68
  }elseif ($error = $repo->checkDirectory()) {
69
  $response = $this->installFailureResponse($error, $package);
Application/Backend/Feature/Main/Post.php CHANGED
@@ -434,7 +434,7 @@ class AAM_Backend_Feature_Main_Post extends AAM_Backend_Feature_Abstract {
434
  $value = AAM_Core_Request::post('value');
435
 
436
  if (strpos($param, 'frontend.expire_datetime') !== false) {
437
- $value = date('F jS g:i:s a', strtotime($value));
438
  }
439
 
440
  //clear cache
434
  $value = AAM_Core_Request::post('value');
435
 
436
  if (strpos($param, 'frontend.expire_datetime') !== false) {
437
+ $value = date('Y-m-d H:i:s', strtotime($value));
438
  }
439
 
440
  //clear cache
Application/Backend/Filter.php CHANGED
@@ -71,9 +71,11 @@ class AAM_Backend_Filter {
71
  add_action('profile_update', array($this, 'profileUpdate'), 10, 2);
72
 
73
  //user/role filters
74
- add_filter('editable_roles', array($this, 'filterRoles'));
75
- add_action('pre_get_users', array($this, 'filterUserQuery'), 999);
76
- add_filter('views_users', array($this, 'filterViews'));
 
 
77
 
78
  AAM_Backend_Authorization::bootstrap(); //bootstrap backend authorization
79
  }
71
  add_action('profile_update', array($this, 'profileUpdate'), 10, 2);
72
 
73
  //user/role filters
74
+ if (!is_multisite() || !is_super_admin()) {
75
+ add_filter('editable_roles', array($this, 'filterRoles'));
76
+ add_action('pre_get_users', array($this, 'filterUserQuery'), 999);
77
+ add_filter('views_users', array($this, 'filterViews'));
78
+ }
79
 
80
  AAM_Backend_Authorization::bootstrap(); //bootstrap backend authorization
81
  }
Application/Backend/Manager.php CHANGED
@@ -134,9 +134,9 @@ class AAM_Backend_Manager {
134
  * @param type $id
135
  * @return type
136
  */
137
- public function theTitle($title, $id) {
138
  if (empty($title)) {
139
- $title = '[No Title]: ID ' . $id;
140
  }
141
 
142
  return $title;
134
  * @param type $id
135
  * @return type
136
  */
137
+ public function theTitle($title, $id = null) {
138
  if (empty($title)) {
139
+ $title = '[No Title]: ID ' . ($id ? $id : '[No ID]');
140
  }
141
 
142
  return $title;
Application/Backend/View.php CHANGED
@@ -194,7 +194,7 @@ class AAM_Backend_View {
194
  $objectId = intval(AAM_Core_Request::post('objectId', 0));
195
 
196
  $param = AAM_Core_Request::post('param');
197
- $value = AAM_Core_Request::post('value');
198
 
199
  $result = AAM_Backend_Subject::getInstance()->save(
200
  $param, $value, $object, $objectId
194
  $objectId = intval(AAM_Core_Request::post('objectId', 0));
195
 
196
  $param = AAM_Core_Request::post('param');
197
+ $value = filter_input(INPUT_POST, 'value');
198
 
199
  $result = AAM_Backend_Subject::getInstance()->save(
200
  $param, $value, $object, $objectId
Application/Backend/View/PostOptionList.php CHANGED
@@ -66,7 +66,7 @@ class AAM_Backend_View_PostOptionList {
66
  ),
67
  'expire' => array(
68
  'title' => __('Access Expiration', AAM_KEY),
69
- 'sub' => __('Expires:', AAM_KEY),
70
  'option' => 'frontend.expire_datetime',
71
  'preview' => 'frontend-expire_datetime-preview',
72
  'descr' => __('Define when access expires for %s.', AAM_KEY) . sprintf(__('After expiration, the access to %s will be denied and user will be redirected based on the Access Denied Redirect rule. For more information %scheck this article%s or ', AAM_KEY), '%s', "<a href='https://aamplugin.com/help/how-to-set-expiration-date-for-any-wordpress-content' target='_blank'>", '</a>') . sprintf(__(' %ssee in action.%s', AAM_KEY), "<a href='https://youtu.be/IgtgVoWs35w' target='_blank'>", '</a>')
66
  ),
67
  'expire' => array(
68
  'title' => __('Access Expiration', AAM_KEY),
69
+ 'sub' => __('Expires', AAM_KEY),
70
  'option' => 'frontend.expire_datetime',
71
  'preview' => 'frontend-expire_datetime-preview',
72
  'descr' => __('Define when access expires for %s.', AAM_KEY) . sprintf(__('After expiration, the access to %s will be denied and user will be redirected based on the Access Denied Redirect rule. For more information %scheck this article%s or ', AAM_KEY), '%s', "<a href='https://aamplugin.com/help/how-to-set-expiration-date-for-any-wordpress-content' target='_blank'>", '</a>') . sprintf(__(' %ssee in action.%s', AAM_KEY), "<a href='https://youtu.be/IgtgVoWs35w' target='_blank'>", '</a>')
Application/Backend/phtml/extensions.phtml CHANGED
@@ -44,13 +44,13 @@
44
  <?php echo $product['description']; ?>
45
  </p>
46
  </td>
47
- <td>
48
  <?php if ($product['status'] == AAM_Extension_Repository::STATUS_INSTALLED) { ?>
49
- <a href="#" class="btn btn-sm btn-danger btn-block aam-deactivate-extension" data-product="<?php echo $product['id']; ?>"><i class="icon-attention-circled"></i> <?php echo __('Deactivate', AAM_KEY); ?></a>
50
  <?php } elseif ($product['status'] == AAM_Extension_Repository::STATUS_UPDATE) { ?>
51
  <a href="#" class="btn btn-sm btn-warning btn-block aam-update-extension" data-product="<?php echo $product['id']; ?>"><i class="icon-arrows-cw"></i> <?php echo __('Update', AAM_KEY); ?></a>
52
  <?php } elseif ($product['status'] == AAM_Extension_Repository::STATUS_INACTIVE) { ?>
53
- <a href="#" class="btn btn-sm btn-success btn-block aam-activate-extension" data-product="<?php echo $product['id']; ?>"><i class="icon-check"></i> <?php echo __('Activate', AAM_KEY); ?></a>
54
  <?php } else { ?>
55
  <a href="<?php echo $product['url']; ?>" target="_blank" class="btn btn-sm btn-primary btn-block"><i class="icon-link"></i> <?php echo __('Read More', AAM_KEY); ?></a>
56
  <?php } ?>
@@ -71,13 +71,13 @@
71
  <?php echo $product['description']; ?>
72
  </p>
73
  </td>
74
- <td>
75
  <?php if ($product['status'] == AAM_Extension_Repository::STATUS_INSTALLED) { ?>
76
- <a href="#" class="btn btn-sm btn-danger btn-block aam-deactivate-extension" data-product="<?php echo $product['id']; ?>"><i class="icon-attention-circled"></i> <?php echo __('Deactivate', AAM_KEY); ?></a>
77
  <?php } elseif ($product['status'] == AAM_Extension_Repository::STATUS_UPDATE) { ?>
78
  <a href="#" class="btn btn-sm btn-warning btn-block aam-update-extension" data-product="<?php echo $product['id']; ?>"><i class="icon-arrows-cw"></i> <?php echo __('Update', AAM_KEY); ?></a>
79
  <?php } elseif ($product['status'] == AAM_Extension_Repository::STATUS_INACTIVE) { ?>
80
- <a href="#" class="btn btn-sm btn-success btn-block aam-activate-extension" data-product="<?php echo $product['id']; ?>"><i class="icon-check"></i> <?php echo __('Activate', AAM_KEY); ?></a>
81
  <?php } else { ?>
82
  <a href="#" class="btn btn-sm btn-success btn-block aam-download-extension" data-license="<?php echo $product['license']; ?>"><i class="icon-download-cloud"></i> <?php echo __('Download', AAM_KEY); ?></a>
83
  <?php } ?>
44
  <?php echo $product['description']; ?>
45
  </p>
46
  </td>
47
+ <td class="text-center">
48
  <?php if ($product['status'] == AAM_Extension_Repository::STATUS_INSTALLED) { ?>
49
+ <a href="#" class="btn btn-sm btn-danger btn-block aam-deactivate-extension" data-product="<?php echo $product['id']; ?>"><i class="icon-attention-circled"></i> <?php echo __('Deactivate', AAM_KEY); ?></a><small><?php echo __('extension is active', AAM_KEY); ?></small>
50
  <?php } elseif ($product['status'] == AAM_Extension_Repository::STATUS_UPDATE) { ?>
51
  <a href="#" class="btn btn-sm btn-warning btn-block aam-update-extension" data-product="<?php echo $product['id']; ?>"><i class="icon-arrows-cw"></i> <?php echo __('Update', AAM_KEY); ?></a>
52
  <?php } elseif ($product['status'] == AAM_Extension_Repository::STATUS_INACTIVE) { ?>
53
+ <a href="#" class="btn btn-sm btn-success btn-block aam-activate-extension" data-product="<?php echo $product['id']; ?>"><i class="icon-check"></i> <?php echo __('Activate', AAM_KEY); ?></a><small><?php echo __('extension is inactive', AAM_KEY); ?></small>
54
  <?php } else { ?>
55
  <a href="<?php echo $product['url']; ?>" target="_blank" class="btn btn-sm btn-primary btn-block"><i class="icon-link"></i> <?php echo __('Read More', AAM_KEY); ?></a>
56
  <?php } ?>
71
  <?php echo $product['description']; ?>
72
  </p>
73
  </td>
74
+ <td class="text-center">
75
  <?php if ($product['status'] == AAM_Extension_Repository::STATUS_INSTALLED) { ?>
76
+ <a href="#" class="btn btn-sm btn-danger btn-block aam-deactivate-extension" data-product="<?php echo $product['id']; ?>"><i class="icon-attention-circled"></i> <?php echo __('Deactivate', AAM_KEY); ?></a><small><?php echo __('extension is active', AAM_KEY); ?></small>
77
  <?php } elseif ($product['status'] == AAM_Extension_Repository::STATUS_UPDATE) { ?>
78
  <a href="#" class="btn btn-sm btn-warning btn-block aam-update-extension" data-product="<?php echo $product['id']; ?>"><i class="icon-arrows-cw"></i> <?php echo __('Update', AAM_KEY); ?></a>
79
  <?php } elseif ($product['status'] == AAM_Extension_Repository::STATUS_INACTIVE) { ?>
80
+ <a href="#" class="btn btn-sm btn-success btn-block aam-activate-extension" data-product="<?php echo $product['id']; ?>"><i class="icon-check"></i> <?php echo __('Activate', AAM_KEY); ?></a><small><?php echo __('extension is inactive', AAM_KEY); ?></small>
81
  <?php } else { ?>
82
  <a href="#" class="btn btn-sm btn-success btn-block aam-download-extension" data-license="<?php echo $product['license']; ?>"><i class="icon-download-cloud"></i> <?php echo __('Download', AAM_KEY); ?></a>
83
  <?php } ?>
Application/Core/Config.php CHANGED
@@ -136,8 +136,6 @@ class AAM_Core_Config {
136
  protected static function readConfigPress($param, $default = null) {
137
  if (defined('AAM_CONFIGPRESS')) {
138
  $config = AAM_ConfigPress::get('aam.' . $param, $default);
139
- } elseif (class_exists('ConfigPress')) {
140
- $config = ConfigPress::get('aam.' . $param, $default);
141
  } else {
142
  $config = $default;
143
  }
136
  protected static function readConfigPress($param, $default = null) {
137
  if (defined('AAM_CONFIGPRESS')) {
138
  $config = AAM_ConfigPress::get('aam.' . $param, $default);
 
 
139
  } else {
140
  $config = $default;
141
  }
Application/Core/Object/Menu.php CHANGED
@@ -41,7 +41,7 @@ class AAM_Core_Object_Menu extends AAM_Core_Object {
41
  /**
42
  * Filter Menu List
43
  *
44
- * Keep in mind that this funciton only filter the menu items but do not
45
  * restrict access to them. You have to explore roles and capabilities to
46
  * control the full access to menus.
47
  *
@@ -57,11 +57,11 @@ class AAM_Core_Object_Menu extends AAM_Core_Object {
57
 
58
  foreach ($menu as $id => $item) {
59
  if (!empty($submenu[$item[2]])) {
60
- $subs = $this->filterSubmenu($item[2]);
61
  } else {
62
  $subs = array();
63
  }
64
-
65
  // cover scenario like with Visual Composer where landing page
66
  // is defined dynamically
67
  if ($this->has('menu-' . $item[2])) {
@@ -75,7 +75,7 @@ class AAM_Core_Object_Menu extends AAM_Core_Object {
75
  }
76
  }
77
  }
78
-
79
  // remove duplicated separators
80
  $count = 0;
81
  foreach ($menu as $id => $item) {
@@ -107,7 +107,7 @@ class AAM_Core_Object_Menu extends AAM_Core_Object {
107
  /**
108
  * Filter submenu
109
  *
110
- * @param string $parent
111
  *
112
  * @return void
113
  *
@@ -115,18 +115,22 @@ class AAM_Core_Object_Menu extends AAM_Core_Object {
115
  * @global array $menu
116
  * @global array $submenu
117
  */
118
- protected function filterSubmenu($parent) {
119
  global $submenu;
120
 
121
  $filtered = array();
122
 
123
- foreach ($submenu[$parent] as $id => $item) {
124
  if ($this->has($this->normalizeItem($item[2]))) {
125
- unset($submenu[$parent][$id]);
126
  } else {
127
- $filtered[] = $submenu[$parent][$id];
128
  }
129
  }
 
 
 
 
130
 
131
  return $filtered;
132
  }
41
  /**
42
  * Filter Menu List
43
  *
44
+ * Keep in mind that this function only filter the menu items but do not
45
  * restrict access to them. You have to explore roles and capabilities to
46
  * control the full access to menus.
47
  *
57
 
58
  foreach ($menu as $id => $item) {
59
  if (!empty($submenu[$item[2]])) {
60
+ $subs = $this->filterSubmenu($item);
61
  } else {
62
  $subs = array();
63
  }
64
+
65
  // cover scenario like with Visual Composer where landing page
66
  // is defined dynamically
67
  if ($this->has('menu-' . $item[2])) {
75
  }
76
  }
77
  }
78
+
79
  // remove duplicated separators
80
  $count = 0;
81
  foreach ($menu as $id => $item) {
107
  /**
108
  * Filter submenu
109
  *
110
+ * @param array &$parent
111
  *
112
  * @return void
113
  *
115
  * @global array $menu
116
  * @global array $submenu
117
  */
118
+ protected function filterSubmenu(&$parent) {
119
  global $submenu;
120
 
121
  $filtered = array();
122
 
123
+ foreach ($submenu[$parent[2]] as $id => $item) {
124
  if ($this->has($this->normalizeItem($item[2]))) {
125
+ unset($submenu[$parent[2]][$id]);
126
  } else {
127
+ $filtered[] = $submenu[$parent[2]][$id];
128
  }
129
  }
130
+
131
+ if (count($filtered)) { //make sure that the parent points to the first sub
132
+ $parent[2] = array_values($filtered)[0][2];
133
+ }
134
 
135
  return $filtered;
136
  }
Application/Extension/Repository.php CHANGED
@@ -258,22 +258,16 @@ class AAM_Extension_Repository {
258
  * @return type
259
  */
260
  protected function checkStatus($item, $retrieved, $stored) {
261
- $id = $item['id'];
 
262
 
263
- if (!defined($id)) {
264
  $status = AAM_Extension_Repository::STATUS_DOWNLOAD;
265
- } elseif (empty($stored[$id]['status'])
266
- || $stored[$id]['status'] == AAM_Extension_Repository::STATUS_INSTALLED) {
267
- $status = AAM_Extension_Repository::STATUS_INSTALLED;
268
-
269
- if ($item['type'] == 'commercial') {
270
- $valid = !empty($item['license']);
271
- } else {
272
- $valid = true;
273
- }
274
-
275
- if ($valid && isset($retrieved->$id)
276
- && version_compare(constant($id), $retrieved->$id->version) == -1) {
277
  $status = AAM_Extension_Repository::STATUS_UPDATE;
278
  AAM_Core_Console::add(
279
  AAM_Backend_View_Helper::preparePhrase(sprintf(
@@ -281,14 +275,35 @@ class AAM_Extension_Repository {
281
  $item['title']
282
  ), 'b')
283
  );
 
284
  }
285
- } else {
286
- $status = $stored[$id]['status'];
287
  }
288
 
289
  return $status;
290
  }
291
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
292
  /**
293
  * Check extension directory
294
  *
258
  * @return type
259
  */
260
  protected function checkStatus($item, $retrieved, $stored) {
261
+ $id = $item['id'];
262
+ $status = !empty($stored[$id]['status']) ? $stored[$id]['status'] : null;
263
 
264
+ if (is_null($status)) {
265
  $status = AAM_Extension_Repository::STATUS_DOWNLOAD;
266
+
267
+ if (defined($id)) {
268
+ $status = AAM_Extension_Repository::STATUS_INSTALLED;
269
+
270
+ if ($this->isOutdatedVersion($item, $retrieved, constant($id))) {
 
 
 
 
 
 
 
271
  $status = AAM_Extension_Repository::STATUS_UPDATE;
272
  AAM_Core_Console::add(
273
  AAM_Backend_View_Helper::preparePhrase(sprintf(
275
  $item['title']
276
  ), 'b')
277
  );
278
+ }
279
  }
280
+ } elseif ($status == AAM_Extension_Repository::STATUS_INSTALLED && !defined($id)) {
281
+ $status = AAM_Extension_Repository::STATUS_DOWNLOAD;
282
  }
283
 
284
  return $status;
285
  }
286
 
287
+ /**
288
+ *
289
+ * @param type $item
290
+ * @param type $retrieved
291
+ * @param type $version
292
+ * @return type
293
+ */
294
+ protected function isOutdatedVersion($item, $retrieved, $version) {
295
+ $id = $item['id'];
296
+
297
+ if ($item['type'] == 'commercial') {
298
+ $valid = !empty($item['license']);
299
+ } else {
300
+ $valid = true;
301
+ }
302
+
303
+ return $valid && isset($retrieved->$id)
304
+ && version_compare($version, $retrieved->$id->version) == -1;
305
+ }
306
+
307
  /**
308
  * Check extension directory
309
  *
Application/Frontend/phtml/login.phtml CHANGED
@@ -4,31 +4,31 @@
4
 
5
  <div id="<?php echo $this->args['id'] . '-loginform'; ?>">
6
  <p>
7
- <label for="user_login">Username or Email Address<br>
8
  <input id="<?php echo $this->args['id'] . '-log'; ?>" class="input login-input" value="" size="20" type="text" />
9
  </label>
10
  </p>
11
 
12
  <p>
13
- <label for="user_pass">Password<br>
14
  <input id="<?php echo $this->args['id'] . '-pwd'; ?>" class="input login-input" value="" size="20" type="password" />
15
  </label>
16
  </p>
17
 
18
  <p class="forgetmenot">
19
  <label for="rememberme">
20
- <input id="<?php echo $this->args['id'] . '-rememberme'; ?>" value="forever" type="checkbox"/> Remember Me
21
  </label>
22
  </p>
23
 
24
  <p class="submit">
25
- <button class="button button-primary button-large aam-login-submit" data-prefix="<?php echo $this->args['id'] . '-'; ?>">Login</button>
26
  <input id="<?php echo $this->args['id'] . '-redirect'; ?>" value="<?php echo $this->args['redirect']; ?>" type="hidden" />
27
  </p>
28
  </div>
29
 
30
  <p id="<?php echo $this->args['id'] . '-nav'; ?>">
31
- <a href="<?php echo esc_url( wp_lostpassword_url() ); ?>">Lost your password?</a>
32
  </p>
33
  <?php } else { ?>
34
  <div style="text-align: center;">
@@ -38,7 +38,7 @@
38
  </div>
39
  <div>
40
  <a href="<?php echo esc_url(get_admin_url()); ?>"><?php echo __('Dashboard'); ?></a>&nbsp;|&nbsp;
41
- <a href="<?php echo esc_url(get_admin_url(null, 'profile.php')); ?>"><?php echo __('Edit My Profile'); ?></a>&nbsp;|&nbsp;
42
  <a href="<?php echo esc_url(wp_logout_url()); ?>"><?php echo __('Log Out'); ?></a>
43
  </div>
44
  </div>
4
 
5
  <div id="<?php echo $this->args['id'] . '-loginform'; ?>">
6
  <p>
7
+ <label for="user_login"><?php echo __('Username or Email Address', AAM_KEY); ?><br>
8
  <input id="<?php echo $this->args['id'] . '-log'; ?>" class="input login-input" value="" size="20" type="text" />
9
  </label>
10
  </p>
11
 
12
  <p>
13
+ <label for="user_pass"><?php echo __('Password', AAM_KEY); ?><br>
14
  <input id="<?php echo $this->args['id'] . '-pwd'; ?>" class="input login-input" value="" size="20" type="password" />
15
  </label>
16
  </p>
17
 
18
  <p class="forgetmenot">
19
  <label for="rememberme">
20
+ <input id="<?php echo $this->args['id'] . '-rememberme'; ?>" value="forever" type="checkbox"/> <?php echo __('Remember Me', AAM_KEY); ?>
21
  </label>
22
  </p>
23
 
24
  <p class="submit">
25
+ <button class="button button-primary button-large aam-login-submit" data-prefix="<?php echo $this->args['id'] . '-'; ?>"><?php echo __('Login', AAM_KEY); ?></button>
26
  <input id="<?php echo $this->args['id'] . '-redirect'; ?>" value="<?php echo $this->args['redirect']; ?>" type="hidden" />
27
  </p>
28
  </div>
29
 
30
  <p id="<?php echo $this->args['id'] . '-nav'; ?>">
31
+ <a href="<?php echo esc_url( wp_lostpassword_url() ); ?>"><?php echo __('Lost your password?', AAM_KEY); ?></a>
32
  </p>
33
  <?php } else { ?>
34
  <div style="text-align: center;">
38
  </div>
39
  <div>
40
  <a href="<?php echo esc_url(get_admin_url()); ?>"><?php echo __('Dashboard'); ?></a>&nbsp;|&nbsp;
41
+ <a href="<?php echo esc_url(get_admin_url(null, 'profile.php')); ?>"><?php echo __('Edit My Profile', AAM_KEY); ?></a>&nbsp;|&nbsp;
42
  <a href="<?php echo esc_url(wp_logout_url()); ?>"><?php echo __('Log Out'); ?></a>
43
  </div>
44
  </div>
Lang/advanced-access-manager-en_US.mo CHANGED
Binary file
Lang/advanced-access-manager-en_US.po CHANGED
@@ -1,13 +1,13 @@
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: AAM\n"
4
- "POT-Creation-Date: 2017-12-03 15:15-0500\n"
5
  "PO-Revision-Date: \n"
6
  "Language-Team: WP AAM <vasyl@vasyltech.com>\n"
7
  "MIME-Version: 1.0\n"
8
  "Content-Type: text/plain; charset=UTF-8\n"
9
  "Content-Transfer-Encoding: 8bit\n"
10
- "X-Generator: Poedit 2.0.4\n"
11
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
12
  "X-Poedit-SourceCharset: UTF-8\n"
13
  "X-Poedit-KeywordsList: __;preparePhrase\n"
@@ -16,7 +16,12 @@ msgstr ""
16
  "Language: en_US\n"
17
  "X-Poedit-SearchPath-0: .\n"
18
 
19
- #: Application/Backend/Feature/Extension/Manager.php:106
 
 
 
 
 
20
  msgid "Enter license key to update extension."
21
  msgstr ""
22
 
@@ -498,6 +503,7 @@ msgstr ""
498
 
499
  #: Application/Backend/View/PostOptionList.php:62
500
  #: Application/Backend/phtml/partial/post-advanced-settings.phtml:32
 
501
  msgid "Password"
502
  msgstr ""
503
 
@@ -511,7 +517,7 @@ msgid "Access Expiration"
511
  msgstr ""
512
 
513
  #: Application/Backend/View/PostOptionList.php:69
514
- msgid "Expires:"
515
  msgstr ""
516
 
517
  #: Application/Backend/View/PostOptionList.php:72
@@ -590,6 +596,7 @@ msgid "AAM Secure Login Widget"
590
  msgstr ""
591
 
592
  #: Application/Backend/Widget/Login.php:80
 
593
  msgid "Login"
594
  msgstr ""
595
 
@@ -624,12 +631,12 @@ msgid ""
624
  "more.%s"
625
  msgstr ""
626
 
627
- #: Application/Extension/Repository.php:307
628
  #, php-format
629
  msgid "Failed to create %s"
630
  msgstr ""
631
 
632
- #: Application/Extension/Repository.php:311
633
  #, php-format
634
  msgid "Directory %s is not writable"
635
  msgstr ""
@@ -788,11 +795,21 @@ msgstr ""
788
  msgid "Deactivate"
789
  msgstr ""
790
 
 
 
 
 
 
791
  #: Application/Backend/phtml/extensions.phtml:53
792
  #: Application/Backend/phtml/extensions.phtml:80
793
  msgid "Activate"
794
  msgstr ""
795
 
 
 
 
 
 
796
  #: Application/Backend/phtml/extensions.phtml:55
797
  #: Application/Backend/phtml/index.phtml:88
798
  msgid "Read More"
@@ -1637,3 +1654,15 @@ msgstr ""
1637
  #: Application/Frontend/phtml/login.phtml:42
1638
  msgid "Log Out"
1639
  msgstr ""
 
 
 
 
 
 
 
 
 
 
 
 
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: AAM\n"
4
+ "POT-Creation-Date: 2017-12-17 18:56-0500\n"
5
  "PO-Revision-Date: \n"
6
  "Language-Team: WP AAM <vasyl@vasyltech.com>\n"
7
  "MIME-Version: 1.0\n"
8
  "Content-Type: text/plain; charset=UTF-8\n"
9
  "Content-Transfer-Encoding: 8bit\n"
10
+ "X-Generator: Poedit 2.0.5\n"
11
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
12
  "X-Poedit-SourceCharset: UTF-8\n"
13
  "X-Poedit-KeywordsList: __;preparePhrase\n"
16
  "Language: en_US\n"
17
  "X-Poedit-SearchPath-0: .\n"
18
 
19
+ #: Application/Backend/Feature/Extension/Manager.php:60
20
+ #, php-format
21
+ msgid "To install extension manually, check %sthis article%s."
22
+ msgstr ""
23
+
24
+ #: Application/Backend/Feature/Extension/Manager.php:112
25
  msgid "Enter license key to update extension."
26
  msgstr ""
27
 
503
 
504
  #: Application/Backend/View/PostOptionList.php:62
505
  #: Application/Backend/phtml/partial/post-advanced-settings.phtml:32
506
+ #: Application/Frontend/phtml/login.phtml:13
507
  msgid "Password"
508
  msgstr ""
509
 
517
  msgstr ""
518
 
519
  #: Application/Backend/View/PostOptionList.php:69
520
+ msgid "Expires"
521
  msgstr ""
522
 
523
  #: Application/Backend/View/PostOptionList.php:72
596
  msgstr ""
597
 
598
  #: Application/Backend/Widget/Login.php:80
599
+ #: Application/Frontend/phtml/login.phtml:25
600
  msgid "Login"
601
  msgstr ""
602
 
631
  "more.%s"
632
  msgstr ""
633
 
634
+ #: Application/Extension/Repository.php:322
635
  #, php-format
636
  msgid "Failed to create %s"
637
  msgstr ""
638
 
639
+ #: Application/Extension/Repository.php:326
640
  #, php-format
641
  msgid "Directory %s is not writable"
642
  msgstr ""
795
  msgid "Deactivate"
796
  msgstr ""
797
 
798
+ #: Application/Backend/phtml/extensions.phtml:49
799
+ #: Application/Backend/phtml/extensions.phtml:76
800
+ msgid "extension is active"
801
+ msgstr ""
802
+
803
  #: Application/Backend/phtml/extensions.phtml:53
804
  #: Application/Backend/phtml/extensions.phtml:80
805
  msgid "Activate"
806
  msgstr ""
807
 
808
+ #: Application/Backend/phtml/extensions.phtml:53
809
+ #: Application/Backend/phtml/extensions.phtml:80
810
+ msgid "extension is inactive"
811
+ msgstr ""
812
+
813
  #: Application/Backend/phtml/extensions.phtml:55
814
  #: Application/Backend/phtml/index.phtml:88
815
  msgid "Read More"
1654
  #: Application/Frontend/phtml/login.phtml:42
1655
  msgid "Log Out"
1656
  msgstr ""
1657
+
1658
+ #: Application/Frontend/phtml/login.phtml:7
1659
+ msgid "Username or Email Address"
1660
+ msgstr ""
1661
+
1662
+ #: Application/Frontend/phtml/login.phtml:20
1663
+ msgid "Remember Me"
1664
+ msgstr ""
1665
+
1666
+ #: Application/Frontend/phtml/login.phtml:31
1667
+ msgid "Lost your password?"
1668
+ msgstr ""
Lang/advanced-access-manager.pot CHANGED
@@ -2,7 +2,7 @@
2
  msgid ""
3
  msgstr ""
4
  "Project-Id-Version: AAM\n"
5
- "POT-Creation-Date: 2017-12-03 15:15-0500\n"
6
  "PO-Revision-Date: \n"
7
  "Last-Translator: WPAAM <support@wpaam.com>\n"
8
  "Language-Team: WP AAM <vasyl@vasyltech.com>\n"
@@ -10,14 +10,19 @@ msgstr ""
10
  "MIME-Version: 1.0\n"
11
  "Content-Type: text/plain; charset=UTF-8\n"
12
  "Content-Transfer-Encoding: 8bit\n"
13
- "X-Generator: Poedit 2.0.4\n"
14
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
15
  "X-Poedit-SourceCharset: UTF-8\n"
16
  "X-Poedit-KeywordsList: __;preparePhrase\n"
17
  "X-Poedit-Basepath: ..\n"
18
  "X-Poedit-SearchPath-0: .\n"
19
 
20
- #: Application/Backend/Feature/Extension/Manager.php:106
 
 
 
 
 
21
  msgid "Enter license key to update extension."
22
  msgstr ""
23
 
@@ -499,6 +504,7 @@ msgstr ""
499
 
500
  #: Application/Backend/View/PostOptionList.php:62
501
  #: Application/Backend/phtml/partial/post-advanced-settings.phtml:32
 
502
  msgid "Password"
503
  msgstr ""
504
 
@@ -512,7 +518,7 @@ msgid "Access Expiration"
512
  msgstr ""
513
 
514
  #: Application/Backend/View/PostOptionList.php:69
515
- msgid "Expires:"
516
  msgstr ""
517
 
518
  #: Application/Backend/View/PostOptionList.php:72
@@ -591,6 +597,7 @@ msgid "AAM Secure Login Widget"
591
  msgstr ""
592
 
593
  #: Application/Backend/Widget/Login.php:80
 
594
  msgid "Login"
595
  msgstr ""
596
 
@@ -625,12 +632,12 @@ msgid ""
625
  "more.%s"
626
  msgstr ""
627
 
628
- #: Application/Extension/Repository.php:307
629
  #, php-format
630
  msgid "Failed to create %s"
631
  msgstr ""
632
 
633
- #: Application/Extension/Repository.php:311
634
  #, php-format
635
  msgid "Directory %s is not writable"
636
  msgstr ""
@@ -789,11 +796,21 @@ msgstr ""
789
  msgid "Deactivate"
790
  msgstr ""
791
 
 
 
 
 
 
792
  #: Application/Backend/phtml/extensions.phtml:53
793
  #: Application/Backend/phtml/extensions.phtml:80
794
  msgid "Activate"
795
  msgstr ""
796
 
 
 
 
 
 
797
  #: Application/Backend/phtml/extensions.phtml:55
798
  #: Application/Backend/phtml/index.phtml:88
799
  msgid "Read More"
@@ -1638,3 +1655,15 @@ msgstr ""
1638
  #: Application/Frontend/phtml/login.phtml:42
1639
  msgid "Log Out"
1640
  msgstr ""
 
 
 
 
 
 
 
 
 
 
 
 
2
  msgid ""
3
  msgstr ""
4
  "Project-Id-Version: AAM\n"
5
+ "POT-Creation-Date: 2017-12-17 18:56-0500\n"
6
  "PO-Revision-Date: \n"
7
  "Last-Translator: WPAAM <support@wpaam.com>\n"
8
  "Language-Team: WP AAM <vasyl@vasyltech.com>\n"
10
  "MIME-Version: 1.0\n"
11
  "Content-Type: text/plain; charset=UTF-8\n"
12
  "Content-Transfer-Encoding: 8bit\n"
13
+ "X-Generator: Poedit 2.0.5\n"
14
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
15
  "X-Poedit-SourceCharset: UTF-8\n"
16
  "X-Poedit-KeywordsList: __;preparePhrase\n"
17
  "X-Poedit-Basepath: ..\n"
18
  "X-Poedit-SearchPath-0: .\n"
19
 
20
+ #: Application/Backend/Feature/Extension/Manager.php:60
21
+ #, php-format
22
+ msgid "To install extension manually, check %sthis article%s."
23
+ msgstr ""
24
+
25
+ #: Application/Backend/Feature/Extension/Manager.php:112
26
  msgid "Enter license key to update extension."
27
  msgstr ""
28
 
504
 
505
  #: Application/Backend/View/PostOptionList.php:62
506
  #: Application/Backend/phtml/partial/post-advanced-settings.phtml:32
507
+ #: Application/Frontend/phtml/login.phtml:13
508
  msgid "Password"
509
  msgstr ""
510
 
518
  msgstr ""
519
 
520
  #: Application/Backend/View/PostOptionList.php:69
521
+ msgid "Expires"
522
  msgstr ""
523
 
524
  #: Application/Backend/View/PostOptionList.php:72
597
  msgstr ""
598
 
599
  #: Application/Backend/Widget/Login.php:80
600
+ #: Application/Frontend/phtml/login.phtml:25
601
  msgid "Login"
602
  msgstr ""
603
 
632
  "more.%s"
633
  msgstr ""
634
 
635
+ #: Application/Extension/Repository.php:322
636
  #, php-format
637
  msgid "Failed to create %s"
638
  msgstr ""
639
 
640
+ #: Application/Extension/Repository.php:326
641
  #, php-format
642
  msgid "Directory %s is not writable"
643
  msgstr ""
796
  msgid "Deactivate"
797
  msgstr ""
798
 
799
+ #: Application/Backend/phtml/extensions.phtml:49
800
+ #: Application/Backend/phtml/extensions.phtml:76
801
+ msgid "extension is active"
802
+ msgstr ""
803
+
804
  #: Application/Backend/phtml/extensions.phtml:53
805
  #: Application/Backend/phtml/extensions.phtml:80
806
  msgid "Activate"
807
  msgstr ""
808
 
809
+ #: Application/Backend/phtml/extensions.phtml:53
810
+ #: Application/Backend/phtml/extensions.phtml:80
811
+ msgid "extension is inactive"
812
+ msgstr ""
813
+
814
  #: Application/Backend/phtml/extensions.phtml:55
815
  #: Application/Backend/phtml/index.phtml:88
816
  msgid "Read More"
1655
  #: Application/Frontend/phtml/login.phtml:42
1656
  msgid "Log Out"
1657
  msgstr ""
1658
+
1659
+ #: Application/Frontend/phtml/login.phtml:7
1660
+ msgid "Username or Email Address"
1661
+ msgstr ""
1662
+
1663
+ #: Application/Frontend/phtml/login.phtml:20
1664
+ msgid "Remember Me"
1665
+ msgstr ""
1666
+
1667
+ #: Application/Frontend/phtml/login.phtml:31
1668
+ msgid "Lost your password?"
1669
+ msgstr ""
aam.php CHANGED
@@ -3,7 +3,7 @@
3
  /**
4
  Plugin Name: Advanced Access Manager
5
  Description: All you need to manage access to your WordPress website
6
- Version: 5.0.1
7
  Author: Vasyl Martyniuk <vasyl@vasyltech.com>
8
  Author URI: https://vasyltech.com
9
 
3
  /**
4
  Plugin Name: Advanced Access Manager
5
  Description: All you need to manage access to your WordPress website
6
+ Version: 5.0.2
7
  Author: Vasyl Martyniuk <vasyl@vasyltech.com>
8
  Author URI: https://vasyltech.com
9
 
media/js/aam.js CHANGED
@@ -1774,8 +1774,8 @@
1774
  //load referenced post
1775
  if ($('#load-post-object').val()) {
1776
  $.aam.loadAccessForm(
1777
- $('#load-post-object-type').val(),
1778
- $('#load-post-object').val()
1779
  );
1780
  }
1781
 
1774
  //load referenced post
1775
  if ($('#load-post-object').val()) {
1776
  $.aam.loadAccessForm(
1777
+ $('#load-post-object-type').val(),
1778
+ $('#load-post-object').val()
1779
  );
1780
  }
1781
 
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: vasyltech
3
  Tags: access, role, user, capability, page access, post access, comments, security, login redirect, brute force attack, double authentication, membership, backend lockdown, wp-admin, 404, activity tracking
4
  Requires at least: 3.8
5
  Tested up to: 4.9.1
6
- Stable tag: 5.0.1
7
 
8
  The most powerful access management plugin for WordPress websites.
9
 
@@ -20,6 +20,7 @@ https://www.youtube.com/watch?v=yiOhjaacNJc
20
  * No ads or other promotional crap. The UI is clean and well crafted so you can focus only on what is important;
21
  * 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 purchase our premium features;
22
  * No need to be a "paid" customer to get help. Request support via email or start chat with Google Hangout;
 
23
 
24
  = The most popular features =
25
 
@@ -59,6 +60,16 @@ https://www.youtube.com/watch?v=yiOhjaacNJc
59
 
60
  == Changelog ==
61
 
 
 
 
 
 
 
 
 
 
 
62
  = 5.0.1 =
63
  * Fixed bug with extension updates status
64
  * Fixed bug in post core handling caused by incompatibility with unknown plugin
3
  Tags: access, role, user, capability, page access, post access, comments, security, login redirect, brute force attack, double authentication, membership, backend lockdown, wp-admin, 404, activity tracking
4
  Requires at least: 3.8
5
  Tested up to: 4.9.1
6
+ Stable tag: 5.0.2
7
 
8
  The most powerful access management plugin for WordPress websites.
9
 
20
  * No ads or other promotional crap. The UI is clean and well crafted so you can focus only on what is important;
21
  * 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 purchase our premium features;
22
  * No need to be a "paid" customer to get help. Request support via email or start chat with Google Hangout;
23
+ * YES, we have some bad reviews however most of them where posted years ago and are unrelated to current AAM version. AAM is very powerful tool that can lock you out if mistake made.
24
 
25
  = The most popular features =
26
 
60
 
61
  == Changelog ==
62
 
63
+ = 5.0.2 =
64
+ * Fixed bug with admin menu reported by Andrew
65
+ * Fixed possible bug with theTitle filter
66
+ * Fixed bug with custom HTML message for the access denied redirect rule
67
+ * Fixed bug with ACCESS EXPIRATION option for Posts & Pages
68
+ * Fixed bug with Multinetwork setup when super admin is not able to add new users
69
+ * Fixed bug with extension statuses
70
+ * Removed support for integration with ConfigPress plugin. Use ConfigPress extension instead
71
+ * Added localization strings for Login widget & shortcode
72
+
73
  = 5.0.1 =
74
  * Fixed bug with extension updates status
75
  * Fixed bug in post core handling caused by incompatibility with unknown plugin