Version Description
- Fixed bug that incorrectly checks post author property
- Fixed bug that does not allow to assign roles that contain apostrophe
- Fixed bug with incorrectly handled AAM Console messages that contain HTML
- Added ability to order roles by name
- Added ability to order users by display name
- Improved Users/Roles Manager UI
Download this release
Release Info
Developer | vasyl_m |
Plugin | Advanced Access Manager |
Version | 5.4.3.2 |
Comparing to | |
See all releases |
Code changes from version 5.4.3.1 to 5.4.3.2
- Application/Api/Rest/Resource/Post.php +3 -3
- Application/Backend/Feature/Extension/Manager.php +1 -1
- Application/Backend/Feature/Subject/Role.php +7 -1
- Application/Backend/Feature/Subject/User.php +22 -2
- Application/Backend/Filter.php +2 -2
- Application/Backend/phtml/main/get-started.phtml +1 -1
- Application/Core/Console.php +1 -3
- Application/Core/Media.php +1 -1
- Application/Extension/List.php +10 -10
- Application/Extension/Repository.php +4 -14
- Application/Frontend/Authorization.php +1 -1
- Application/Frontend/Filter.php +2 -2
- Application/Shared/Manager.php +1 -1
- aam.php +1 -1
- media/js/aam.js +56 -6
- readme.txt +10 -2
Application/Api/Rest/Resource/Post.php
CHANGED
@@ -182,7 +182,7 @@ class AAM_Api_Rest_Resource_Post {
|
|
182 |
$read = $post->has('api.read');
|
183 |
$others = $post->has('api.read_others');
|
184 |
|
185 |
-
if ($read || ($others && ($post->post_author !== get_current_user_id()))) {
|
186 |
$result = new WP_Error(
|
187 |
'rest_post_cannot_read',
|
188 |
"User is unauthorized to read the post. Access denied.",
|
@@ -328,7 +328,7 @@ class AAM_Api_Rest_Resource_Post {
|
|
328 |
$edit = $post->has('api.edit');
|
329 |
$others = $post->has('api.edit_others');
|
330 |
|
331 |
-
if ($edit || ($others && ($post->post_author !== get_current_user_id()))) {
|
332 |
$result = new WP_Error(
|
333 |
'rest_post_cannot_update',
|
334 |
"User is unauthorized to update the post. Access denied.",
|
@@ -357,7 +357,7 @@ class AAM_Api_Rest_Resource_Post {
|
|
357 |
$delete = $post->has('api.delete');
|
358 |
$others = $post->has('api.delete_others');
|
359 |
|
360 |
-
if ($delete || ($others && ($post->post_author !== get_current_user_id()))) {
|
361 |
$result = new WP_Error(
|
362 |
'rest_post_cannot_delete',
|
363 |
"User is unauthorized to delete the post. Access denied.",
|
182 |
$read = $post->has('api.read');
|
183 |
$others = $post->has('api.read_others');
|
184 |
|
185 |
+
if ($read || ($others && (intval($post->post_author) !== get_current_user_id()))) {
|
186 |
$result = new WP_Error(
|
187 |
'rest_post_cannot_read',
|
188 |
"User is unauthorized to read the post. Access denied.",
|
328 |
$edit = $post->has('api.edit');
|
329 |
$others = $post->has('api.edit_others');
|
330 |
|
331 |
+
if ($edit || ($others && (intval($post->post_author) !== get_current_user_id()))) {
|
332 |
$result = new WP_Error(
|
333 |
'rest_post_cannot_update',
|
334 |
"User is unauthorized to update the post. Access denied.",
|
357 |
$delete = $post->has('api.delete');
|
358 |
$others = $post->has('api.delete_others');
|
359 |
|
360 |
+
if ($delete || ($others && (intval($post->post_author) !== get_current_user_id()))) {
|
361 |
$result = new WP_Error(
|
362 |
'rest_post_cannot_delete',
|
363 |
"User is unauthorized to delete the post. Access denied.",
|
Application/Backend/Feature/Extension/Manager.php
CHANGED
@@ -116,7 +116,7 @@ class AAM_Backend_Feature_Extension_Manager extends AAM_Backend_Feature_Abstract
|
|
116 |
} else {
|
117 |
$response = wp_json_encode(array(
|
118 |
'status' => 'failure',
|
119 |
-
'error' => __('
|
120 |
));
|
121 |
}
|
122 |
}
|
116 |
} else {
|
117 |
$response = wp_json_encode(array(
|
118 |
'status' => 'failure',
|
119 |
+
'error' => __('No valid license key was found.', AAM_KEY)
|
120 |
));
|
121 |
}
|
122 |
}
|
Application/Backend/Feature/Subject/Role.php
CHANGED
@@ -77,12 +77,18 @@ class AAM_Backend_Feature_Subject_Role {
|
|
77 |
|
78 |
if (current_user_can('aam_edit_roles')) {
|
79 |
$actions[] = 'edit';
|
|
|
|
|
80 |
}
|
81 |
if (current_user_can('aam_create_roles')) {
|
82 |
$actions[] = 'clone';
|
|
|
|
|
83 |
}
|
84 |
if (current_user_can('aam_delete_roles') && !$count) {
|
85 |
$actions[] = 'delete';
|
|
|
|
|
86 |
}
|
87 |
|
88 |
return $actions;
|
@@ -138,7 +144,7 @@ class AAM_Backend_Feature_Subject_Role {
|
|
138 |
$name = sanitize_text_field(filter_input(INPUT_POST, 'name'));
|
139 |
$expire = filter_input(INPUT_POST, 'expire');
|
140 |
$roles = AAM_Core_API::getRoles();
|
141 |
-
$role_id = strtolower($name);
|
142 |
|
143 |
//if inherited role is set get capabilities from it
|
144 |
$parent = $roles->get_role(trim(filter_input(INPUT_POST, 'inherit')));
|
77 |
|
78 |
if (current_user_can('aam_edit_roles')) {
|
79 |
$actions[] = 'edit';
|
80 |
+
} else {
|
81 |
+
$actions[] = 'no-edit';
|
82 |
}
|
83 |
if (current_user_can('aam_create_roles')) {
|
84 |
$actions[] = 'clone';
|
85 |
+
} else {
|
86 |
+
$actions[] = 'no-clone';
|
87 |
}
|
88 |
if (current_user_can('aam_delete_roles') && !$count) {
|
89 |
$actions[] = 'delete';
|
90 |
+
} else {
|
91 |
+
$actions[] = 'no-delete';
|
92 |
}
|
93 |
|
94 |
return $actions;
|
144 |
$name = sanitize_text_field(filter_input(INPUT_POST, 'name'));
|
145 |
$expire = filter_input(INPUT_POST, 'expire');
|
146 |
$roles = AAM_Core_API::getRoles();
|
147 |
+
$role_id = sanitize_key(strtolower($name));
|
148 |
|
149 |
//if inherited role is set get capabilities from it
|
150 |
$parent = $roles->get_role(trim(filter_input(INPUT_POST, 'inherit')));
|
Application/Backend/Feature/Subject/User.php
CHANGED
@@ -104,8 +104,8 @@ class AAM_Backend_Feature_Subject_User {
|
|
104 |
'search_columns' => array(
|
105 |
'user_login', 'user_email', 'display_name'
|
106 |
),
|
107 |
-
'orderby' => '
|
108 |
-
'order' =>
|
109 |
);
|
110 |
|
111 |
if (!empty($role)) {
|
@@ -114,6 +114,21 @@ class AAM_Backend_Feature_Subject_User {
|
|
114 |
|
115 |
return new WP_User_Query($args);
|
116 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
117 |
|
118 |
/**
|
119 |
* Block user
|
@@ -205,10 +220,15 @@ class AAM_Backend_Feature_Subject_User {
|
|
205 |
if (current_user_can('edit_users')) {
|
206 |
$actions[] = 'edit';
|
207 |
$actions[] = 'ttl';
|
|
|
|
|
|
|
208 |
}
|
209 |
|
210 |
if (current_user_can('aam_switch_users')) {
|
211 |
$actions[] = 'switch';
|
|
|
|
|
212 |
}
|
213 |
} else {
|
214 |
$actions = array();
|
104 |
'search_columns' => array(
|
105 |
'user_login', 'user_email', 'display_name'
|
106 |
),
|
107 |
+
'orderby' => 'display_name',
|
108 |
+
'order' => $this->getOrderDirection()
|
109 |
);
|
110 |
|
111 |
if (!empty($role)) {
|
114 |
|
115 |
return new WP_User_Query($args);
|
116 |
}
|
117 |
+
|
118 |
+
/**
|
119 |
+
*
|
120 |
+
* @return type
|
121 |
+
*/
|
122 |
+
protected function getOrderDirection() {
|
123 |
+
$dir = 'asc';
|
124 |
+
$order = AAM_Core_Request::post('order.0');
|
125 |
+
|
126 |
+
if (!empty($order['column']) && ($order['column'] === '2')) {
|
127 |
+
$dir = !empty($order['dir']) ? $order['dir'] : 'asc';
|
128 |
+
}
|
129 |
+
|
130 |
+
return strtoupper($dir);
|
131 |
+
}
|
132 |
|
133 |
/**
|
134 |
* Block user
|
220 |
if (current_user_can('edit_users')) {
|
221 |
$actions[] = 'edit';
|
222 |
$actions[] = 'ttl';
|
223 |
+
} else {
|
224 |
+
$actions[] = 'no-edit';
|
225 |
+
$actions[] = 'no-ttl';
|
226 |
}
|
227 |
|
228 |
if (current_user_can('aam_switch_users')) {
|
229 |
$actions[] = 'switch';
|
230 |
+
} else {
|
231 |
+
$actions[] = 'no-switch';
|
232 |
}
|
233 |
} else {
|
234 |
$actions = array();
|
Application/Backend/Filter.php
CHANGED
@@ -187,7 +187,7 @@ class AAM_Backend_Filter {
|
|
187 |
protected function isAllowed($action, $object) {
|
188 |
$edit = $object->has($action);
|
189 |
$others = $object->has("{$action}_others");
|
190 |
-
$author = ($object->post_author === get_current_user_id());
|
191 |
|
192 |
return ($edit || ($others && !$author)) ? false : true;
|
193 |
}
|
@@ -232,7 +232,7 @@ class AAM_Backend_Filter {
|
|
232 |
public function prePostUpdate($id, $data) {
|
233 |
$post = get_post($id);
|
234 |
|
235 |
-
if ($post->post_author !== intval($data['post_author'])) {
|
236 |
AAM_Core_API::clearCache();
|
237 |
}
|
238 |
}
|
187 |
protected function isAllowed($action, $object) {
|
188 |
$edit = $object->has($action);
|
189 |
$others = $object->has("{$action}_others");
|
190 |
+
$author = (intval($object->post_author) === get_current_user_id());
|
191 |
|
192 |
return ($edit || ($others && !$author)) ? false : true;
|
193 |
}
|
232 |
public function prePostUpdate($id, $data) {
|
233 |
$post = get_post($id);
|
234 |
|
235 |
+
if (intval($post->post_author) !== intval($data['post_author'])) {
|
236 |
AAM_Core_API::clearCache();
|
237 |
}
|
238 |
}
|
Application/Backend/phtml/main/get-started.phtml
CHANGED
@@ -9,7 +9,7 @@
|
|
9 |
<p class="text-larger"><?php echo sprintf(__('AAM was thoroughly tested on the fresh installation of WordPress and in the latest versions of Chrome, Safari, IE and Firefox. If you have any issues, the most typical case is a conflict with other plugins or themes. In this case please do not hesitate to contact us directly on our website %saamplugin.com%s', AAM_KEY), '<a href="https://aamplugin.com" target="_blank">', '</a>'); ?></p>
|
10 |
<p class="text-larger"><?php echo sprintf(__('If you are not sure where to start, please check our %s"Get Started"%s page to learn more about core concepts that will definitely help you to manage access to your WordPress website more effectively.', AAM_KEY), '<a href="https://aamplugin.com/get-started" target="_blank">', '</a>'); ?></p>
|
11 |
<p class="text-center"><a href="https://aamplugin.com/get-started" class="btn btn-primary" target="_blank"><?php echo __('Get Started', AAM_KEY); ?></a></p>
|
12 |
-
<p class="text-center"><small><sup>*</sup> <?php echo __('To remove the "Get Started" tab you may go to Settings Area and disable "Get Started
|
13 |
</div>
|
14 |
</div>
|
15 |
</div>
|
9 |
<p class="text-larger"><?php echo sprintf(__('AAM was thoroughly tested on the fresh installation of WordPress and in the latest versions of Chrome, Safari, IE and Firefox. If you have any issues, the most typical case is a conflict with other plugins or themes. In this case please do not hesitate to contact us directly on our website %saamplugin.com%s', AAM_KEY), '<a href="https://aamplugin.com" target="_blank">', '</a>'); ?></p>
|
10 |
<p class="text-larger"><?php echo sprintf(__('If you are not sure where to start, please check our %s"Get Started"%s page to learn more about core concepts that will definitely help you to manage access to your WordPress website more effectively.', AAM_KEY), '<a href="https://aamplugin.com/get-started" target="_blank">', '</a>'); ?></p>
|
11 |
<p class="text-center"><a href="https://aamplugin.com/get-started" class="btn btn-primary" target="_blank"><?php echo __('Get Started', AAM_KEY); ?></a></p>
|
12 |
+
<p class="text-center"><small><sup>*</sup> <?php echo __('To remove the "Get Started" tab you may go to Settings Area and disable "Get Started Tab" option.', AAM_KEY); ?></small></p>
|
13 |
</div>
|
14 |
</div>
|
15 |
</div>
|
Application/Core/Console.php
CHANGED
@@ -51,9 +51,7 @@ class AAM_Core_Console {
|
|
51 |
array_push($replace, "<{$key}>", "</{$key}>");
|
52 |
}
|
53 |
|
54 |
-
self::$_messages[] = preg_replace(
|
55 |
-
$search, $replace, __($message, AAM_KEY), 1
|
56 |
-
);
|
57 |
}
|
58 |
|
59 |
/**
|
51 |
array_push($replace, "<{$key}>", "</{$key}>");
|
52 |
}
|
53 |
|
54 |
+
self::$_messages[] = preg_replace($search, $replace, $message, 1);
|
|
|
|
|
55 |
}
|
56 |
|
57 |
/**
|
Application/Core/Media.php
CHANGED
@@ -89,7 +89,7 @@ class AAM_Core_Media {
|
|
89 |
} else {
|
90 |
$read = $media->has('frontend.read');
|
91 |
$others = $media->has('frontend.read_others');
|
92 |
-
$author = ($media->post_author === get_current_user_id());
|
93 |
|
94 |
if ($read || ($others && !$author)) {
|
95 |
$args = array(
|
89 |
} else {
|
90 |
$read = $media->has('frontend.read');
|
91 |
$others = $media->has('frontend.read_others');
|
92 |
+
$author = (intval($media->post_author) === get_current_user_id());
|
93 |
|
94 |
if ($read || ($others && !$author)) {
|
95 |
$args = array(
|
Application/Extension/List.php
CHANGED
@@ -15,6 +15,15 @@ class AAM_Extension_List {
|
|
15 |
*/
|
16 |
public static function get() {
|
17 |
return array(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
'AAM_PLUS_PACKAGE' => array(
|
19 |
'title' => 'Plus Package',
|
20 |
'id' => 'AAM_PLUS_PACKAGE',
|
@@ -22,7 +31,7 @@ class AAM_Extension_List {
|
|
22 |
'description' => 'Manage access to your WordPress website posts, pages, media, custom post types, categories and hierarchical taxonomies for any role, individual user, visitors or even define default access for everybody; and do this separately for frontend, backend or API levels. As the bonus, define more granular access to how comments can be managed on the backend by other users.',
|
23 |
'url' => 'https://aamplugin.com/extension/plus-package',
|
24 |
'version' => (defined('AAM_PLUS_PACKAGE') ? constant('AAM_PLUS_PACKAGE') : null),
|
25 |
-
'latest' => '3.
|
26 |
),
|
27 |
'AAM_IP_CHECK' => array(
|
28 |
'title' => 'IP Check',
|
@@ -52,15 +61,6 @@ class AAM_Extension_List {
|
|
52 |
'version' => (defined('AAM_ECOMMERCE') ? constant('AAM_ECOMMERCE') : null),
|
53 |
'latest' => '1.2.1'
|
54 |
),
|
55 |
-
'AAM_COMPLETE_PACKAGE' => array(
|
56 |
-
'title' => 'Complete Package',
|
57 |
-
'id' => 'AAM_COMPLETE_PACKAGE',
|
58 |
-
'type' => 'commercial',
|
59 |
-
'description' => 'Get the complete list of all premium AAM extensions in one package and all future premium extensions already included for now additional cost.',
|
60 |
-
'url' => 'https://aamplugin.com/complete-package',
|
61 |
-
'version' => (defined('AAM_COMPLETE_PACKAGE') ? constant('AAM_COMPLETE_PACKAGE') : null),
|
62 |
-
'latest' => '3.8.5'
|
63 |
-
),
|
64 |
'AAM_MULTISITE' => array(
|
65 |
'title' => 'Multisite',
|
66 |
'id' => 'AAM_MULTISITE',
|
15 |
*/
|
16 |
public static function get() {
|
17 |
return array(
|
18 |
+
'AAM_COMPLETE_PACKAGE' => array(
|
19 |
+
'title' => 'Complete Package',
|
20 |
+
'id' => 'AAM_COMPLETE_PACKAGE',
|
21 |
+
'type' => 'commercial',
|
22 |
+
'description' => 'Get the complete list of all premium AAM extensions in one package and all future premium extensions already included for now additional cost.',
|
23 |
+
'url' => 'https://aamplugin.com/complete-package',
|
24 |
+
'version' => (defined('AAM_COMPLETE_PACKAGE') ? constant('AAM_COMPLETE_PACKAGE') : null),
|
25 |
+
'latest' => '3.8.6'
|
26 |
+
),
|
27 |
'AAM_PLUS_PACKAGE' => array(
|
28 |
'title' => 'Plus Package',
|
29 |
'id' => 'AAM_PLUS_PACKAGE',
|
31 |
'description' => 'Manage access to your WordPress website posts, pages, media, custom post types, categories and hierarchical taxonomies for any role, individual user, visitors or even define default access for everybody; and do this separately for frontend, backend or API levels. As the bonus, define more granular access to how comments can be managed on the backend by other users.',
|
32 |
'url' => 'https://aamplugin.com/extension/plus-package',
|
33 |
'version' => (defined('AAM_PLUS_PACKAGE') ? constant('AAM_PLUS_PACKAGE') : null),
|
34 |
+
'latest' => '3.8'
|
35 |
),
|
36 |
'AAM_IP_CHECK' => array(
|
37 |
'title' => 'IP Check',
|
61 |
'version' => (defined('AAM_ECOMMERCE') ? constant('AAM_ECOMMERCE') : null),
|
62 |
'latest' => '1.2.1'
|
63 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
64 |
'AAM_MULTISITE' => array(
|
65 |
'title' => 'Multisite',
|
66 |
'id' => 'AAM_MULTISITE',
|
Application/Extension/Repository.php
CHANGED
@@ -327,21 +327,11 @@ class AAM_Extension_Repository {
|
|
327 |
protected function isOutdatedVersion($item, $retrieved, $version) {
|
328 |
$id = $item['id'];
|
329 |
|
330 |
-
|
331 |
-
|
|
|
332 |
} else {
|
333 |
-
$
|
334 |
-
}
|
335 |
-
|
336 |
-
$outdated = false;
|
337 |
-
|
338 |
-
if ($valid) {
|
339 |
-
// first check the retrieved version from the server
|
340 |
-
if (isset($retrieved->$id)) {
|
341 |
-
$outdated = version_compare($version, $retrieved->$id->version) === -1;
|
342 |
-
} else {
|
343 |
-
$outdated = version_compare($version, $item['latest']) === -1;
|
344 |
-
}
|
345 |
}
|
346 |
|
347 |
return $outdated;
|
327 |
protected function isOutdatedVersion($item, $retrieved, $version) {
|
328 |
$id = $item['id'];
|
329 |
|
330 |
+
// first check the retrieved version from the server
|
331 |
+
if (isset($retrieved->$id)) {
|
332 |
+
$outdated = version_compare($version, $retrieved->$id->version) === -1;
|
333 |
} else {
|
334 |
+
$outdated = version_compare($version, $item['latest']) === -1;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
335 |
}
|
336 |
|
337 |
return $outdated;
|
Application/Frontend/Authorization.php
CHANGED
@@ -98,7 +98,7 @@ class AAM_Frontend_Authorization {
|
|
98 |
$read = $post->has('frontend.read');
|
99 |
$others = $post->has('frontend.read_others');
|
100 |
|
101 |
-
if ($read || ($others && ($post->post_author !== get_current_user_id()))) {
|
102 |
$this->deny('post_read', 'frontend.read', $post->getPost());
|
103 |
}
|
104 |
}
|
98 |
$read = $post->has('frontend.read');
|
99 |
$others = $post->has('frontend.read_others');
|
100 |
|
101 |
+
if ($read || ($others && (intval($post->post_author) !== get_current_user_id()))) {
|
102 |
$this->deny('post_read', 'frontend.read', $post->getPost());
|
103 |
}
|
104 |
}
|
Application/Frontend/Filter.php
CHANGED
@@ -128,7 +128,7 @@ class AAM_Frontend_Filter {
|
|
128 |
$others = $object->get('frontend.list_others');
|
129 |
$list = $object->get('frontend.list');
|
130 |
|
131 |
-
if (($others && ($object->post_author !== get_current_user_id())) || $list) {
|
132 |
unset($pages[$i]);
|
133 |
}
|
134 |
}
|
@@ -161,7 +161,7 @@ class AAM_Frontend_Filter {
|
|
161 |
$list = $object->get($area. '.list');
|
162 |
$others = $object->get($area. '.list_others');
|
163 |
|
164 |
-
if ($list || ($others && ($post->post_author !== get_current_user_id()))) {
|
165 |
unset($pages[$i]);
|
166 |
}
|
167 |
}
|
128 |
$others = $object->get('frontend.list_others');
|
129 |
$list = $object->get('frontend.list');
|
130 |
|
131 |
+
if (($others && (intval($object->post_author) !== get_current_user_id())) || $list) {
|
132 |
unset($pages[$i]);
|
133 |
}
|
134 |
}
|
161 |
$list = $object->get($area. '.list');
|
162 |
$others = $object->get($area. '.list_others');
|
163 |
|
164 |
+
if ($list || ($others && (intval($post->post_author) !== get_current_user_id()))) {
|
165 |
unset($pages[$i]);
|
166 |
}
|
167 |
}
|
Application/Shared/Manager.php
CHANGED
@@ -575,7 +575,7 @@ class AAM_Shared_Manager {
|
|
575 |
protected function isActionAllowed($action, $object) {
|
576 |
$edit = $object->has($action);
|
577 |
$others = $object->has("{$action}_others");
|
578 |
-
$author = ($object->post_author === get_current_user_id());
|
579 |
|
580 |
return ($edit || ($others && !$author)) ? false : true;
|
581 |
}
|
575 |
protected function isActionAllowed($action, $object) {
|
576 |
$edit = $object->has($action);
|
577 |
$others = $object->has("{$action}_others");
|
578 |
+
$author = (intval($object->post_author) === get_current_user_id());
|
579 |
|
580 |
return ($edit || ($others && !$author)) ? false : true;
|
581 |
}
|
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.4.3.
|
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.4.3.2
|
7 |
Author: Vasyl Martyniuk <vasyl@vasyltech.com>
|
8 |
Author URI: https://vasyltech.com
|
9 |
|
media/js/aam.js
CHANGED
@@ -138,7 +138,7 @@
|
|
138 |
//initialize the role list table
|
139 |
$('#role-list').DataTable({
|
140 |
autoWidth: false,
|
141 |
-
ordering:
|
142 |
dom: 'ftrip',
|
143 |
pagingType: 'simple',
|
144 |
processing: true,
|
@@ -155,7 +155,8 @@
|
|
155 |
}
|
156 |
},
|
157 |
columnDefs: [
|
158 |
-
{visible: false, targets: [0, 1, 4, 5]}
|
|
|
159 |
],
|
160 |
language: {
|
161 |
search: '_INPUT_',
|
@@ -269,6 +270,14 @@
|
|
269 |
}));
|
270 |
}
|
271 |
break;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
272 |
|
273 |
case 'clone':
|
274 |
if (!getAAM().isUI()) {
|
@@ -285,6 +294,14 @@
|
|
285 |
}));
|
286 |
}
|
287 |
break;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
288 |
|
289 |
case 'delete':
|
290 |
if (!getAAM().isUI()) {
|
@@ -306,6 +323,14 @@
|
|
306 |
}));
|
307 |
}
|
308 |
break;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
309 |
|
310 |
default:
|
311 |
if (!getAAM().isUI()) {
|
@@ -333,8 +358,8 @@
|
|
333 |
$('td:eq(0) strong', this).replaceWith(
|
334 |
'<span>' + $('td:eq(0) strong', this).text() + '</span>'
|
335 |
);
|
336 |
-
$('.text-muted', this).attr('disabled', false);
|
337 |
-
$('.text-muted', this).toggleClass('text-muted text-info');
|
338 |
}
|
339 |
});
|
340 |
} );
|
@@ -624,7 +649,7 @@
|
|
624 |
//initialize the user list table
|
625 |
$('#user-list').DataTable({
|
626 |
autoWidth: false,
|
627 |
-
ordering:
|
628 |
dom: 'ftrip',
|
629 |
stateSave: true,
|
630 |
pagingType: 'simple',
|
@@ -644,7 +669,8 @@
|
|
644 |
}
|
645 |
},
|
646 |
columnDefs: [
|
647 |
-
{visible: false, targets: [0, 1, 4, 5]}
|
|
|
648 |
],
|
649 |
language: {
|
650 |
search: '_INPUT_',
|
@@ -789,6 +815,14 @@
|
|
789 |
}
|
790 |
break;
|
791 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
792 |
case 'edit':
|
793 |
if (!getAAM().isUI()) {
|
794 |
$(container).append($('<i/>', {
|
@@ -803,6 +837,14 @@
|
|
803 |
}));
|
804 |
}
|
805 |
break;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
806 |
|
807 |
case 'lock':
|
808 |
if (!getAAM().isUI()) {
|
@@ -842,6 +884,14 @@
|
|
842 |
}));
|
843 |
}
|
844 |
break;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
845 |
|
846 |
default:
|
847 |
break;
|
138 |
//initialize the role list table
|
139 |
$('#role-list').DataTable({
|
140 |
autoWidth: false,
|
141 |
+
ordering: true,
|
142 |
dom: 'ftrip',
|
143 |
pagingType: 'simple',
|
144 |
processing: true,
|
155 |
}
|
156 |
},
|
157 |
columnDefs: [
|
158 |
+
{visible: false, targets: [0, 1, 4, 5]},
|
159 |
+
{orderable: false, targets: [0, 1, 3, 4, 5]}
|
160 |
],
|
161 |
language: {
|
162 |
search: '_INPUT_',
|
270 |
}));
|
271 |
}
|
272 |
break;
|
273 |
+
|
274 |
+
case 'no-edit':
|
275 |
+
if (!getAAM().isUI()) {
|
276 |
+
$(container).append($('<i/>', {
|
277 |
+
'class': 'aam-row-action icon-pencil text-muted'
|
278 |
+
}));
|
279 |
+
}
|
280 |
+
break;
|
281 |
|
282 |
case 'clone':
|
283 |
if (!getAAM().isUI()) {
|
294 |
}));
|
295 |
}
|
296 |
break;
|
297 |
+
|
298 |
+
case 'no-clone':
|
299 |
+
if (!getAAM().isUI()) {
|
300 |
+
$(container).append($('<i/>', {
|
301 |
+
'class': 'aam-row-action icon-clone text-muted'
|
302 |
+
}));
|
303 |
+
}
|
304 |
+
break;
|
305 |
|
306 |
case 'delete':
|
307 |
if (!getAAM().isUI()) {
|
323 |
}));
|
324 |
}
|
325 |
break;
|
326 |
+
|
327 |
+
case 'no-delete':
|
328 |
+
if (!getAAM().isUI()) {
|
329 |
+
$(container).append($('<i/>', {
|
330 |
+
'class': 'aam-row-action icon-trash-empty text-muted'
|
331 |
+
}));
|
332 |
+
}
|
333 |
+
break;
|
334 |
|
335 |
default:
|
336 |
if (!getAAM().isUI()) {
|
358 |
$('td:eq(0) strong', this).replaceWith(
|
359 |
'<span>' + $('td:eq(0) strong', this).text() + '</span>'
|
360 |
);
|
361 |
+
$('.icon-cog.text-muted', this).attr('disabled', false);
|
362 |
+
$('.icon-cog.text-muted', this).toggleClass('text-muted text-info');
|
363 |
}
|
364 |
});
|
365 |
} );
|
649 |
//initialize the user list table
|
650 |
$('#user-list').DataTable({
|
651 |
autoWidth: false,
|
652 |
+
ordering: true,
|
653 |
dom: 'ftrip',
|
654 |
stateSave: true,
|
655 |
pagingType: 'simple',
|
669 |
}
|
670 |
},
|
671 |
columnDefs: [
|
672 |
+
{visible: false, targets: [0, 1, 4, 5]},
|
673 |
+
{orderable: false, targets: [0, 1, 3, 4, 5]}
|
674 |
],
|
675 |
language: {
|
676 |
search: '_INPUT_',
|
815 |
}
|
816 |
break;
|
817 |
|
818 |
+
case 'no-ttl':
|
819 |
+
if (!getAAM().isUI()) {
|
820 |
+
$(container).append($('<i/>', {
|
821 |
+
'class': 'aam-row-action icon-clock text-muted'
|
822 |
+
}));
|
823 |
+
}
|
824 |
+
break;
|
825 |
+
|
826 |
case 'edit':
|
827 |
if (!getAAM().isUI()) {
|
828 |
$(container).append($('<i/>', {
|
837 |
}));
|
838 |
}
|
839 |
break;
|
840 |
+
|
841 |
+
case 'no-edit':
|
842 |
+
if (!getAAM().isUI()) {
|
843 |
+
$(container).append($('<i/>', {
|
844 |
+
'class': 'aam-row-action icon-pencil text-muted'
|
845 |
+
}));
|
846 |
+
}
|
847 |
+
break;
|
848 |
|
849 |
case 'lock':
|
850 |
if (!getAAM().isUI()) {
|
884 |
}));
|
885 |
}
|
886 |
break;
|
887 |
+
|
888 |
+
case 'no-switch':
|
889 |
+
if (!getAAM().isUI()) {
|
890 |
+
$(container).append($('<i/>', {
|
891 |
+
'class': 'aam-row-action icon-switch text-muted'
|
892 |
+
}));
|
893 |
+
}
|
894 |
+
break;
|
895 |
|
896 |
default:
|
897 |
break;
|
readme.txt
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
=== Advanced Access Manager ===
|
2 |
-
Contributors: vasyltech
|
3 |
Tags: access control, membership, backend menu, user role, restricted content
|
4 |
Requires at least: 4.0
|
5 |
Tested up to: 4.9.7
|
6 |
-
Stable tag: 5.4.3.
|
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 |
|
@@ -76,6 +76,14 @@ https://www.youtube.com/watch?v=mj5Xa_Wc16Y
|
|
76 |
|
77 |
== Changelog ==
|
78 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
79 |
= 5.4.3.1 =
|
80 |
* Quick fix for the bug that is related to Posts & Terms
|
81 |
|
1 |
=== Advanced Access Manager ===
|
2 |
+
Contributors: vasyltech,noelalvarez
|
3 |
Tags: access control, membership, backend menu, user role, restricted content
|
4 |
Requires at least: 4.0
|
5 |
Tested up to: 4.9.7
|
6 |
+
Stable tag: 5.4.3.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 |
|
76 |
|
77 |
== Changelog ==
|
78 |
|
79 |
+
= 5.4.3.2 =
|
80 |
+
* Fixed bug that incorrectly checks post author property
|
81 |
+
* Fixed bug that does not allow to assign roles that contain apostrophe
|
82 |
+
* Fixed bug with incorrectly handled AAM Console messages that contain HTML
|
83 |
+
* Added ability to order roles by name
|
84 |
+
* Added ability to order users by display name
|
85 |
+
* Improved Users/Roles Manager UI
|
86 |
+
|
87 |
= 5.4.3.1 =
|
88 |
* Quick fix for the bug that is related to Posts & Terms
|
89 |
|