Version Description
- Added Media Access Control feature
- Added Access Denied Handling feature
- Improved core functionality
Download this release
Release Info
Developer | vasyl_m |
Plugin | Advanced Access Manager |
Version | 3.6 |
Comparing to | |
See all releases |
Code changes from version 3.5 to 3.6
- Application/Backend/Feature/ProductList.php +8 -1
- Application/Backend/Filter.php +19 -8
- Application/Backend/Manager.php +13 -7
- Application/Backend/phtml/utility.phtml +33 -3
- Application/Core/API.php +16 -11
- Application/Core/Media.php +108 -0
- Application/Core/Object/Post.php +11 -0
- Application/Frontend/Manager.php +4 -1
- Lang/advanced-access-manager-en_US.mo +0 -0
- Lang/advanced-access-manager-en_US.po +1 -1
- aam.php +15 -12
- media/css/aam.css +8 -0
- readme.txt +6 -1
Application/Backend/Feature/ProductList.php
CHANGED
@@ -65,7 +65,7 @@ return array(
|
|
65 |
'id' => 'AAM Post Filter',
|
66 |
'type' => 'GNU',
|
67 |
'license' => 'AAMPOSTFILTER',
|
68 |
-
'description' => AAM_Backend_View_Helper::preparePhrase('[WARNING!] Please use with caution. This is a supportive exension for the post access option [
|
69 |
'status' => AAM_Core_Repository::getInstance()->extensionStatus('AAM Post Filter'),
|
70 |
'version' => AAM_Core_Repository::getInstance()->getExtensionVersion('AAM Post Filter')
|
71 |
),
|
@@ -76,6 +76,13 @@ return array(
|
|
76 |
'description' => '<span class="aam-highlight">Highly recommended!</span> ' . __('Patent-pending technology that provides solutions to PHP errors within hours, preventing costly maintenance time and keeping your WordPress site error.', AAM_KEY) . ' <a href="http://codepinch.io" target="_blank">Read more.</a>',
|
77 |
'status' => AAM_Core_Repository::getInstance()->pluginStatus('WP Error Fix')
|
78 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
79 |
array(
|
80 |
'title' => 'User Switching',
|
81 |
'id' => 'User Switching',
|
65 |
'id' => 'AAM Post Filter',
|
66 |
'type' => 'GNU',
|
67 |
'license' => 'AAMPOSTFILTER',
|
68 |
+
'description' => AAM_Backend_View_Helper::preparePhrase('[WARNING!] Please use with caution. This is a supportive exension for the post access option [LIST]. It adds additional post filtering to fix the issue with large amount of posts.', 'strong', 'strong'),
|
69 |
'status' => AAM_Core_Repository::getInstance()->extensionStatus('AAM Post Filter'),
|
70 |
'version' => AAM_Core_Repository::getInstance()->getExtensionVersion('AAM Post Filter')
|
71 |
),
|
76 |
'description' => '<span class="aam-highlight">Highly recommended!</span> ' . __('Patent-pending technology that provides solutions to PHP errors within hours, preventing costly maintenance time and keeping your WordPress site error.', AAM_KEY) . ' <a href="http://codepinch.io" target="_blank">Read more.</a>',
|
77 |
'status' => AAM_Core_Repository::getInstance()->pluginStatus('WP Error Fix')
|
78 |
),
|
79 |
+
array(
|
80 |
+
'title' => 'ConfigPress',
|
81 |
+
'id' => 'ConfigPress',
|
82 |
+
'type' => 'plugin',
|
83 |
+
'description' => __('Development tool with an easy way to manage all your website custom settings. ', AAM_KEY) . ' <a href="http://vasyltech.com/config-press" target="_blank">Read more.</a>',
|
84 |
+
'status' => AAM_Core_Repository::getInstance()->pluginStatus('ConfigPress')
|
85 |
+
),
|
86 |
array(
|
87 |
'title' => 'User Switching',
|
88 |
'id' => 'User Switching',
|
Application/Backend/Filter.php
CHANGED
@@ -95,9 +95,11 @@ class AAM_Backend_Filter {
|
|
95 |
} else {
|
96 |
$menu = $plugin_page;
|
97 |
}
|
|
|
|
|
98 |
|
99 |
-
if (
|
100 |
-
AAM_Core_API::reject('backend');
|
101 |
}
|
102 |
}
|
103 |
|
@@ -190,9 +192,12 @@ class AAM_Backend_Filter {
|
|
190 |
global $post;
|
191 |
|
192 |
if (is_a($post, 'WP_Post')) {
|
193 |
-
$
|
194 |
-
if ($
|
195 |
-
AAM_Core_API::reject(
|
|
|
|
|
|
|
196 |
}
|
197 |
}
|
198 |
}
|
@@ -207,14 +212,14 @@ class AAM_Backend_Filter {
|
|
207 |
* @access public
|
208 |
*/
|
209 |
public function getPost() {
|
|
|
|
|
210 |
if (get_post()) {
|
211 |
$post = get_post();
|
212 |
} elseif ($post_id = AAM_Core_Request::get('post')) {
|
213 |
$post = get_post($post_id);
|
214 |
} elseif ($post_id = AAM_Core_Request::get('post_ID')) {
|
215 |
$post = get_post($post_id);
|
216 |
-
} else {
|
217 |
-
$post = null;
|
218 |
}
|
219 |
|
220 |
return $post;
|
@@ -230,7 +235,13 @@ class AAM_Backend_Filter {
|
|
230 |
* @access public
|
231 |
*/
|
232 |
public function backendDie($function) {
|
233 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
234 |
}
|
235 |
|
236 |
/**
|
95 |
} else {
|
96 |
$menu = $plugin_page;
|
97 |
}
|
98 |
+
|
99 |
+
$object = AAM::getUser()->getObject('menu');
|
100 |
|
101 |
+
if ($object->has($menu)) {
|
102 |
+
AAM_Core_API::reject('backend', array('object' => $object, 'id' => $menu));
|
103 |
}
|
104 |
}
|
105 |
|
192 |
global $post;
|
193 |
|
194 |
if (is_a($post, 'WP_Post')) {
|
195 |
+
$object = AAM::getUser()->getObject('post', $post->ID);
|
196 |
+
if ($object->has('backend.edit')) {
|
197 |
+
AAM_Core_API::reject(
|
198 |
+
'backend',
|
199 |
+
array('object' => $object, 'action' => 'backend.edit')
|
200 |
+
);
|
201 |
}
|
202 |
}
|
203 |
}
|
212 |
* @access public
|
213 |
*/
|
214 |
public function getPost() {
|
215 |
+
$post = null;
|
216 |
+
|
217 |
if (get_post()) {
|
218 |
$post = get_post();
|
219 |
} elseif ($post_id = AAM_Core_Request::get('post')) {
|
220 |
$post = get_post($post_id);
|
221 |
} elseif ($post_id = AAM_Core_Request::get('post_ID')) {
|
222 |
$post = get_post($post_id);
|
|
|
|
|
223 |
}
|
224 |
|
225 |
return $post;
|
235 |
* @access public
|
236 |
*/
|
237 |
public function backendDie($function) {
|
238 |
+
if (AAM_Core_Config::get('access-denied-handler', true)) {
|
239 |
+
AAM_Core_API::reject(
|
240 |
+
'backend', array('callback' => $function, 'skip-die' => true)
|
241 |
+
);
|
242 |
+
}
|
243 |
+
|
244 |
+
return $function;
|
245 |
}
|
246 |
|
247 |
/**
|
Application/Backend/Manager.php
CHANGED
@@ -117,14 +117,20 @@ class AAM_Backend_Manager {
|
|
117 |
*
|
118 |
*/
|
119 |
public function metabox() {
|
120 |
-
|
121 |
-
'
|
122 |
-
__('Access Manager', AAM_KEY),
|
123 |
-
array($this, 'renderMetabox'),
|
124 |
-
null,
|
125 |
-
'side',
|
126 |
-
'high'
|
127 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
128 |
}
|
129 |
|
130 |
/**
|
117 |
*
|
118 |
*/
|
119 |
public function metabox() {
|
120 |
+
$cap = AAM_Core_Config::get(
|
121 |
+
AAM_Backend_Feature_Post::getAccessOption(), 'administrator'
|
|
|
|
|
|
|
|
|
|
|
122 |
);
|
123 |
+
|
124 |
+
if (AAM::getUser()->hasCapability($cap)) {
|
125 |
+
add_meta_box(
|
126 |
+
'aam-acceess-control',
|
127 |
+
__('Access Manager', AAM_KEY),
|
128 |
+
array($this, 'renderMetabox'),
|
129 |
+
null,
|
130 |
+
'side',
|
131 |
+
'high'
|
132 |
+
);
|
133 |
+
}
|
134 |
}
|
135 |
|
136 |
/**
|
Application/Backend/phtml/utility.phtml
CHANGED
@@ -1,12 +1,20 @@
|
|
1 |
<?php if (defined('AAM_KEY')) { ?>
|
2 |
<div class="aam-feature" id="utilities-content">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
<table class="table table-striped table-bordered">
|
4 |
<tbody>
|
5 |
<tr>
|
6 |
<td>
|
7 |
<span class='aam-setting-title'><?php echo __('Edit/Delete Capabilities', AAM_KEY); ?></span>
|
8 |
<p class="aam-setting-description">
|
9 |
-
<?php echo AAM_Backend_View_Helper::preparePhrase('[Please notice!] This feature should be used only by experienced users. Toggle an ability to edit or delete capabilities.
|
10 |
</p>
|
11 |
</td>
|
12 |
<td>
|
@@ -17,7 +25,7 @@
|
|
17 |
<td>
|
18 |
<span class='aam-setting-title'><?php echo __('Backend Access Control', AAM_KEY); ?></span>
|
19 |
<p class="aam-setting-description">
|
20 |
-
<?php echo AAM_Backend_View_Helper::preparePhrase('Use AAM to control access to posts, pages, categories, menus and metaboxes etc. Disable this setting to stop AAM from controling access for backend.
|
21 |
</p>
|
22 |
</td>
|
23 |
<td>
|
@@ -28,13 +36,35 @@
|
|
28 |
<td>
|
29 |
<span class='aam-setting-title'><?php echo __('Frontend Access Control', AAM_KEY); ?></span>
|
30 |
<p class="aam-setting-description">
|
31 |
-
<?php echo AAM_Backend_View_Helper::preparePhrase('Use AAM to control access to posts, pages, categories, menus and widgets. Disable this setting to stop AAM from controling access for frontend.
|
32 |
</p>
|
33 |
</td>
|
34 |
<td>
|
35 |
<input data-toggle="toggle" data-on="<?php echo __('Enabled', AAM_KEY); ?>" data-off="<?php echo __('Disabled', AAM_KEY); ?>" type="checkbox" name="frontend-access-control" <?php echo (AAM_Core_Config::get('frontend-access-control', true) ? 'checked' : ''); ?> />
|
36 |
</td>
|
37 |
</tr>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
38 |
<?php do_action('aam-utilities-setting'); ?>
|
39 |
<tr>
|
40 |
<td>
|
1 |
<?php if (defined('AAM_KEY')) { ?>
|
2 |
<div class="aam-feature" id="utilities-content">
|
3 |
+
<div class="row">
|
4 |
+
<div class="col-xs-12">
|
5 |
+
<p class="aam-info">
|
6 |
+
<?php echo sprintf(AAM_Backend_View_Helper::preparePhrase('To learn more about AAM Utilities check %sAAM Utilities%s article.'), '<a href="http://vasyltech.com/blog/aam-utilities" target="_blank">', '</a>'); ?><br/>
|
7 |
+
</p>
|
8 |
+
</div>
|
9 |
+
</div>
|
10 |
+
|
11 |
<table class="table table-striped table-bordered">
|
12 |
<tbody>
|
13 |
<tr>
|
14 |
<td>
|
15 |
<span class='aam-setting-title'><?php echo __('Edit/Delete Capabilities', AAM_KEY); ?></span>
|
16 |
<p class="aam-setting-description">
|
17 |
+
<?php echo AAM_Backend_View_Helper::preparePhrase('[Please notice!] This feature should be used only by experienced users. Toggle an ability to edit or delete capabilities.', 'strong'); ?>
|
18 |
</p>
|
19 |
</td>
|
20 |
<td>
|
25 |
<td>
|
26 |
<span class='aam-setting-title'><?php echo __('Backend Access Control', AAM_KEY); ?></span>
|
27 |
<p class="aam-setting-description">
|
28 |
+
<?php echo AAM_Backend_View_Helper::preparePhrase('Use AAM to control access to posts, pages, categories, menus and metaboxes etc. Disable this setting to stop AAM from controling access for backend.'); ?>
|
29 |
</p>
|
30 |
</td>
|
31 |
<td>
|
36 |
<td>
|
37 |
<span class='aam-setting-title'><?php echo __('Frontend Access Control', AAM_KEY); ?></span>
|
38 |
<p class="aam-setting-description">
|
39 |
+
<?php echo AAM_Backend_View_Helper::preparePhrase('Use AAM to control access to posts, pages, categories, menus and widgets. Disable this setting to stop AAM from controling access for frontend.'); ?>
|
40 |
</p>
|
41 |
</td>
|
42 |
<td>
|
43 |
<input data-toggle="toggle" data-on="<?php echo __('Enabled', AAM_KEY); ?>" data-off="<?php echo __('Disabled', AAM_KEY); ?>" type="checkbox" name="frontend-access-control" <?php echo (AAM_Core_Config::get('frontend-access-control', true) ? 'checked' : ''); ?> />
|
44 |
</td>
|
45 |
</tr>
|
46 |
+
<tr>
|
47 |
+
<td>
|
48 |
+
<span class='aam-setting-title'><?php echo __('Media Files Access Control', AAM_KEY); ?></span>
|
49 |
+
<p class="aam-setting-description">
|
50 |
+
<?php echo sprintf(AAM_Backend_View_Helper::preparePhrase('When enabled, AAM will physically control access to all media files located in [uploads] folder. For more information check %sthis tutorial%s.', 'strong'), '<a href="http://vasyltech.com/blog/wordpress-media-access-control" target="_blank">', '</a>'); ?>
|
51 |
+
</p>
|
52 |
+
</td>
|
53 |
+
<td>
|
54 |
+
<input data-toggle="toggle" data-on="<?php echo __('Enabled', AAM_KEY); ?>" data-off="<?php echo __('Disabled', AAM_KEY); ?>" type="checkbox" name="media-access-control" <?php echo (AAM_Core_Config::get('media-access-control', true) ? 'checked' : ''); ?> />
|
55 |
+
</td>
|
56 |
+
</tr>
|
57 |
+
<tr>
|
58 |
+
<td>
|
59 |
+
<span class='aam-setting-title'><?php echo __('Access Denied Handling', AAM_KEY); ?></span>
|
60 |
+
<p class="aam-setting-description">
|
61 |
+
<?php echo sprintf(AAM_Backend_View_Helper::preparePhrase('Take control over the default [Access Denied] behavior when access is restricted for a certain resource like page, post or menu. For more information read %sthis tutorial%s.', 'strong'), '<a href="http://vasyltech.com/blog/wordpress-access-denied-handling" target="_blank">', '</a>'); ?>
|
62 |
+
</p>
|
63 |
+
</td>
|
64 |
+
<td>
|
65 |
+
<input data-toggle="toggle" data-on="<?php echo __('Enabled', AAM_KEY); ?>" data-off="<?php echo __('Disabled', AAM_KEY); ?>" type="checkbox" name="access-denied-handler" <?php echo (AAM_Core_Config::get('access-denied-handler', true) ? 'checked' : ''); ?> />
|
66 |
+
</td>
|
67 |
+
</tr>
|
68 |
<?php do_action('aam-utilities-setting'); ?>
|
69 |
<tr>
|
70 |
<td>
|
Application/Core/API.php
CHANGED
@@ -187,28 +187,33 @@ final class AAM_Core_API {
|
|
187 |
*
|
188 |
* Redirect or die the execution based on ConfigPress settings
|
189 |
*
|
190 |
-
* @param string
|
191 |
-
* @param
|
192 |
*
|
193 |
* @return void
|
194 |
*
|
195 |
* @access public
|
196 |
*/
|
197 |
-
public static function reject($area = 'frontend', $
|
198 |
$redirect = AAM_Core_Config::get("{$area}.access.deny.redirect");
|
199 |
$message = AAM_Core_Config::get(
|
200 |
"{$area}.access.deny.message", __('Access Denied', AAM_KEY)
|
201 |
);
|
|
|
|
|
202 |
|
203 |
-
if (
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
|
|
|
|
211 |
}
|
|
|
212 |
exit;
|
213 |
}
|
214 |
|
187 |
*
|
188 |
* Redirect or die the execution based on ConfigPress settings
|
189 |
*
|
190 |
+
* @param string $area
|
191 |
+
* @param array $args
|
192 |
*
|
193 |
* @return void
|
194 |
*
|
195 |
* @access public
|
196 |
*/
|
197 |
+
public static function reject($area = 'frontend', $args = array()) {
|
198 |
$redirect = AAM_Core_Config::get("{$area}.access.deny.redirect");
|
199 |
$message = AAM_Core_Config::get(
|
200 |
"{$area}.access.deny.message", __('Access Denied', AAM_KEY)
|
201 |
);
|
202 |
+
|
203 |
+
$manage = AAM_Core_Config::get('access-denied-handler', true);
|
204 |
|
205 |
+
if ($manage) {
|
206 |
+
if (filter_var($redirect, FILTER_VALIDATE_URL)) {
|
207 |
+
wp_redirect($redirect);
|
208 |
+
} elseif (intval($redirect)) {
|
209 |
+
wp_redirect(get_post_permalink($redirect));
|
210 |
+
} elseif (is_callable($redirect)) {
|
211 |
+
call_user_func($redirect, $args);
|
212 |
+
} elseif (!empty($args['callback']) && is_callable($args['callback'])) {
|
213 |
+
call_user_func($args['callback'], $message, '', array());
|
214 |
+
}
|
215 |
}
|
216 |
+
if (empty($args['skip-die'])) { wp_die($message); }
|
217 |
exit;
|
218 |
}
|
219 |
|
Application/Core/Media.php
ADDED
@@ -0,0 +1,108 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* ======================================================================
|
5 |
+
* LICENSE: This file is subject to the terms and conditions defined in *
|
6 |
+
* file 'LICENSE', which is part of this source code package. *
|
7 |
+
* ======================================================================
|
8 |
+
*/
|
9 |
+
|
10 |
+
/**
|
11 |
+
* AAM Media Access
|
12 |
+
*
|
13 |
+
* @package AAM
|
14 |
+
* @author Vasyl Martyniuk <vasyl@vasyltech.com>
|
15 |
+
*/
|
16 |
+
class AAM_Core_Media {
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Instance of itself
|
20 |
+
*
|
21 |
+
* @var AAM_PlusPackage
|
22 |
+
*
|
23 |
+
* @access private
|
24 |
+
*/
|
25 |
+
private static $_instance = null;
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Initialize the extension
|
29 |
+
*
|
30 |
+
* @return void
|
31 |
+
*
|
32 |
+
* @access protected
|
33 |
+
*/
|
34 |
+
protected function __construct() {
|
35 |
+
if (AAM_Core_Request::get('aam-media')) {
|
36 |
+
$area = (is_admin() ? 'backend' : 'frontend');
|
37 |
+
if (AAM_Core_Config::get("{$area}-access-control")) {
|
38 |
+
$this->checkMediaAccess();
|
39 |
+
}
|
40 |
+
}
|
41 |
+
}
|
42 |
+
|
43 |
+
/**
|
44 |
+
* Check media access
|
45 |
+
*
|
46 |
+
* @return void
|
47 |
+
*
|
48 |
+
* @access protected
|
49 |
+
*/
|
50 |
+
protected function checkMediaAccess() {
|
51 |
+
$directory = wp_get_upload_dir();
|
52 |
+
|
53 |
+
$abspath = str_replace('\\', '/', ABSPATH);
|
54 |
+
$uploads = str_replace('\\', '/', $directory['basedir']);
|
55 |
+
$request = AAM_Core_Request::server('REQUEST_URI');
|
56 |
+
|
57 |
+
if (strpos($request, str_replace($abspath, '/', $uploads)) === 0) {
|
58 |
+
$media = $this->findMedia($request);
|
59 |
+
$area = (is_admin() ? 'backend' : 'frontend');
|
60 |
+
|
61 |
+
if (empty($media) || !$media->has("{$area}.read")) {
|
62 |
+
@header('Content-Type: ' . $media->post_mime_type);
|
63 |
+
echo file_get_contents(ABSPATH . $request);
|
64 |
+
exit;
|
65 |
+
} elseif (!empty($media)) {
|
66 |
+
AAM_Core_API::reject(
|
67 |
+
$area, array('object' => $media, 'action' => "{$area}.read")
|
68 |
+
);
|
69 |
+
}
|
70 |
+
}
|
71 |
+
}
|
72 |
+
|
73 |
+
/**
|
74 |
+
* Find media by URI
|
75 |
+
*
|
76 |
+
* @global Wpdb $wpdb
|
77 |
+
*
|
78 |
+
* @param string $uri
|
79 |
+
*
|
80 |
+
* @return AAM_Core_Object_Post|null
|
81 |
+
*
|
82 |
+
* @access protected
|
83 |
+
*/
|
84 |
+
protected function findMedia($uri) {
|
85 |
+
global $wpdb;
|
86 |
+
|
87 |
+
$s = addslashes(preg_replace('/(-[\d]+x[\d]+)(\.[\w]+)$/', '$2', $uri));
|
88 |
+
$id = $wpdb->get_var("SELECT ID FROM {$wpdb->posts} WHERE guid LIKE '%$s'");
|
89 |
+
|
90 |
+
return ($id ? AAM::getUser()->getObject('post', $id) : null);
|
91 |
+
}
|
92 |
+
|
93 |
+
/**
|
94 |
+
* Bootstrap the extension
|
95 |
+
*
|
96 |
+
* @return AAM_Skeleton
|
97 |
+
*
|
98 |
+
* @access public
|
99 |
+
*/
|
100 |
+
public static function bootstrap() {
|
101 |
+
if (is_null(self::$_instance)) {
|
102 |
+
self::$_instance = new self;
|
103 |
+
}
|
104 |
+
|
105 |
+
return self::$_instance;
|
106 |
+
}
|
107 |
+
|
108 |
+
}
|
Application/Core/Object/Post.php
CHANGED
@@ -48,6 +48,17 @@ class AAM_Core_Object_Post extends AAM_Core_Object {
|
|
48 |
$this->read();
|
49 |
}
|
50 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
51 |
|
52 |
/**
|
53 |
* Read the Post AAM Metadata
|
48 |
$this->read();
|
49 |
}
|
50 |
}
|
51 |
+
|
52 |
+
/**
|
53 |
+
*
|
54 |
+
* @param type $name
|
55 |
+
* @return type
|
56 |
+
*/
|
57 |
+
public function __get($name) {
|
58 |
+
$post = $this->getPost();
|
59 |
+
|
60 |
+
return (property_exists($post, $name) ? $post->$name : null);
|
61 |
+
}
|
62 |
|
63 |
/**
|
64 |
* Read the Post AAM Metadata
|
Application/Frontend/Manager.php
CHANGED
@@ -67,7 +67,10 @@ class AAM_Frontend_Manager {
|
|
67 |
$others = $object->has('frontend.read_others');
|
68 |
|
69 |
if ($read || ($others && !$this->isAuthor($post))) {
|
70 |
-
AAM_Core_API::reject(
|
|
|
|
|
|
|
71 |
}
|
72 |
//trigger any action that is listeting
|
73 |
do_action('aam-wp-action', $object);
|
67 |
$others = $object->has('frontend.read_others');
|
68 |
|
69 |
if ($read || ($others && !$this->isAuthor($post))) {
|
70 |
+
AAM_Core_API::reject(
|
71 |
+
'frontend',
|
72 |
+
array('object' => $object, 'action' => 'frontend.read')
|
73 |
+
);
|
74 |
}
|
75 |
//trigger any action that is listeting
|
76 |
do_action('aam-wp-action', $object);
|
Lang/advanced-access-manager-en_US.mo
CHANGED
Binary file
|
Lang/advanced-access-manager-en_US.po
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: AAM\n"
|
4 |
-
"POT-Creation-Date: 2016-
|
5 |
"PO-Revision-Date: \n"
|
6 |
"Language-Team: WP AAM <vasyl@vasyltech.com>\n"
|
7 |
"MIME-Version: 1.0\n"
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: AAM\n"
|
4 |
+
"POT-Creation-Date: 2016-08-01 19:29-0400\n"
|
5 |
"PO-Revision-Date: \n"
|
6 |
"Language-Team: WP AAM <vasyl@vasyltech.com>\n"
|
7 |
"MIME-Version: 1.0\n"
|
aam.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
/**
|
4 |
Plugin Name: Advanced Access Manager
|
5 |
Description: Manage User and Role Access to WordPress Backend and Frontend.
|
6 |
-
Version: 3.
|
7 |
Author: Vasyl Martyniuk <vasyl@vasyltech.com>
|
8 |
Author URI: http://www.vasyltech.com
|
9 |
|
@@ -56,17 +56,6 @@ class AAM {
|
|
56 |
|
57 |
//load AAM core config
|
58 |
AAM_Core_Config::bootstrap();
|
59 |
-
|
60 |
-
//load all installed extension
|
61 |
-
//TODO - Remove in Aug 2017
|
62 |
-
AAM_Core_Repository::getInstance()->load();
|
63 |
-
|
64 |
-
//bootstrap the correct interface
|
65 |
-
if (is_admin()) {
|
66 |
-
AAM_Backend_Manager::bootstrap();
|
67 |
-
} else {
|
68 |
-
AAM_Frontend_Manager::bootstrap();
|
69 |
-
}
|
70 |
}
|
71 |
|
72 |
/**
|
@@ -126,6 +115,20 @@ class AAM {
|
|
126 |
|
127 |
//load AAM cache
|
128 |
AAM_Core_Cache::bootstrap();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
129 |
}
|
130 |
|
131 |
return self::$_instance;
|
3 |
/**
|
4 |
Plugin Name: Advanced Access Manager
|
5 |
Description: Manage User and Role Access to WordPress Backend and Frontend.
|
6 |
+
Version: 3.6
|
7 |
Author: Vasyl Martyniuk <vasyl@vasyltech.com>
|
8 |
Author URI: http://www.vasyltech.com
|
9 |
|
56 |
|
57 |
//load AAM core config
|
58 |
AAM_Core_Config::bootstrap();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
59 |
}
|
60 |
|
61 |
/**
|
115 |
|
116 |
//load AAM cache
|
117 |
AAM_Core_Cache::bootstrap();
|
118 |
+
|
119 |
+
//load all installed extension
|
120 |
+
//TODO - Remove in Aug 2017
|
121 |
+
AAM_Core_Repository::getInstance()->load();
|
122 |
+
|
123 |
+
//bootstrap the correct interface
|
124 |
+
if (is_admin()) {
|
125 |
+
AAM_Backend_Manager::bootstrap();
|
126 |
+
} else {
|
127 |
+
AAM_Frontend_Manager::bootstrap();
|
128 |
+
}
|
129 |
+
|
130 |
+
//load media control
|
131 |
+
AAM_Core_Media::bootstrap();
|
132 |
}
|
133 |
|
134 |
return self::$_instance;
|
media/css/aam.css
CHANGED
@@ -815,6 +815,14 @@ input[type="checkbox"]:focus, input[type="radio"]:focus {
|
|
815 |
margin-bottom: 5px;
|
816 |
}
|
817 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
818 |
/*! ========================================================================
|
819 |
* Bootstrap Toggle: bootstrap-toggle.css v2.2.0
|
820 |
* http://www.bootstraptoggle.com
|
815 |
margin-bottom: 5px;
|
816 |
}
|
817 |
|
818 |
+
.aam-license-indicator {
|
819 |
+
font-size:0.8em;
|
820 |
+
display:block;
|
821 |
+
margin-top: -4px;
|
822 |
+
margin-bottom: 5px;
|
823 |
+
color: #777777;
|
824 |
+
}
|
825 |
+
|
826 |
/*! ========================================================================
|
827 |
* Bootstrap Toggle: bootstrap-toggle.css v2.2.0
|
828 |
* http://www.bootstraptoggle.com
|
readme.txt
CHANGED
@@ -3,7 +3,7 @@ Contributors: vasyltech
|
|
3 |
Tags: access, role, user, capability, page, post, permission, security
|
4 |
Requires at least: 3.8
|
5 |
Tested up to: 4.5.3
|
6 |
-
Stable tag: 3.
|
7 |
|
8 |
One of the best tools in WordPress repository to manage access to your posts,
|
9 |
pages, categories and backend area for users, roles and visitors.
|
@@ -57,6 +57,11 @@ out more about the Advanced Access Manager.
|
|
57 |
|
58 |
== Changelog ==
|
59 |
|
|
|
|
|
|
|
|
|
|
|
60 |
= 3.5 =
|
61 |
* Improved access control for Posts & Pages
|
62 |
* Introduced Access Manager metabox to Post edit screen
|
3 |
Tags: access, role, user, capability, page, post, permission, security
|
4 |
Requires at least: 3.8
|
5 |
Tested up to: 4.5.3
|
6 |
+
Stable tag: 3.6
|
7 |
|
8 |
One of the best tools in WordPress repository to manage access to your posts,
|
9 |
pages, categories and backend area for users, roles and visitors.
|
57 |
|
58 |
== Changelog ==
|
59 |
|
60 |
+
= 3.6 =
|
61 |
+
* Added Media Access Control feature
|
62 |
+
* Added Access Denied Handling feature
|
63 |
+
* Improved core functionality
|
64 |
+
|
65 |
= 3.5 =
|
66 |
* Improved access control for Posts & Pages
|
67 |
* Introduced Access Manager metabox to Post edit screen
|