| @@ -1,11 +1,10 @@ | ||
| 1 | 1 | <?php |
| 2 | - | |
| 3 | 2 | /** |
| 4 | 3 | * Plugin Name: User Access Manager |
| 5 | 4 | * Plugin URI: http://www.gm-alex.de/projects/wordpress/plugins/user-access-manager/ |
| 6 | 5 | * Author URI: http://www.gm-alex.de/ |
| 7 | - * Version: 1.0 | |
| 6 | + * Version: 1.1.1 | |
| 8 | 7 | * Author: Alexander Schneider |
| 9 | 8 | * Description: Manage the access to your posts, pages, categories and files. |
| 10 | 9 | * |
| 11 | 10 | * user-access-manager.php |
| @@ -45,12 +44,57 @@ | ||
| 45 | 44 | WP_PLUGIN_DIR.'/'.plugin_basename(dirname(__FILE__)).'/' |
| 46 | 45 | ); |
| 47 | 46 | } |
| 48 | 47 | |
| 48 | + | |
| 49 | 49 | //Defines |
| 50 | 50 | require_once 'includes/database.define.php'; |
| 51 | 51 | require_once 'includes/language.define.php'; |
| 52 | 52 | |
| 53 | + | |
| 54 | +//Check requirements | |
| 55 | +$stop = false; | |
| 56 | + | |
| 57 | +//Check php version | |
| 58 | +$phpVersion = phpversion(); | |
| 59 | + | |
| 60 | +if ($phpVersion < 5.0) { | |
| 61 | + add_action( | |
| 62 | + 'admin_notices', | |
| 63 | + create_function( | |
| 64 | + '', | |
| 65 | + 'echo \'<div id="message" class="error"><p><strong>'. | |
| 66 | + sprintf(TXT_PHP_VERSION_TO_LOW, $phpVersion). | |
| 67 | + '</strong></p></div>\';' | |
| 68 | + ) | |
| 69 | + ); | |
| 70 | + | |
| 71 | + $stop = true; | |
| 72 | +} | |
| 73 | + | |
| 74 | +//Check wordpress version | |
| 75 | +global $wp_version; | |
| 76 | + | |
| 77 | +if ($wp_version < 3.0) { | |
| 78 | + add_action( | |
| 79 | + 'admin_notices', | |
| 80 | + create_function( | |
| 81 | + '', | |
| 82 | + 'echo \'<div id="message" class="error"><p><strong>'. | |
| 83 | + sprintf(TXT_WORDPRESS_VERSION_TO_LOW, $wp_version). | |
| 84 | + '</strong></p></div>\';' | |
| 85 | + ) | |
| 86 | + ); | |
| 87 | + | |
| 88 | + $stop = true; | |
| 89 | +} | |
| 90 | + | |
| 91 | +//If we have a error stop plugin. | |
| 92 | +if ($stop) { | |
| 93 | + return; | |
| 94 | +} | |
| 95 | + | |
| 96 | + | |
| 53 | 97 | //Classes |
| 54 | 98 | require_once 'class/UserAccessManager.class.php'; |
| 55 | 99 | require_once 'class/UamUserGroup.class.php'; |
| 56 | 100 | require_once 'class/UamAccessHandler.class.php'; |
| @@ -67,11 +111,9 @@ | ||
| 67 | 111 | * @return null; |
| 68 | 112 | */ |
| 69 | 113 | function userAccessManagerAP() |
| 70 | 114 | { |
| 71 | - global $userAccessManager, | |
| 72 | - $uamUserGroup, | |
| 73 | - $uamAccessHandler, | |
| 115 | + global $userAccessManager, | |
| 74 | 116 | $current_user; |
| 75 | 117 | |
| 76 | 118 | if (!isset($userAccessManager)) { |
| 77 | 119 | return; |
| @@ -78,10 +120,23 @@ | ||
| 78 | 120 | } |
| 79 | 121 | |
| 80 | 122 | $userAccessManager->atAdminPanel = true; |
| 81 | 123 | $uamOptions = $userAccessManager->getAdminOptions(); |
| 82 | - $userAccessManager->update(); | |
| 83 | 124 | |
| 125 | + if ($userAccessManager->isDatabaseUpdateNecessary()) { | |
| 126 | + $link = 'admin.php?page=uam_setup'; | |
| 127 | + | |
| 128 | + add_action( | |
| 129 | + 'admin_notices', | |
| 130 | + create_function( | |
| 131 | + '', | |
| 132 | + 'echo \'<div id="message" class="error"><p><strong>'. | |
| 133 | + sprintf(TXT_NEED_DATABASE_UPDATE, $link). | |
| 134 | + '</strong></p></div>\';' | |
| 135 | + ) | |
| 136 | + ); | |
| 137 | + } | |
| 138 | + | |
| 84 | 139 | get_currentuserinfo(); |
| 85 | 140 | $curUserdata = get_userdata($current_user->ID); |
| 86 | 141 | |
| 87 | 142 | if ($userAccessManager->getAccessHandler()->checkUserAccess() |
| @@ -221,10 +276,10 @@ | ||
| 221 | 276 | |
| 222 | 277 | //Redirect |
| 223 | 278 | $uamOptions = $userAccessManager->getAdminOptions(); |
| 224 | 279 | |
| 225 | - if ($uamOptions['redirect'] != 'false' || isset($_GET['getfile'])) { | |
| 226 | - add_action('template_redirect', array(&$userAccessManager, 'redirect')); | |
| 280 | + if ($uamOptions['redirect'] != 'false' || isset($_GET['uamgetfile'])) { | |
| 281 | + add_filter('wp_headers', array(&$userAccessManager, 'redirect'), 10, 2); | |
| 227 | 282 | } |
| 228 | 283 | |
| 229 | 284 | //Actions |
| 230 | 285 | if (function_exists('add_action')) { |
| @@ -238,8 +293,9 @@ | ||
| 238 | 293 | if (function_exists('add_filter')) { |
| 239 | 294 | add_filter('wp_get_attachment_thumb_url', array(&$userAccessManager, 'getFileUrl'), 10, 2); |
| 240 | 295 | add_filter('wp_get_attachment_url', array(&$userAccessManager, 'getFileUrl'), 10, 2); |
| 241 | 296 | add_filter('the_posts', array(&$userAccessManager, 'showPost')); |
| 297 | + add_filter('posts_where_paged', array(&$userAccessManager, 'showPostSql')); | |
| 242 | 298 | add_filter('wp_get_nav_menu_items', array(&$userAccessManager, 'showCustomMenu')); |
| 243 | 299 | add_filter('comments_array', array(&$userAccessManager, 'showComment')); |
| 244 | 300 | add_filter('get_pages', array(&$userAccessManager, 'showPage')); |
| 245 | 301 | add_filter('get_terms', array(&$userAccessManager, 'showCategory'), 10, 2); |
| @@ -244,8 +300,10 @@ | ||
| 244 | 300 | add_filter('get_pages', array(&$userAccessManager, 'showPage')); |
| 245 | 301 | add_filter('get_terms', array(&$userAccessManager, 'showCategory'), 10, 2); |
| 246 | 302 | add_filter('get_next_post_where', array(&$userAccessManager, 'showNextPreviousPost')); |
| 247 | 303 | add_filter('get_previous_post_where', array(&$userAccessManager, 'showNextPreviousPost')); |
| 248 | - //add_filter('the_title', array(&$userAccessManager, 'showTitle'), 10, 2); | |
| 304 | + add_filter('post_link', array(&$userAccessManager, 'cachePostLinks'), 10, 2); | |
| 249 | 305 | add_filter('edit_post_link', array(&$userAccessManager, 'showGroupMembership'), 10, 2); |
| 306 | + add_filter('parse_query', array(&$userAccessManager, 'parseQuery')); | |
| 307 | + add_filter('getarchives_where', array(&$userAccessManager, 'showPostSql')); | |
| 250 | 308 | } |
| 251 | 309 | } |