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 | 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 +7 -1
- Application/Backend/Feature/Main/Post.php +1 -1
- Application/Backend/Filter.php +5 -3
- Application/Backend/Manager.php +2 -2
- Application/Backend/View.php +1 -1
- Application/Backend/View/PostOptionList.php +1 -1
- Application/Backend/phtml/extensions.phtml +6 -6
- Application/Core/Config.php +0 -2
- Application/Core/Object/Menu.php +13 -9
- Application/Extension/Repository.php +31 -16
- Application/Frontend/phtml/login.phtml +6 -6
- Lang/advanced-access-manager-en_US.mo +0 -0
- Lang/advanced-access-manager-en_US.po +35 -6
- Lang/advanced-access-manager.pot +35 -6
- aam.php +1 -1
- media/js/aam.js +2 -2
- readme.txt +12 -1
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',
|
|
|
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('
|
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 |
-
|
75 |
-
|
76 |
-
|
|
|
|
|
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 =
|
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
|
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 |
-
|
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
|
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
|
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
|
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(
|
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
|
|
|
262 |
|
263 |
-
if (
|
264 |
$status = AAM_Extension_Repository::STATUS_DOWNLOAD;
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
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 |
-
}
|
286 |
-
$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"
|
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"
|
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'] . '-'; ?>"
|
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() ); ?>"
|
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> |
|
41 |
-
<a href="<?php echo esc_url(get_admin_url(null, 'profile.php')); ?>"><?php echo __('Edit My Profile'); ?></a> |
|
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> |
|
41 |
+
<a href="<?php echo esc_url(get_admin_url(null, 'profile.php')); ?>"><?php echo __('Edit My Profile', AAM_KEY); ?></a> |
|
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-
|
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.
|
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:
|
|
|
|
|
|
|
|
|
|
|
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:
|
628 |
#, php-format
|
629 |
msgid "Failed to create %s"
|
630 |
msgstr ""
|
631 |
|
632 |
-
#: Application/Extension/Repository.php:
|
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-
|
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.
|
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:
|
|
|
|
|
|
|
|
|
|
|
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:
|
629 |
#, php-format
|
630 |
msgid "Failed to create %s"
|
631 |
msgstr ""
|
632 |
|
633 |
-
#: Application/Extension/Repository.php:
|
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.
|
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 |
-
|
1778 |
-
|
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.
|
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
|