PluginProbe
User Access Manager / 1.2.6.2
User Access Manager v1.2.6.2
2.3.20 2.3.19 2.3.18 2.3.17 2.3.16 2.3.15 2.3.14 2.3.13 trunk 0.6 0.6.1 0.6.2 0.7 0.7 Beta 0.7.0.1 0.8 0.8.0.1 0.8.0.2 0.9 0.9.1 0.9.1.1 0.9.1.2 0.9.1.3 0.9.1.4 1.0 All 136 releases
← All changes | user-access-manager.php +312 -1938 0.7 Beta1.2.6.2 View file →
@@ -1,1978 +1,352 @@
1 -<?php
2 -/*
3 -Plugin Name: User Access Manager
4 -Plugin URI: http://www.gm-alex.de/projects/wordpress/plugins/user-access-manager/
5 -Author URI: http://www.gm-alex.de/
6 -Version: 0.7 Beta
7 -Author: Alexander Schneider
8 -Description: Manage the access to your posts and pages. <strong>Note:</strong> <em>If you activate the plugin your upload dir will protect by a '.htaccess' with a random password and all old downloads insert in a previous post/page will not work anymore. You have to update your posts/pages. If you use already a '.htaccess' file to protect your files the plugin will not overwrite the '.htaccess'.</em>
9 -
10 -Copyright 2008 Alexander Schneider (email : alexanderschneider85 [at] gmail DOT com)
11 -
12 - This program is free software; you can redistribute it and/or modify
13 - it under the terms of the GNU General Public License as published by
14 - the Free Software Foundation; either version 2 of the License, or
15 - (at your option) any later version.
16 -
17 - This program is distributed in the hope that it will be useful,
18 - but WITHOUT ANY WARRANTY; without even the implied warranty of
19 - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 - GNU General Public License for more details.
21 -
22 - You should have received a copy of the GNU General Public License
23 - along with this program; if not, write to the Free Software
24 - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25 -
1 +<?php
2 +/**
3 + * Plugin Name: User Access Manager
4 + * Plugin URI: http://www.gm-alex.de/projects/wordpress/plugins/user-access-manager/
5 + * Author URI: http://www.gm-alex.de/
6 + * Version: 1.2.6.2
7 + * Author: Alexander Schneider
8 + * Description: Manage the access to your posts, pages, categories and files.
9 + *
10 + * user-access-manager.php
11 + *
12 + * PHP versions 5
13 + *
14 + * @category UserAccessManager
15 + * @package UserAccessManager
16 + * @author Alexander Schneider <alexanderschneider85@gmail.com>
17 + * @copyright 2008-2013 Alexander Schneider
18 + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2
19 + * @version SVN: $Id$
20 + * @link http://wordpress.org/extend/plugins/user-access-manager/
26 21 */
27 22
28 -//DB
29 -global $wpdb;
30 -define('DB_ACCESSGROUP', $wpdb->prefix.'uam_accessgroups');
31 -define('DB_ACCESSGROUP_TO_POST', $wpdb->prefix.'uam_accessgroup_to_post');
32 -define('DB_ACCESSGROUP_TO_USER', $wpdb->prefix.'uam_accessgroup_to_user');
33 -define('DB_ACCESSGROUP_TO_CATEGORY', $wpdb->prefix.'uam_accessgroup_to_category');
34 -define('DB_ACCESSGROUP_TO_ROLE', $wpdb->prefix.'uam_accessgroup_to_role');
23 +//Paths
24 +load_plugin_textdomain('user-access-manager', false, 'user-access-manager/lang');
25 +define('UAM_URLPATH', plugins_url('', __FILE__).'/');
35 26
36 -//PATH
37 -define('UAM_URLPATH', WP_CONTENT_URL.'/plugins/'.plugin_basename( dirname(__FILE__)).'/' );
27 +if (defined('UAM_LOCAL_DEBUG')) {
28 + define('UAM_REALPATH', plugin_basename(dirname(__FILE__)).'/'); //ONLY FOR MY LOCAL DEBUG
29 +} else {
30 + define('UAM_REALPATH', WP_PLUGIN_DIR.'/'.plugin_basename(dirname(__FILE__)).'/');
31 +}
38 32
39 -//###Lang###
40 33
41 -//---Lang Settings---
42 -define('TXT_SETTINGS', 'Settings');
34 +//Defines
35 +require_once 'includes/database.define.php';
36 +require_once 'includes/language.define.php';
43 37
44 -define('TXT_POST_SETTING', 'Post settings');
45 -define('TXT_POST_SETTING_DESC', 'Set up the behaviour of locked posts');
46 -define('TXT_POST_TITLE', 'Post title');
47 -define('TXT_POST_TITLE_DESC', 'Displayed text as post title if user has no access');
48 -define('TXT_DISPLAY_POST_TITLE', 'Hide post titel');
49 -define('TXT_DISPLAY_POST_TITLE_DESC', 'Selecting "Yes" will show the text which is defined at "'.TXT_POST_TITLE.'" if user has no access.');
50 -define('TXT_POST_CONTENT', 'Post content');
51 -define('TXT_POST_CONTENT_DESC', 'Content displayed if user has no access');
52 -define('TXT_HIDE_POST', 'Hide complete posts');
53 -define('TXT_HIDE_POST_DESC', 'Selecting "Yes" will hide posts if the user has no access.');
54 38
55 -define('TXT_PAGE_SETTING', 'Page settings');
56 -define('TXT_PAGE_SETTING_DESC', 'Set up the behaviour of locked pages');
57 -define('TXT_PAGE_TITLE', 'Page title');
58 -define('TXT_PAGE_TITLE_DESC', 'Displayed text as page title if user has no access');
59 -define('TXT_DISPLAY_PAGE_TITLE', 'Hide page titel');
60 -define('TXT_DISPLAY_PAGE_TITLE_DESC', 'Selecting "Yes" will show the text which is defined at "'.TXT_PAGE_TITLE.'" if user has no access.');
61 -define('TXT_PAGE_CONTENT', 'Page content');
62 -define('TXT_PAGE_CONTENT_DESC', 'Content displayed if user has no access');
63 -define('TXT_HIDE_PAGE', 'Hide complete pages');
64 -define('TXT_HIDE_PAGE_DESC', 'Selecting "Yes" will hide pages if the user has no access. Pages will also hide in the navigation.');
39 +//Check requirements
40 +$blStop = false;
65 41
66 -define('TXT_FILE_SETTING', 'File settings');
67 -define('TXT_FILE_SETTING_DESC', 'Set up the behaviour of files');
68 -define('TXT_LOCK_FILE', 'Lock files');
69 -define('TXT_LOCK_FILE_DESC', 'If you select "Yes" all files will locked by a .htaccess file and only users with access can download files.');
70 -define('TXT_DOWNLOAD_FILE_TYPE', 'Locked file types');
71 -define('TXT_DOWNLOAD_FILE_TYPE_DESC', 'Type in file types which you will lock if the post/page is locked. <b>Note:</b> If you use images, vids or something else in your posts which are directly shown there and not for download do not type these types in here, because this types will not work anymore.');
72 -define('TXT_DOWNLOAD_TYPE', 'Download type');
73 -define('TXT_DOWNLOAD_TYPE_DESC', 'Selecting the type for downloading. <strong>Note:</strong> For using fopen you need "safe_mode = off".');
74 -define('TXT_NORMAL', 'Normal');
75 -define('TXT_FOPEN', 'fopen');
42 +//Check php version
43 +$sPhpVersion = phpversion();
76 44
77 -define('TXT_OTHER_SETTING', 'Other settings');
78 -define('TXT_OTHER_SETTING_DESC', 'Here you will find all other settings');
79 -define('TXT_REDIRECT', 'Redirect user');
80 -define('TXT_REDIRECT_DESC', 'Setup what happen if a user visit a post/page with no access.');
81 -define('TXT_REDIRECT_TO_BOLG', 'To blog startpage');
82 -define('TXT_REDIRECT_TO_PAGE', 'Custom page: ');
83 -define('TXT_REDIRECT_TO_URL', 'Custom URL: ');
84 -define('TXT_LOCK_RECURSIVE', 'Lock recursive');
85 -define('TXT_LOCK_RECURSIVE_DESC', 'Selecting "Yes" will lock all child posts/pages of a post/page if a user has no access to the parent page.');
45 +if (version_compare($sPhpVersion, "5.0") === -1) {
46 + add_action(
47 + 'admin_notices',
48 + create_function(
49 + '',
50 + 'echo \'<div id="message" class="error"><p><strong>'.
51 + sprintf(TXT_UAM_PHP_VERSION_TO_LOW, $sPhpVersion).
52 + '</strong></p></div>\';'
53 + )
54 + );
55 +
56 + $blStop = true;
57 +}
86 58
87 -define('TXT_YES', 'Yes');
88 -define('TXT_NO', 'No');
59 +//Check wordpress version
60 +global $wp_version;
89 61
90 -define('TXT_UPDATE_SETTING', 'Update settings');
91 -define('TXT_UPDATE_SETTINGS', 'Settings updated.');
62 +if (version_compare($wp_version, "3.0") === -1) {
63 + add_action(
64 + 'admin_notices',
65 + create_function(
66 + '',
67 + 'echo \'<div id="message" class="error"><p><strong>'.
68 + sprintf(TXT_UAM_WORDPRESS_VERSION_TO_LOW, $wp_version).
69 + '</strong></p></div>\';'
70 + )
71 + );
72 +
73 + $blStop = true;
74 +}
92 75
93 -//---Access groups---
76 +//If we have a error stop plugin.
77 +if ($blStop) {
78 + return;
79 +}
94 80
95 -define('TXT_MANAGE_GROUP', 'Manage user access groups');
96 -define('TXT_GROUP_ROLE', 'Role affiliation');
97 -define('TXT_NAME', 'Name');
98 -define('TXT_DESCRIPTION', 'Description');
99 -define('TXT_POSTS', 'Posts');
100 -define('TXT_PAGES', 'Pages');
101 -define('TXT_CATEGORY', 'Categories');
102 -define('TXT_USERS', 'Users');
103 -define('TXT_DELETE', 'Delete');
104 -define('TXT_UPDATE_GROUP', 'Update group');
105 -define('TXT_ADD', 'Add');
106 -define('TXT_ADD_GROUP', 'Add access group');
107 -define('TXT_GROUP_NAME', 'Access group name');
108 -define('TXT_GROUP_NAME_DESC', 'The name is used to identify the access user group.');
109 -define('TXT_GROUP_DESC', 'Access group description');
110 -define('TXT_GROUP_DESC_DESC', 'The description of the group.');
111 -define('TXT_GROUP_ADDED', 'Group was added successfully.');
112 -define('TXT_DEL_GROUP', 'Group(s) was deleted successfully.');
113 -define('TXT_NONE', 'none');
114 81
115 -//---Misc---
116 -define('TXT_FULL_ACCESS', 'Full access');
117 -define('TXT_FULL_ACCESS_ADMIN', 'Full access (Administrator)');
118 -define('TXT_NO_GROUP', 'No group');
119 -define('TXT_SET_ACCESS', 'Set access');
82 +//Classes
83 +require_once 'class/UserAccessManager.class.php';
84 +require_once 'class/UamUserGroup.class.php';
85 +require_once 'class/UamAccessHandler.class.php';
120 86
121 -define('TXT_DATE', 'Date');
122 -define('TXT_TITLE', 'Title');
123 -define('TXT_GROUP_ACCESS', 'Group access');
124 -define('TXT_FULL_ACCESS', 'Full access');
125 -define('TXT_USERNAME', 'Username');
87 +if (class_exists("UserAccessManager")) {
88 + $oUserAccessManager = new UserAccessManager();
89 +}
126 90
127 -define('TXT_MAIL', 'E-mail');
128 -define('TXT_ACCESS', 'Access');
129 -define('TXT_ADMIN_HINT', '<strong>Note:</strong> An administrator has allways access to all posts/pages.');
91 +//Initialize the admin panel
92 +if (!function_exists("userAccessManagerAP")) {
93 + /**
94 + * Creates the filters and actions for the admin panel
95 + *
96 + * @return null;
97 + */
98 + function userAccessManagerAP()
99 + {
100 + global $oUserAccessManager;
101 + $oCurrentUser = $oUserAccessManager->getCurrentUser();
130 102
131 -define('TXT_SET_POST_ACCESS', 'Set post access');
132 -define('TXT_SET_PAGE_ACCESS', 'Set page access');
133 -define('TXT_GROUPS', 'Access Groups');
134 -define('TXT_CREATE_GROUP_FIRST', 'Please create a access group first.');
135 -define('TXT_SET_USER_ACCESS', 'Set user access');
103 + if (!isset($oUserAccessManager)) {
104 + return;
105 + }
136 106
137 -define('TXT_SET_UP_USERGROUPS', 'Set up usergroups');
107 + $oUserAccessManager->setAtAdminPanel();
108 + $aUamOptions = $oUserAccessManager->getAdminOptions();
138 109
139 -
140 -if (!class_exists("UserAccessManager"))
141 -{
142 - class UserAccessManager
143 - {
144 - var $adminOptionsName = "uamAdminOptions";
145 - var $atAdminPanel = false;
146 -
147 - function UserAccessManager()
148 - { //constructor
149 -
150 - }
151 -
152 - function init()
153 - {
154 - $this->getAdminOptions();
155 - }
156 -
157 - function install()
158 - {
159 - $this->create_htaccess();
160 - $this->create_htpasswd();
161 -
162 - global $wpdb;
163 - $uam_db_version = "1.0";
164 - require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
165 -
166 - $charset_collate = '';
110 + if ($oUserAccessManager->isDatabaseUpdateNecessary()) {
111 + $sLink = 'admin.php?page=uam_setup';
167 112
168 - if ( version_compare(mysql_get_server_info(), '4.1.0', '>=') )
169 - {
170 - if ( ! empty($wpdb->charset) )
171 - $charset_collate = "DEFAULT CHARACTER SET $wpdb->charset";
172 - if ( ! empty($wpdb->collate) )
173 - $charset_collate .= " COLLATE $wpdb->collate";
174 - }
175 -
176 - if($wpdb->get_var("show tables like '".DB_ACCESSGROUP."'") != DB_ACCESSGROUP)
177 - {
178 - $sql = "CREATE TABLE " . DB_ACCESSGROUP . " (
179 - ID int(11) NOT NULL auto_increment,
180 - groupname tinytext NOT NULL,
181 - groupdesc text NOT NULL,
182 - PRIMARY KEY (ID)
183 - ) $charset_collate;";
184 -
185 - dbDelta($sql);
186 - }
187 -
188 - if($wpdb->get_var("show tables like '".DB_ACCESSGROUP_TO_POST."'") != DB_ACCESSGROUP_TO_POST)
189 - {
190 - $sql = "CREATE TABLE " . DB_ACCESSGROUP_TO_POST . " (
191 - post_id int(11) NOT NULL,
192 - group_id int(11) NOT NULL,
193 - PRIMARY KEY (post_id,group_id)
194 - ) $charset_collate;";
113 + add_action(
114 + 'admin_notices',
115 + create_function(
116 + '',
117 + 'echo \'<div id="message" class="error"><p><strong>'.
118 + sprintf(TXT_UAM_NEED_DATABASE_UPDATE, $sLink).
119 + '</strong></p></div>\';'
120 + )
121 + );
122 + }
195 123
196 - dbDelta($sql);
197 - }
198 -
199 - if($wpdb->get_var("show tables like '".DB_ACCESSGROUP_TO_USER."'") != DB_ACCESSGROUP_TO_USER)
200 - {
201 - $sql = "CREATE TABLE " . DB_ACCESSGROUP_TO_USER . " (
202 - user_id int(11) NOT NULL,
203 - group_id int(11) NOT NULL,
204 - PRIMARY KEY (user_id,group_id)
205 - ) $charset_collate;";
124 + get_currentuserinfo();
125 + $oCurUserData = get_userdata($oCurrentUser->ID);
126 + $oUamAccessHandler = $oUserAccessManager->getAccessHandler();
127 + $aTaxonomies = get_taxonomies(array('public' => true, '_builtin' => false));
206 128
207 - dbDelta($sql);
208 - }
209 -
210 - if($wpdb->get_var("show tables like '".DB_ACCESSGROUP_TO_CATEGORY."'") != DB_ACCESSGROUP_TO_CATEGORY)
211 - {
212 - $sql = "CREATE TABLE " . DB_ACCESSGROUP_TO_CATEGORY . " (
213 - category_id int(11) NOT NULL,
214 - group_id int(11) NOT NULL,
215 - PRIMARY KEY (category_id,group_id)
216 - ) $charset_collate;";
129 + if ($oUamAccessHandler->checkUserAccess()
130 + || $aUamOptions['authors_can_add_posts_to_groups'] == 'true'
131 + ) {
132 + //Admin actions
133 + if (function_exists('add_action')) {
134 + add_action('admin_print_styles', array($oUserAccessManager, 'addStyles'));
135 + add_action('wp_print_scripts', array($oUserAccessManager, 'addScripts'));
217 136
218 - dbDelta($sql);
219 - }
220 -
221 - if($wpdb->get_var("show tables like '".DB_ACCESSGROUP_TO_ROLE."'") != DB_ACCESSGROUP_TO_ROLE)
222 - {
223 - $sql = "CREATE TABLE " . DB_ACCESSGROUP_TO_ROLE . " (
224 - role_name varchar(255) NOT NULL,
225 - group_id int(11) NOT NULL,
226 - PRIMARY KEY (role_name,group_id)
227 - ) $charset_collate;";
137 + add_action('manage_posts_custom_column', array($oUserAccessManager, 'addPostColumn'), 10, 2);
138 + add_action('manage_pages_custom_column', array($oUserAccessManager, 'addPostColumn'), 10, 2);
139 + add_action('save_post', array($oUserAccessManager, 'savePostData'));
228 140
229 - dbDelta($sql);
230 - }
231 -
232 - add_option("uam_db_version", $uam_db_version);
233 - }
234 -
235 - function uninstall()
236 - {
237 - global $wpdb;
238 - $wpdb->query("DROP TABLE ".DB_ACCESSGROUP.", ".DB_ACCESSGROUP_TO_POST.", ".DB_ACCESSGROUP_TO_USER);
239 - }
240 -
241 - function create_htaccess($create_new = false)
242 - {
243 - // Make .htaccess file to protect data
244 -
245 - // get url
246 - $wud = wp_upload_dir();
247 - $url = $DOCUMENT_ROOT.$wud['basedir']."/";
248 -
249 - if(!file_exists($url.".htaccess") || $create_new)
250 - {
251 - $areaname = "WP-Files";
252 -
253 - $uamOptions = $this->getAdminOptions();
254 -
255 - $file_types = $uamOptions['locked_file_types'];
256 -
257 - $file_types = str_replace(",", "|", $file_types);
258 -
259 - // make .htaccess and .htpasswd
260 - $htaccess_txt = "<FilesMatch '\.(".$file_types.")'>\n";
261 - $htaccess_txt .= "AuthType Basic"."\n";
262 - $htaccess_txt .= "AuthName \"".$areaname."\""."\n";
263 - $htaccess_txt .= "AuthUserFile ".$url.".htpasswd"."\n";
264 - $htaccess_txt .= "require valid-user"."\n";
265 - $htaccess_txt .= "</FilesMatch>\n";
141 + add_action('manage_media_custom_column', array($oUserAccessManager, 'addPostColumn'), 10, 2);
266 142
267 -
268 - // save files
269 - $htaccess= fopen($url.".htaccess", "w");
270 - fwrite($htaccess, $htaccess_txt);
271 - fclose($htaccess);
272 - }
273 - }
274 -
275 - function create_htpasswd($create_new = false)
276 - {
277 - // get url
278 - $wud = wp_upload_dir();
279 - $url = $DOCUMENT_ROOT.$wud['basedir']."/";
280 -
281 - if(!file_exists($url.".htpasswd") || $create_new)
282 - {
283 - $user = "admin";
284 -
285 - # create password
286 - $array = array();
287 -
288 - $length = 10;
289 - $capitals = true;
290 -
291 - if($length < 8)
292 - $length = mt_rand(8,20);
293 -
294 - # numbers
295 - for($i=48;$i<58;$i++)
296 - $array[] = chr($i);
297 -
298 - # small
299 - for($i=97;$i<122;$i++)
300 - $array[] = chr($i);
301 -
302 - # capitals
303 - if($capitals)
304 - for($i=65;$i<90;$i++)
305 - $array[] = chr($i);
306 -
307 - # specialchar:
308 - if($specialSigns)
309 - {
310 - for($i=33;$i<47;$i++)
311 - $array[] = chr($i);
312 - for($i=59;$i<64;$i++)
313 - $array[] = chr($i);
314 - for($i=91;$i<96;$i++)
315 - $array[] = chr($i);
316 - for($i=123;$i<126;$i++)
317 - $array[] = chr($i);
318 - }
319 -
320 - mt_srand((double)microtime()*1000000);
321 - $password = '';
322 -
323 - for ($i=1; $i<=$length; $i++)
324 - {
325 - $rnd = mt_rand( 0, count($array)-1 );
326 - $password .= $array[$rnd];
327 - }
328 -
329 - // make .htpasswd
330 - $htpasswd_txt .= "$user:".md5($password)."\n";
331 -
332 - // save file
333 - $htpasswd= fopen($url.".htpasswd", "w");
334 - fwrite($htpasswd, $htpasswd_txt);
335 - fclose($htpasswd);
336 - }
337 - }
338 -
339 - function delete_htaccess_files()
340 - {
341 - $wud = wp_upload_dir();
342 - $url = $DOCUMENT_ROOT.$wud['basedir']."/";
343 - unlink($url.".htaccess");
344 - unlink($url.".htpasswd");
345 - }
346 -
347 - //Returns an array of admin options
348 - function getAdminOptions()
349 - {
350 - $uamAdminOptions = array( 'hide_post_title' => 'false',
351 - 'post_title' => 'No rights!',
352 - 'post_content' => 'Sorry no rights!',
353 - 'hide_post' => 'false',
354 - 'hide_page_title' => 'false',
355 - 'page_title' => 'No rights!',
356 - 'page_content' => 'Sorry you have no rights to view this page!',
357 - 'hide_page' => 'false',
358 - 'redirect' => 'false',
359 - 'uam_redirect_custom_page' => '',
360 - 'uam_redirect_custom_url' => '',
361 - 'lock_recursive' => 'true',
362 - 'lock_file' => 'true',
363 - 'download_type' => 'fopen',
364 - 'locked_file_types' => 'zip,rar,tar,gz,bz2');
365 -
366 - $uamOptions = get_option($this->adminOptionsName);
367 - if (!empty($uamOptions)) {
368 - foreach ($uamOptions as $key => $option)
369 - $uamAdminOptions[$key] = $option;
370 - }
371 - update_option($this->adminOptionsName, $uamAdminOptions);
372 - return $uamAdminOptions;
373 - }
374 -
375 - //Prints out the admin page
376 - function printAdminPage()
377 - {
378 - global $wpdb;
379 -
380 - $uamOptions = $this->getAdminOptions();
381 -
382 - if (isset($_POST['update_uam_settings']))
383 - {
384 - if (isset($_POST['uam_hide_post_title']))
385 - {
386 - $uamOptions['hide_post_title'] = $_POST['uam_hide_post_title'];
387 - }
388 - if (isset($_POST['uam_post_title']))
389 - {
390 - $uamOptions['post_title'] = $_POST['uam_post_title'];
391 - }
392 - if (isset($_POST['uam_post_content']))
393 - {
394 - $uamOptions['post_content'] = $_POST['uam_post_content'];
395 - }
396 - if (isset($_POST['uam_hide_post']))
397 - {
398 - $uamOptions['hide_post'] = $_POST['uam_hide_post'];
399 - }
400 - if (isset($_POST['uam_hide_page_title']))
401 - {
402 - $uamOptions['hide_page_title'] = $_POST['uam_hide_page_title'];
403 - }
404 - if (isset($_POST['uam_page_title']))
405 - {
406 - $uamOptions['page_title'] = $_POST['uam_page_title'];
407 - }
408 - if (isset($_POST['uam_page_content']))
409 - {
410 - $uamOptions['page_content'] = $_POST['uam_page_content'];
411 - }
412 - if (isset($_POST['uam_hide_page']))
413 - {
414 - $uamOptions['hide_page'] = $_POST['uam_hide_page'];
415 - }
416 - if (isset($_POST['uam_redirect']))
417 - {
418 - $uamOptions['redirect'] = $_POST['uam_redirect'];
419 - }
420 - if (isset($_POST['uam_redirect_custom_page']))
421 - {
422 - $uamOptions['redirect_custom_page'] = $_POST['uam_redirect_custom_page'];
423 - }
424 - if (isset($_POST['uam_redirect_custom_url']))
425 - {
426 - $uamOptions['redirect_custom_url'] = $_POST['uam_redirect_custom_url'];
427 - }
428 - if (isset($_POST['uam_lock_recursive']))
429 - {
430 - $uamOptions['lock_recursive'] = $_POST['uam_lock_recursive'];
431 - }
432 - if (isset($_POST['uam_lock_file']))
433 - {
434 - if($_POST['uam_lock_file'] == 'false')
435 - {
436 - if($uamOptions['lock_file'] != $_POST['uam_lock_file'])
437 - $this->delete_htaccess_files();
438 - }
439 - else
440 - {
441 - if($uamOptions['lock_file'] != $_POST['uam_lock_file'])
442 - $lock_file_changed = true;
443 - }
444 - $uamOptions['lock_file'] = $_POST['uam_lock_file'];
445 - }
446 - if (isset($_POST['uam_download_type']))
447 - {
448 - $uamOptions['download_type'] = $_POST['uam_download_type'];
449 - }
450 - if (isset($_POST['uam_locked_file_types']))
451 - {
452 - if($uamOptions['locked_file_types'] != $_POST['uam_locked_file_types'])
453 - $locked_file_types_changed = true;
454 - else
455 - $locked_file_types_changed = false;
456 -
457 - $uamOptions['locked_file_types'] = $_POST['uam_locked_file_types'];
458 - }
459 -
460 - update_option($this->adminOptionsName, $uamOptions);
461 -
462 - if(($locked_file_types_changed || $lock_file_changed) && $uamOptions['lock_file'] != 'false')
463 - {
464 - $this->create_htaccess(true);
465 - $this->create_htpasswd(true);
466 - }
467 - ?>
468 - <div class="updated"><p><strong><?php _e(TXT_UPDATE_SETTINGS, "UserAccessManager");?></strong></p></div>
469 - <?php
470 - }
471 -
472 - $cur_admin_page = $_GET['page'];
473 - $action = $_GET['action'];
143 + //Actions are only called when the attachment content is modified so we can't use it.
144 + //add_action('add_attachment', array($oUserAccessManager, 'savePostData'));
145 + //add_action('edit_attachment', array($oUserAccessManager, 'savePostData'));
474 146
475 - if($_POST['action'] == 'addgroup')
476 - {
477 - $wpdb->query("INSERT INTO ".DB_ACCESSGROUP." (ID, groupname, groupdesc) VALUES(NULL, '".$_POST['access_group_name']."', '".$_POST['access_group_description']."')");
478 - ?>
479 - <div class="updated"><p><strong><?php _e(TXT_GROUP_ADDED, "UserAccessManager");?></strong></p></div>
480 - <?php
481 - }
482 -
483 - if($_POST['action'] == 'delgroup')
484 - {
485 - $del_ids = $_POST['delete'];
486 - if($del_ids)
487 - {
488 - foreach($del_ids as $del_id)
489 - {
490 - $wpdb->query("DELETE FROM ".DB_ACCESSGROUP." WHERE ID = $del_id LIMIT 1");
491 - $wpdb->query("DELETE FROM ".DB_ACCESSGROUP_TO_POST." WHERE group_id = $del_id LIMIT 1");
492 - $wpdb->query("DELETE FROM ".DB_ACCESSGROUP_TO_USER." WHERE group_id = $del_id LIMIT 1");
493 - }
494 - ?>
495 - <div class="updated"><p><strong><?php _e(TXT_DEL_GROUP, "UserAccessManager");?></strong></p></div>
496 - <?php
497 - }
498 - }
499 -
500 - if($_POST['action'] == 'update_group')
501 - {
502 - $wpdb->query(" UPDATE ".DB_ACCESSGROUP."
503 - SET groupname = '".$_POST['access_group_name']."', groupdesc = '".$_POST['access_group_description']."'
504 - WHERE ID = ".$_POST['access_group_id']);
505 -
506 - $roles = $_POST['roles'];
507 - if($roles)
508 - {
509 - $wpdb->query("DELETE FROM ".DB_ACCESSGROUP_TO_ROLE." WHERE group_id = ".$_POST['access_group_id']);
510 - foreach($roles as $role)
511 - {
512 - $wpdb->query("INSERT INTO ".DB_ACCESSGROUP_TO_ROLE." (group_id, role_name) VALUES('".$_POST['access_group_id']."', '".$role."')");
513 - }
514 - }
515 - ?>
516 - <div class="updated"><p><strong><?php _e("Access group edit successfully.", "UserAccessManager");?></strong></p></div>
517 - <?php
518 - }
519 -
520 - if($cur_admin_page == 'uam_usergroup' AND !$action)
521 - {
522 - $accessgroups = $wpdb->get_results("SELECT *
523 - FROM ".DB_ACCESSGROUP."
524 - ORDER BY ID", ARRAY_A);
525 - ?>
526 - <div class=wrap>
527 - <form method="post" action="<?php echo $_SERVER["REQUEST_URI"]; ?>">
528 - <input type="hidden" value="delgroup" name="action"/>
529 - <h2><?php _e(TXT_MANAGE_GROUP, "UserAccessManager"); ?></h2>
530 - <div class="tablenav">
531 - <div class="alignleft">
532 - <input type="submit" class="button-secondary delete" name="deleteit" value="<?php _e(TXT_DELETE, "UserAccessManager"); ?>"/>
533 - </div>
534 - <br class="clear"/>
535 - </div>
536 - <br class="clear"/>
537 - <table class="widefat">
538 - <thead>
539 - <tr class="thead">
540 - <th scope="col"></th>
541 - <th scope="col"><?php _e(TXT_NAME, "UserAccessManager"); ?></th>
542 - <th scope="col"><?php _e(TXT_DESCRIPTION, "UserAccessManager"); ?></th>
543 - <th scope="col"><?php _e(TXT_POSTS, "UserAccessManager"); ?></th>
544 - <th scope="col"><?php _e(TXT_PAGES, "UserAccessManager"); ?></th>
545 - <th scope="col"><?php _e(TXT_CATEGORY, "UserAccessManager"); ?></th>
546 - <th scope="col"><?php _e(TXT_USERS, "UserAccessManager"); ?></th>
547 - </tr>
548 - </thead>
549 - <tbody>
550 - <?php
551 - if($accessgroups)
552 - {
553 - foreach($accessgroups as $accessgroup)
554 - {
555 - $users = $wpdb->get_results(" SELECT *
556 - FROM ".DB_ACCESSGROUP_TO_USER."
557 - WHERE group_id = ".$accessgroup['ID']."
558 - ORDER BY user_id", ARRAY_A);
559 - $posts = $wpdb->get_results(" SELECT *
560 - FROM ".DB_ACCESSGROUP_TO_POST."
561 - WHERE group_id = ".$accessgroup['ID']."
562 - ORDER BY post_id", ARRAY_A);
563 - $categories = $wpdb->get_results(" SELECT *
564 - FROM ".DB_ACCESSGROUP_TO_CATEGORY."
565 - WHERE group_id = ".$accessgroup['ID']."
566 - ORDER BY category_id", ARRAY_A);
567 - ?>
568 - <tr class="alternate" id="group-<?php echo $accessgroup['ID']; ?>">
569 - <th class="check-column" scope="row"><input type="checkbox" value="<?php echo $accessgroup['ID']; ?>" name="delete[]"/></th>
570 - <td><strong><a href="?page=<?php echo $cur_admin_page; ?>&action=edit_group&id=<?php echo $accessgroup['ID']; ?>"><?php echo $accessgroup['groupname']; ?></a></strong></td>
571 - <td><?php echo $accessgroup['groupdesc']; ?></td>
572 - <td>
573 - <?php
574 - if($posts)
575 - {
576 - foreach($posts as $post)
577 - {
578 - $cur_id = $post['post_id'];
579 - $cur_post = & get_post($cur_id);
580 - if($cur_post->post_type == 'post')
581 - echo "- ".$cur_post->post_title."<br />";
582 - }
583 - }
584 - else
585 - {
586 - _e(TXT_NONE, "UserAccessManager");
587 - }
588 - ?>
589 - </td>
590 - <td>
591 - <?php
592 - if($posts)
593 - {
594 - foreach($posts as $post)
595 - {
596 - $cur_id = $post['post_id'];
597 - $cur_post = & get_post($cur_id);
598 - if($cur_post->post_type == 'page')
599 - echo "- ".$cur_post->post_title."<br />";
600 - }
601 - }
602 - else
603 - {
604 - _e(TXT_NONE, "UserAccessManager");
605 - }
606 - ?>
607 - </td>
608 - <td>
609 - <?php
610 - if($categories)
611 - {
612 - foreach($categories as $categorie)
613 - {
614 - $cur_cat = get_category($categorie['category_id']);
615 - echo "- ".$cur_cat->cat_name."<br />";
616 - }
617 - }
618 - else
619 - {
620 - _e(TXT_NONE, "UserAccessManager");
621 - }
622 - ?>
623 - </td>
624 - <td>
625 - <?php
626 - if($users)
627 - {
628 - foreach($users as $user)
629 - {
630 - $cur_user = get_userdata($user['user_id']);
631 - echo "- ".$cur_user->nickname."<br />";
632 - }
633 - }
634 - else
635 - {
636 - _e(TXT_NONE, "UserAccessManager");
637 - }
638 - ?>
639 - </td>
640 - </tr>
641 - <?php
642 - }
643 - }
644 - ?>
645 - </tbody>
646 - </table>
647 - </form>
648 - </div>
649 - <div class="wrap">
650 - <h2><?php _e(TXT_ADD_GROUP, "UserAccessManager"); ?></h2>
651 - <div id="ajax-response"/>
652 - <form class="add:the-list: validate" action="<?php echo $_SERVER["REQUEST_URI"]; ?>" method="post" id="addgroup" name="addgroup">
653 - <input type="hidden" value="addgroup" name="action"/>
654 - <table class="form-table">
655 - <tbody>
656 - <tr class="form-field form-required">
657 - <th valign="top" scope="row"><label for="group_name"><?php _e(TXT_GROUP_NAME, "UserAccessManager"); ?>e</label></th>
658 - <td><input type="text" aria-required="true" size="40" value="" id="access_group_name" name="access_group_name"/><br/>
659 - <?php _e(TXT_GROUP_NAME_DESC, "UserAccessManager"); ?></td>
660 -
661 - </tr>
662 - <tr class="form-field form-required">
663 - <th valign="top" scope="row"><label for="group_name"><?php _e(TXT_GROUP_DESC, "UserAccessManager"); ?></label></th>
664 - <td><input type="text" aria-required="true" size="40" value="" id="access_group_description" name="access_group_description"/><br/>
665 - <?php _e(TXT_GROUP_DESC_DESC, "UserAccessManager"); ?></td>
666 - </tr>
667 - <tr class="form-field form-required">
668 - <th valign="top" scope="row"><label for="group_role"><?php _e(TXT_GROUP_ROLE, "UserAccessManager"); ?></label></th>
669 - <td>
670 - <?php
671 - global $wp_roles;
672 -
673 - foreach($wp_roles->role_names as $role => $name)
674 - {
675 - ?>
676 - <label class="selectit">
677 - <input type="checkbox" value="<?php echo $role; ?>" name="roles[]"/>
678 - <?php echo $role ?>
679 - </label><br />
680 - <?php
681 - }
682 - ?>
683 - </td>
684 - </tr>
685 - </tbody>
686 - </table>
687 - <p class="submit"><input type="submit" value="<?php _e(TXT_ADD, "UserAccessManager"); ?>" name="submit" class="button"/></p>
688 - </form>
689 - </div>
690 - <?php
691 - }
692 - elseif($cur_admin_page == 'uam_settings' AND !$action)
693 - {
694 - ?>
695 - <div class=wrap>
696 - <form method="post" action="<?php echo $_SERVER["REQUEST_URI"]; ?>">
697 - <h2><?php _e(TXT_SETTINGS, "UserAccessManager"); ?></h2>
698 - <h3><?php _e(TXT_POST_SETTING, "UserAccessManager"); ?></h3>
699 - <p><?php _e(TXT_POST_SETTING_DESC, "UserAccessManager"); ?></p>
700 - <table class="form-table">
701 - <tbody>
702 - <tr valign="top">
703 - <th scope="row">
704 - <?php _e(TXT_POST_TITLE, "UserAccessManager"); ?>
705 - </th>
706 - <td>
707 - <input name="uam_post_title" value="<?php _e($uamOptions['post_title'], 'UserAccessManager') ?>" />
708 - <br />
709 - <?php _e(TXT_POST_TITLE_DESC, "UserAccessManager"); ?>
710 - </td>
711 - </tr>
712 - <tr valign="top">
713 - <th scope="row">
714 - <?php _e(TXT_DISPLAY_POST_TITLE, "UserAccessManager"); ?>
715 - </th>
716 - <td>
717 - <label for="uam_hide_post_title_yes">
718 - <input type="radio" id="uam_hide_post_title_yes" name="uam_hide_post_title" value="true" <?php if ($uamOptions['hide_post_title'] == "true") { _e('checked="checked"', "UserAccessManager"); }?> />
719 - <?php _e(TXT_YES, "UserAccessManager"); ?>
720 - </label>&nbsp;&nbsp;&nbsp;&nbsp;
721 - <label for="uam_hide_post_title_no">
722 - <input type="radio" id="uam_hide_post_title_no" name="uam_hide_post_title" value="false" <?php if ($uamOptions['hide_post_title'] == "false") { _e('checked="checked"', "UserAccessManager"); }?>/>
723 - <?php _e(TXT_NO, "UserAccessManager"); ?>
724 - </label>
725 - <br />
726 - <?php _e(TXT_DISPLAY_POST_TITLE_DESC, "UserAccessManager"); ?>
727 - </td>
728 - </tr>
729 - <tr valign="top">
730 - <th scope="row">
731 - <?php _e(TXT_POST_CONTENT, "UserAccessManager"); ?>
732 - </th>
733 - <td>
734 - <textarea name="uam_post_content" style="width: 80%; height: 100px;"><?php _e(apply_filters('format_to_edit',$uamOptions['post_content']), 'UserAccessManager') ?></textarea>
735 - <br />
736 - <?php _e(TXT_POST_CONTENT_DESC, "UserAccessManager"); ?>
737 - </td>
738 - </tr>
739 - <tr valign="top">
740 - <th scope="row">
741 - <?php _e(TXT_HIDE_POST, "UserAccessManager"); ?>
742 - </th>
743 - <td>
744 - <label for="uam_hide_post_yes">
745 - <input type="radio" id="uam_hide_post_yes" name="uam_hide_post" value="true" <?php if ($uamOptions['hide_post'] == "true") { _e('checked="checked"', "UserAccessManager"); }?> />
746 - <?php _e(TXT_YES, "UserAccessManager"); ?>
747 - </label>&nbsp;&nbsp;&nbsp;&nbsp;
748 - <label for="uam_hide_post_no">
749 - <input type="radio" id="uam_hide_post_no" name="uam_hide_post" value="false" <?php if ($uamOptions['hide_post'] == "false") { _e('checked="checked"', "UserAccessManager"); }?>/>
750 - <?php _e(TXT_NO, "UserAccessManager"); ?>
751 - </label>
752 - <br />
753 - <?php _e(TXT_HIDE_POST_DESC, "UserAccessManager"); ?>
754 - </td>
755 - </tr>
756 - </tbody>
757 - </table>
758 - <h3><?php _e(TXT_PAGE_SETTING, "UserAccessManager"); ?></h3>
759 - <p><?php _e(TXT_PAGE_SETTING_DESC, "UserAccessManager"); ?></p>
760 - <table class="form-table">
761 - <tbody>
762 - <tr>
763 - <th>
764 - <?php _e(TXT_PAGE_TITLE, "UserAccessManager"); ?>
765 - </th>
766 - <td>
767 - <input name="uam_page_title" value="<?php _e($uamOptions['page_title'], 'UserAccessManager') ?>" />
768 - <br />
769 - <?php _e(TXT_PAGE_TITLE_DESC, "UserAccessManager"); ?>
770 - </td>
771 - </tr>
772 - <tr valign="top">
773 - <th scope="row">
774 - <?php _e(TXT_DISPLAY_PAGE_TITLE, "UserAccessManager"); ?>
775 - </th>
776 - <td>
777 - <label for="uam_hide_page_title_yes">
778 - <input type="radio" id="uam_hide_page_title_yes" name="uam_hide_page_title" value="true" <?php if ($uamOptions['hide_page_title'] == "true") { _e('checked="checked"', "UserAccessManager"); }?> />
779 - <?php _e(TXT_YES, "UserAccessManager"); ?>
780 - </label>&nbsp;&nbsp;&nbsp;&nbsp;
781 - <label for="uam_hide_page_title_no">
782 - <input type="radio" id="uam_hide_page_title_no" name="uam_hide_page_title" value="false" <?php if ($uamOptions['hide_page_title'] == "false") { _e('checked="checked"', "UserAccessManager"); }?>/>
783 - <?php _e(TXT_NO, "UserAccessManager"); ?>
784 - </label>
785 - <br />
786 - <?php _e(TXT_DISPLAY_PAGE_TITLE_DESC, "UserAccessManager"); ?>
787 - </td>
788 - </tr>
789 - <tr>
790 - <th>
791 - <?php _e(TXT_PAGE_CONTENT, "UserAccessManager"); ?>
792 - </th>
793 - <td>
794 - <textarea name="uam_page_content" style="width: 80%; height: 100px;"><?php _e(apply_filters('format_to_edit',$uamOptions['page_content']), 'UserAccessManager') ?></textarea>
795 - <br />
796 - <?php _e(TXT_PAGE_CONTENT_DESC, "UserAccessManager"); ?>
797 - </td>
798 - </tr>
799 - <tr>
800 - <th>
801 - <?php _e(TXT_HIDE_PAGE, "UserAccessManager"); ?>
802 - </th>
803 - <td>
804 - <label for="uam_hide_page_yes">
805 - <input type="radio" id="uam_hide_page_yes" name="uam_hide_page" value="true" <?php if ($uamOptions['hide_page'] == "true") { _e('checked="checked"', "UserAccessManager"); }?> />
806 - <?php _e(TXT_YES, "UserAccessManager"); ?>
807 - </label>&nbsp;&nbsp;&nbsp;&nbsp;
808 - <label for="uam_hide_page_no">
809 - <input type="radio" id="uam_hide_page_no" name="uam_hide_page" value="false" <?php if ($uamOptions['hide_page'] == "false") { _e('checked="checked"', "UserAccessManager"); }?>/>
810 - <?php _e(TXT_NO, "UserAccessManager"); ?>
811 - </label>
812 - <br />
813 - <?php _e(TXT_HIDE_PAGE_DESC, "UserAccessManager"); ?>
814 - </td>
815 - </tr>
816 - </tbody>
817 - </table>
818 - <h3><?php _e(TXT_FILE_SETTING, "UserAccessManager"); ?></h3>
819 - <p><?php _e(TXT_FILE_SETTING_DESC, "UserAccessManager"); ?></p>
820 - <table class="form-table">
821 - <tbody>
822 - <tr>
823 - <th>
824 - <?php _e(TXT_LOCK_FILE, "UserAccessManager"); ?>
825 - </th>
826 - <td>
827 - <label for="uam_lock_file_yes">
828 - <input type="radio" id="uam_lock_file_yes" name="uam_lock_file" value="true" <?php if ($uamOptions['lock_file'] == "true") { _e('checked="checked"', "UserAccessManager"); }?> />
829 - <?php _e(TXT_YES, "UserAccessManager"); ?>
830 - </label>&nbsp;&nbsp;&nbsp;&nbsp;
831 - <label for="uam_lock_file_no">
832 - <input type="radio" id="uam_lock_file_no" name="uam_lock_file" value="false" <?php if ($uamOptions['lock_file'] == "false") { _e('checked="checked"', "UserAccessManager"); }?>/>
833 - <?php _e(TXT_NO, "UserAccessManager"); ?>
834 - </label>
835 - <br />
836 - <?php _e(TXT_LOCK_FILE_DESC, "UserAccessManager"); ?>
837 - </td>
838 - </tr>
839 - <tr>
840 - <th>
841 - <?php _e(TXT_DOWNLOAD_FILE_TYPE, "UserAccessManager"); ?>
842 - </th>
843 - <td>
844 - <input name="uam_locked_file_types" value="<?php _e($uamOptions['locked_file_types'], 'UserAccessManager') ?>" />
845 - <br />
846 - <?php _e(TXT_DOWNLOAD_FILE_TYPE_DESC, "UserAccessManager"); ?>
847 - </td>
848 - </tr>
849 - <tr>
850 - <th>
851 - <?php _e(TXT_DOWNLOAD_TYPE, "UserAccessManager"); ?>
852 - </th>
853 - <td>
854 - <label for="uam_download_type_normal">
855 - <input type="radio" id="uam_download_type_normal" name="uam_download_type" value="normal" <?php if ($uamOptions['download_type'] == "normal") { _e('checked="checked"', "UserAccessManager"); }?> />
856 - <?php _e(TXT_NORMAL, "UserAccessManager"); ?>
857 - </label>&nbsp;&nbsp;&nbsp;&nbsp;
858 - <label for="uam_download_type_fopen">
859 - <input type="radio" id="uam_download_type_fopen" name="uam_download_type" value="fopen" <?php if ($uamOptions['download_type'] == "fopen") { _e('checked="checked"', "UserAccessManager"); }?>/>
860 - <?php _e(TXT_FOPEN, "UserAccessManager"); ?>
861 - </label>
862 - <br />
863 - <?php _e(TXT_DOWNLOAD_TYPE_DESC, "UserAccessManager"); ?>
864 - </td>
865 - </tr>
866 - </tbody>
867 - </table>
868 - <h3><?php _e(TXT_OTHER_SETTING, "UserAccessManager"); ?></h3>
869 - <p><?php _e(TXT_OTHER_SETTING_DESC, "UserAccessManager"); ?></p>
870 - <table class="form-table">
871 - <tbody>
872 - <tr>
873 - <th>
874 - <?php _e(TXT_REDIRECT, "UserAccessManager"); ?>
875 - </th>
876 - <td>
877 - <label for="uam_redirect_no">
878 - <input type="radio" id="uam_redirect_no" name="uam_redirect" value="false" <?php if ($uamOptions['redirect'] == "false") { _e('checked="checked"', "UserAccessManager"); }?> />
879 - <?php _e(TXT_NO, "UserAccessManager"); ?>
880 - </label>&nbsp;&nbsp;&nbsp;&nbsp;
881 - <label for="uam_redirect_blog">
882 - <input type="radio" id="uam_redirect_blog" name="uam_redirect" value="blog" <?php if ($uamOptions['redirect'] == "blog") { _e('checked="checked"', "UserAccessManager"); }?> />
883 - <?php _e(TXT_REDIRECT_TO_BOLG, "UserAccessManager"); ?>
884 - </label>&nbsp;&nbsp;&nbsp;&nbsp;
885 - <label for="uam_redirect_custom_page">
886 - <input type="radio" id="uam_redirect_custom_p" name="uam_redirect" value="custom_page" <?php if ($uamOptions['redirect'] == "custom_page") { _e('checked="checked"', "UserAccessManager"); }?>/>
887 - <?php _e(TXT_REDIRECT_TO_PAGE, "UserAccessManager"); ?>
888 - </label><input name="uam_redirect_custom_page" value="<?php _e($uamOptions['redirect_custom_page'], 'UserAccessManager') ?>" />&nbsp;&nbsp;&nbsp;&nbsp;
889 - <label for="uam_redirect_custom_url">
890 - <input type="radio" id="uam_redirect_custom_u" name="uam_redirect" value="custom_url" <?php if ($uamOptions['redirect'] == "custom_url") { _e('checked="checked"', "UserAccessManager"); }?>/>
891 - <?php _e(TXT_REDIRECT_TO_URL, "UserAccessManager"); ?>
892 - </label><input name="uam_redirect_custom_url" value="<?php _e($uamOptions['redirect_custom_url'], 'UserAccessManager') ?>" />
893 - <br />
894 - <?php _e(TXT_REDIRECT_DESC, "UserAccessManager"); ?>
895 - </td>
896 - </tr>
897 - <tr>
898 - <th>
899 - <?php _e(TXT_LOCK_RECURSIVE, "UserAccessManager"); ?>
900 - </th>
901 - <td>
902 - <label for="uam_lock_recursive_yes">
903 - <input type="radio" id="uam_lock_recursive_yes" name="uam_lock_recursive" value="true" <?php if ($uamOptions['lock_recursive'] == "true") { _e('checked="checked"', "UserAccessManager"); }?> />
904 - <?php _e(TXT_YES, "UserAccessManager"); ?>
905 - </label>&nbsp;&nbsp;&nbsp;&nbsp;
906 - <label for="uam_lock_recursive_no">
907 - <input type="radio" id="uam_lock_recursive_no" name="uam_lock_recursive" value="false" <?php if ($uamOptions['lock_recursive'] == "false") { _e('checked="checked"', "UserAccessManager"); }?>/>
908 - <?php _e(TXT_NO, "UserAccessManager"); ?>
909 - </label>
910 - <br />
911 - <?php _e(TXT_LOCK_RECURSIVE_DESC, "UserAccessManager"); ?>
912 - </td>
913 - </tr>
914 - </tbody>
915 - </table>
916 - <div class="submit">
917 - <input type="submit" name="update_uam_settings" value="<?php _e(TXT_UPDATE_SETTING, 'UserAccessManager') ?>" />
918 - </div>
919 - </form>
920 - </div>
921 - <?php
922 - }
923 - elseif($action == 'edit_group')
924 - {
925 - $group_id = $_GET['id'];
926 - $accessgroup = $wpdb->get_row(" SELECT *
927 - FROM ".DB_ACCESSGROUP."
928 - WHERE ID = ".$group_id."
929 - LIMIT 1", ARRAY_A);
930 - ?>
931 - <div class=wrap>
932 - <form method="post" action="<?php echo reset(explode("?", $_SERVER["REQUEST_URI"]))."?page=".$_GET['page']; ?>">
933 - <input type="hidden" value="update_group" name="action"/>
934 - <input type="hidden" value="<?php echo $group_id; ?>" name="access_group_id"/>
935 - <table class="form-table">
936 - <tbody>
937 - <tr class="form-field form-required">
938 - <th valign="top" scope="row"><label for="group_name"><?php _e(TXT_GROUP_NAME, "UserAccessManager"); ?></label></th>
939 - <td><input type="text" aria-required="true" size="40" value="<?php echo $accessgroup["groupname"];?>" id="access_group_name" name="access_group_name"/><br/>
940 - <?php _e(TXT_GROUP_NAME_DESC, "UserAccessManager"); ?></td>
941 - </tr>
942 - <tr class="form-field form-required">
943 - <th valign="top" scope="row"><label for="group_name"><?php _e(TXT_GROUP_DESC, "UserAccessManager"); ?></label></th>
944 - <td><input type="text" aria-required="true" size="40" value="<?php echo $accessgroup["groupdesc"];?>" id="access_group_description" name="access_group_description"/><br/>
945 - <?php _e(TXT_GROUP_DESC_DESC, "UserAccessManager"); ?></td>
946 - </tr>
947 - <tr class="form-field form-required">
948 - <th valign="top" scope="row"><label for="group_role"><?php _e(TXT_GROUP_ROLE, "UserAccessManager"); ?></label></th>
949 - <td>
950 - <?php
951 - global $wp_roles;
952 -
953 - foreach($wp_roles->role_names as $role => $name)
954 - {
955 - $checked = $wpdb->get_results(" SELECT *
956 - FROM ".DB_ACCESSGROUP_TO_ROLE."
957 - WHERE role_name = '".$role."'
958 - AND group_id = ".$group_id, ARRAY_A)
959 - ?>
960 - <label class="selectit">
961 - <input type="checkbox" <?php if($checked){ echo 'checked="checked"'; } ?>value="<?php echo $role; ?>" name="roles[]"/>
962 - <?php echo $role ?>
963 - </label><br />
964 - <?php
965 - }
966 - ?>
967 - </td>
968 - </tr>
969 - </tbody>
970 - </table>
971 - <p class="submit"><input type="submit" value="<?php _e(TXT_UPDATE_GROUP, "UserAccessManager"); ?>" name="submit" class="button"/></p>
972 - </form>
973 - </div>
974 - <?php
975 - }
976 - }//End function printAdminPage()
977 -
978 - function get_usergroups_for_post($ID)
979 - {
980 - global $wpdb;
981 -
982 - $access = $this->get_access($ID);
983 -
984 - $post_usergroups = array();
985 -
986 - if($access->restricted_by_posts || $access->restricted_by_categories)
987 - {
988 - if($access->restricted_by_posts)
989 - {
990 - foreach($access->restricted_by_posts as $cur_id)
991 - {
992 - $usergroups = $wpdb->get_results(" SELECT ag.groupname
993 - FROM ".DB_ACCESSGROUP." ag, ".DB_ACCESSGROUP_TO_POST." agtp
994 - WHERE agtp.post_id = ".$cur_id."
995 - AND ag.ID = agtp.group_id
996 - GROUP BY ag.groupname", ARRAY_A);
997 -
998 - if($usergroups)
999 - {
1000 - foreach($usergroups as $usergroup)
1001 - {
1002 - $cur_usergroup = $post_usergroups[$usergroup['groupname']];
1003 -
1004 - $cur_usergroup->name = $usergroup['groupname'];
1005 -
1006 - if($cur_id != $ID)
1007 - {
1008 - $posts = $cur_usergroup->posts;
1009 -
1010 - $lock_post = & get_post($cur_id);
1011 - $posts[] = $lock_post->ID;
1012 - $cur_usergroup->posts = $posts;
1013 - }
1014 - else
1015 - {
1016 - $cur_usergroup->itself = true;
1017 - }
1018 -
1019 - $post_usergroups[$usergroup['groupname']] = $cur_usergroup;
1020 - }
1021 - }
1022 - }
1023 - }
1024 -
1025 - if($access->restricted_by_categories)
1026 - {
1027 - foreach($access->restricted_by_categories as $cur_id)
1028 - {
1029 - $usergroups = $wpdb->get_results(" SELECT ag.groupname
1030 - FROM ".DB_ACCESSGROUP." ag, ".DB_ACCESSGROUP_TO_CATEGORY." agtc
1031 - WHERE agtc.category_id = ".$cur_id."
1032 - AND ag.ID = agtc.group_id
1033 - GROUP BY ag.groupname", ARRAY_A);
1034 -
1035 - if($usergroups)
1036 - {
1037 - foreach($usergroups as $usergroup)
1038 - {
1039 - $cur_usergroup = $post_usergroups[$usergroup['groupname']];
1040 -
1041 - $cur_usergroup->name = $usergroup['groupname'];
147 + add_action('edit_user_profile', array($oUserAccessManager, 'showUserProfile'));
148 + add_action('profile_update', array($oUserAccessManager, 'saveUserData'));
1042 149
1043 - $categories = $cur_usergroup->categories;
1044 -
1045 - $lock_cat = & get_category($cur_id);
1046 - $categories[] = $lock_cat->term_id;
1047 - $cur_usergroup->categories = $categories;
1048 -
1049 - $post_usergroups[$usergroup['groupname']] = $cur_usergroup;
1050 - }
1051 - }
1052 - }
1053 - }
1054 - }
1055 -
1056 - return $post_usergroups;
1057 - }
1058 -
1059 - function add_post_columns_header($defaults)
1060 - {
1061 - $defaults['access'] = __('Access');
1062 - return $defaults;
1063 - }
1064 -
1065 - function add_post_column($column_name, $id)
1066 - {
1067 - if( $column_name == 'access' )
1068 - {
1069 - $usergroups = $this->get_usergroups_for_post($id);
1070 - if($usergroups)
1071 - {
1072 - foreach($usergroups as $usergroup)
1073 - {
1074 - $output = "- ".$usergroup->name. "";
1075 - $output .= " (Set by: ";
1076 -
1077 - if($usergroup->itself)
1078 - $output .= "itself, ";
1079 -
1080 - if($usergroup->posts)
1081 - {
1082 - foreach($usergroup->posts as $cur_id)
1083 - {
1084 - $cur_post = & get_post($cur_id);
1085 - $output .= "$cur_post->post_title [$cur_post->post_type], ";
1086 - }
1087 - }
1088 -
1089 - if($usergroup->categories)
1090 - {
1091 - foreach($usergroup->categories as $cur_id)
1092 - {
1093 - $cur_category = & get_category($cur_id);
1094 - $output .= "$cur_category->name [category], ";
1095 - }
1096 - }
1097 -
1098 - $output = substr($output, 0, -2);
1099 -
1100 - $output .= ")<br />";
1101 - echo $output;
1102 - }
1103 - }
1104 - else
1105 - {
1106 - _e(TXT_FULL_ACCESS, "UserAccessManager");
1107 - }
1108 - }
1109 - }
1110 -
1111 - function edit_post_content($post)
1112 - {
1113 - global $wpdb;
1114 - $accessgroups = $wpdb->get_results("SELECT *
1115 - FROM ".DB_ACCESSGROUP."
1116 - ORDER BY groupname", ARRAY_A);
1117 - if($accessgroups)
1118 - {
1119 - foreach($accessgroups as $accessgroup)
1120 - {
1121 - $checked = $wpdb->get_results(" SELECT *
1122 - FROM ".DB_ACCESSGROUP_TO_POST."
1123 - WHERE post_id = ".$post->ID."
1124 - AND group_id = ".$accessgroup['ID'], ARRAY_A)
1125 - ?>
1126 - <p>
1127 - <label class="selectit" for="uam_accesss">
1128 - <input type="checkbox" <?php if($checked){ echo 'checked="checked"'; } ?>value="<?php echo $accessgroup['ID']; ?>" name="accessgroups[]"/>
1129 - <?php echo $accessgroup['groupname'] ?>
1130 - </label>
1131 - </p>
1132 - <?php
1133 - }
1134 - }
1135 - else
1136 - {
1137 - echo "<p>";
1138 - _e(TXT_CREATE_GROUP_FIRST, "UserAccessManager");
1139 - echo "</p>";
1140 - }
1141 - }
1142 -
1143 - function save_postdata($post_id)
1144 - {
1145 - global $wpdb;
1146 - $accessgroups = $_POST['accessgroups'];
1147 - $wpdb->query("DELETE FROM ".DB_ACCESSGROUP_TO_POST." WHERE post_id = $post_id");
1148 - if($accessgroups)
1149 - {
1150 - foreach($accessgroups as $accessgroup)
1151 - {
1152 - $wpdb->query("INSERT INTO ".DB_ACCESSGROUP_TO_POST." (post_id,group_id) VALUES(".$post_id.", ".$accessgroup.")");
1153 - }
1154 - }
1155 - }
1156 -
1157 - function remove_postdata($post_id)
1158 - {
1159 - global $wpdb;
1160 - $wpdb->query("DELETE FROM ".DB_ACCESSGROUP_TO_POST." WHERE post_id = $post_id");
1161 - }
1162 -
1163 - function add_user_columns_header($defaults)
1164 - {
1165 - $defaults['access'] = __('Access');
1166 - return $defaults;
1167 - }
1168 -
1169 - function add_user_column($column_name, $id)
1170 - {
1171 - global $wpdb;
1172 -
1173 - if( $column_name == 'access' )
1174 - {
1175 - $usergroups = $wpdb->get_results(" SELECT ag.groupname
1176 - FROM ".DB_ACCESSGROUP." ag, ".DB_ACCESSGROUP_TO_USER." agtp
1177 - WHERE agtp.user_id = ".$id."
1178 - AND ag.ID = agtp.group_id
1179 - GROUP BY ag.groupname", ARRAY_A);
1180 -
1181 - if($usergroups)
1182 - {
1183 - foreach($usergroups as $usergroup)
1184 - {
1185 - $content .= $usergroup['groupname']."<br />";
1186 - }
1187 - }
1188 - else
1189 - {
1190 - $content = TXT_NO_GROUP;
1191 - }
1192 - return $content;
1193 - }
1194 - }
1195 -
1196 - function show_user_profile()
1197 - {
1198 - global $wpdb, $current_user;
1199 -
1200 - $user_id = $_GET['user_id'];
1201 - $cur_userdata = get_userdata($current_user->ID);
1202 - $cur_edit_userdata = get_userdata($user_id);
1203 -
1204 - if($cur_userdata->wp_capabilities['administrator'] == 1)
1205 - {
1206 - $accessgroups = $wpdb->get_results("SELECT *
1207 - FROM ".DB_ACCESSGROUP."
1208 - ORDER BY groupname", ARRAY_A);
1209 -
1210 - ?>
1211 - <h3><?php _e(TXT_GROUPS, "UserAccessManager"); ?></h3>
1212 - <table class="form-table">
1213 - <tbody>
1214 - <tr>
1215 - <th>
1216 - <label for="usergroups"><?php _e(TXT_SET_UP_USERGROUPS, "UserAccessManager"); ?></label>
1217 - </th>
1218 - <td>
1219 - <?php
1220 - if($cur_edit_userdata->wp_capabilities['administrator'] != 1)
1221 - {
1222 - if($accessgroups)
1223 - {
1224 - foreach($accessgroups as $accessgroup)
1225 - {
1226 - $checked = $wpdb->get_results(" SELECT *
1227 - FROM ".DB_ACCESSGROUP_TO_USER."
1228 - WHERE user_id = ".$user_id."
1229 - AND group_id = ".$accessgroup['ID'], ARRAY_A)
1230 - ?>
1231 - <label class="selectit">
1232 - <input type="checkbox" <?php if($checked){ echo 'checked="checked"'; } ?>value="<?php echo $accessgroup['ID']; ?>" name="accessgroups[]"/>
1233 - <?php echo $accessgroup['groupname'] ?>
1234 - </label><br />
1235 - <?php
1236 - }
1237 - }
1238 - else
1239 - {
1240 - _e(TXT_CREATE_GROUP_FIRST, "UserAccessManager");
1241 - }
1242 - }
1243 - else
1244 - {
1245 - _e(TXT_ADMIN_HINT, "UserAccessManager");
1246 - }
1247 - ?>
1248 - </td>
1249 - </tr>
1250 - </tbody>
1251 - </table>
1252 - <?php
1253 - }
1254 - }
1255 -
1256 - function save_userdata($user_id)
1257 - {
1258 - global $wpdb, $current_user;
1259 -
1260 - $cur_userdata = get_userdata($current_user->ID);
150 + add_action('edit_category_form', array($oUserAccessManager, 'showCategoryEditForm'));
151 + add_action('create_category', array($oUserAccessManager, 'saveCategoryData'));
152 + add_action('edit_category', array($oUserAccessManager, 'saveCategoryData'));
1261 153
1262 - if($cur_userdata->wp_capabilities['administrator'] == 1)
1263 - {
1264 - $accessgroups = $_POST['accessgroups'];
1265 - $wpdb->query("DELETE FROM ".DB_ACCESSGROUP_TO_USER." WHERE user_id = $user_id");
1266 - if($accessgroups)
1267 - {
1268 - foreach($accessgroups as $accessgroup)
1269 - {
1270 - $wpdb->query("INSERT INTO ".DB_ACCESSGROUP_TO_USER." (user_id,group_id) VALUES(".$user_id.", ".$accessgroup.")");
1271 - }
1272 - }
1273 - }
1274 - }
1275 -
1276 - function remove_userdata($user_id)
1277 - {
1278 - global $wpdb, $current_user;
1279 -
1280 - $cur_userdata = get_userdata($current_user->ID);
154 + add_action('bulk_edit_custom_box', array($oUserAccessManager, 'addBulkAction'));
1281 155
1282 - if($cur_userdata->wp_capabilities['administrator'] == 1)
1283 - $wpdb->query("DELETE FROM ".DB_ACCESSGROUP_TO_USER." WHERE user_id = $user_id");
1284 - }
1285 -
1286 - function add_category_columns_header($defaults)
1287 - {
1288 - $defaults['access'] = __('Access');
1289 - return $defaults;
1290 - }
1291 -
1292 - function add_category_column($column_name, $id)
1293 - {
1294 - global $wpdb;
1295 -
1296 - if( $column_name == 'access' )
1297 - {
1298 - $usergroups = $wpdb->get_results(" SELECT ag.groupname
1299 - FROM ".DB_ACCESSGROUP." ag, ".DB_ACCESSGROUP_TO_CATEGORY." agtc
1300 - WHERE agtc.category_id = ".$id."
1301 - AND ag.ID = agtc.group_id
1302 - GROUP BY ag.groupname", ARRAY_A);
1303 -
1304 - if($usergroups)
1305 - {
1306 - foreach($usergroups as $usergroup)
1307 - {
1308 - $content .= "- ".$usergroup['groupname']."<br />";
1309 - }
1310 - }
1311 - else
1312 - {
1313 - $content = TXT_NO_GROUP;
1314 - }
1315 - return $content;
1316 - }
1317 - }
1318 -
1319 - function show_cat_add_form($cat)
1320 - {
1321 - global $wpdb, $current_user;
1322 156
1323 - $cat_id = $cat->cat_ID;
157 + //Taxonomies
158 + foreach ($aTaxonomies as $sTaxonomy) {
159 + add_filter('manage_edit-'.$sTaxonomy.'_columns', array($oUserAccessManager, 'addCategoryColumnsHeader'));
160 + add_action('manage_'.$sTaxonomy.'_custom_column', array($oUserAccessManager, 'addCategoryColumn'), 10, 3);
161 + add_action($sTaxonomy.'_add_form_fields', array($oUserAccessManager, 'showCategoryEditForm'));
162 + add_action($sTaxonomy.'_edit_form_fields', array($oUserAccessManager, 'showCategoryEditForm'));
163 + add_action('create_'.$sTaxonomy, array($oUserAccessManager, 'saveCategoryData'));
164 + add_action('edit_'.$sTaxonomy, array($oUserAccessManager, 'saveCategoryData'));
165 + }
166 + }
1324 167
1325 - $accessgroups = $wpdb->get_results("SELECT *
1326 - FROM ".DB_ACCESSGROUP."
1327 - ORDER BY groupname", ARRAY_A);
1328 -
1329 - ?>
1330 - <div class="form-field">
1331 - <label for="usergroups"><?php _e(TXT_SET_UP_USERGROUPS, "UserAccessManager"); ?></label>
1332 - <?php
1333 - if($accessgroups)
1334 - {
1335 - foreach($accessgroups as $accessgroup)
1336 - {
1337 - $checked = $wpdb->get_results(" SELECT *
1338 - FROM ".DB_ACCESSGROUP_TO_CATEGORY."
1339 - WHERE category_id = ".$cat_id."
1340 - AND group_id = ".$accessgroup['ID'], ARRAY_A)
1341 - ?>
1342 - <label class="selectit">
1343 - <input type="checkbox" <?php if($checked){ echo 'checked="checked"'; } ?>value="<?php echo $accessgroup['ID']; ?>" name="accessgroups[]"/>
1344 - <?php echo $accessgroup['groupname'] ?>
1345 - </label>
1346 - <?php
1347 - }
1348 - }
1349 - else
1350 - {
1351 - _e(TXT_CREATE_GROUP_FIRST, "UserAccessManager");
1352 - }
1353 - ?>
1354 - </div>
1355 - <?php
1356 - }
1357 -
1358 - function show_cat_edit_form($cat)
1359 - {
1360 - global $wpdb, $current_user;
168 + //Admin filters
169 + if (function_exists('add_filter')) {
170 + //The filter we use instead of add|edit_attachment action, reason see top
171 + add_filter('attachment_fields_to_save', array($oUserAccessManager, 'saveAttachmentData'));
1361 172
1362 - $cat_id = $cat->cat_ID;
173 + add_filter('manage_posts_columns', array($oUserAccessManager, 'addPostColumnsHeader'));
174 + add_filter('manage_pages_columns', array($oUserAccessManager, 'addPostColumnsHeader'));
1363 175
1364 - $accessgroups = $wpdb->get_results("SELECT *
1365 - FROM ".DB_ACCESSGROUP."
1366 - ORDER BY groupname", ARRAY_A);
1367 -
1368 - ?>
1369 - <table class="form-table">
1370 - <tbody>
1371 - <tr>
1372 - <th>
1373 - <label for="description"><?php _e(TXT_SET_UP_USERGROUPS, "UserAccessManager"); ?></label>
1374 - </th>
1375 - <td>
1376 - <?php
1377 - if($accessgroups)
1378 - {
1379 - foreach($accessgroups as $accessgroup)
1380 - {
1381 - $checked = $wpdb->get_results(" SELECT *
1382 - FROM ".DB_ACCESSGROUP_TO_CATEGORY."
1383 - WHERE category_id = ".$cat_id."
1384 - AND group_id = ".$accessgroup['ID'], ARRAY_A)
1385 - ?>
1386 - <label class="selectit">
1387 - <input type="checkbox" <?php if($checked){ echo 'checked="checked"'; } ?>value="<?php echo $accessgroup['ID']; ?>" name="accessgroups[]"/>
1388 - <?php echo $accessgroup['groupname'] ?>
1389 - </label><br />
1390 - <?php
1391 - }
1392 - }
1393 - else
1394 - {
1395 - _e(TXT_CREATE_GROUP_FIRST, "UserAccessManager");
1396 - }
1397 - ?>
1398 - </td>
1399 - </tr>
1400 - </tbody>
1401 - </table>
1402 - <?php
1403 - }
1404 -
1405 - function add_head_content()
1406 - {
1407 - wp_enqueue_style('UserAccessManager', UAM_URLPATH."css/uma_admin.css" , false, '1.0.0', 'screen');
1408 - }
176 + add_filter('manage_users_columns', array($oUserAccessManager, 'addUserColumnsHeader'), 10);
177 + add_filter('manage_users_custom_column', array($oUserAccessManager, 'addUserColumn'), 10, 3);
1409 178
1410 - function save_categorydata($category_id)
1411 - {
1412 - global $wpdb;
1413 -
1414 - $accessgroups = $_POST['accessgroups'];
1415 - $wpdb->query("DELETE FROM ".DB_ACCESSGROUP_TO_CATEGORY." WHERE category_id = $category_id");
1416 - if($accessgroups)
1417 - {
1418 - foreach($accessgroups as $accessgroup)
1419 - {
1420 - $wpdb->query("INSERT INTO ".DB_ACCESSGROUP_TO_CATEGORY." (category_id,group_id) VALUES(".$category_id.", ".$accessgroup.")");
1421 - }
1422 - }
1423 - }
1424 -
1425 - function remove_categorydata($category_id)
1426 - {
1427 - global $wpdb;
1428 -
1429 - $wpdb->query("DELETE FROM ".DB_ACCESSGROUP_TO_CATEGORY." WHERE category_id = $category_id");
1430 - }
1431 -
1432 - function get_access($post_id)
1433 - {
1434 - global $wpdb;
1435 -
1436 - $cur_id = $post_id;
1437 - $cur_post = & get_post($cur_id);
1438 - $cur_categories = get_the_category($cur_id);
1439 -
1440 - $uamOptions = $this->getAdminOptions();
1441 -
1442 -
1443 - //check categories access
1444 - foreach($cur_categories as $cur_category)
1445 - {
1446 - if($uamOptions['lock_recursive'] == 'true')
1447 - {
1448 - $cur_id = $cur_category->term_id;
1449 - while($cur_id != 0)
1450 - {
1451 - $restricted_access_by_cat = $wpdb->get_results(" SELECT *
1452 - FROM ".DB_ACCESSGROUP_TO_CATEGORY."
1453 - WHERE category_id = ".$cur_category->term_id, ARRAY_A);
1454 - if($restricted_access_by_cat)
1455 - $restricted_by_categories[] = $cur_category->term_id;
1456 -
1457 - $cur_id = $cur_category->parent;
1458 - $cur_category = get_the_category($cur_id);
1459 - }
1460 - }
1461 - elseif($uamOptions['lock_recursive'] == 'false')
1462 - {
1463 - $restricted_access_by_cat = $wpdb->get_results(" SELECT *
1464 - FROM ".DB_ACCESSGROUP_TO_CATEGORY."
1465 - WHERE category_id = ".$cur_category->term_id, ARRAY_A);
1466 - if($restricted_access_by_cat)
1467 - $restricted_by_categories[] = $cur_category->term_id;
1468 - }
1469 - }
179 + add_filter('manage_edit-category_columns', array($oUserAccessManager, 'addCategoryColumnsHeader'));
180 + add_filter('manage_category_custom_column', array($oUserAccessManager, 'addCategoryColumn'), 10, 3);
181 + }
1470 182
1471 - //check posts access
1472 - if($uamOptions['lock_recursive'] == 'true')
1473 - {
1474 - $cur_id = $cur_post->ID;
1475 - while($cur_id != 0)
1476 - {
1477 - $restricted_access_by_post = $wpdb->get_results(" SELECT *
1478 - FROM ".DB_ACCESSGROUP_TO_POST."
1479 - WHERE post_id = ".$cur_post->ID, ARRAY_A);
1480 - if($restricted_access_by_post)
1481 - $restricted_by_posts[] = $cur_post->ID;
1482 -
1483 - $cur_id = $cur_post->post_parent;
1484 - $cur_post = & get_post($cur_id);
1485 - }
1486 - }
1487 - elseif($uamOptions['lock_recursive'] == 'false')
1488 - {
1489 - if( $cur_post->post_type != 'attachment')
1490 - {
1491 - $restricted_access_by_post = $wpdb->get_results(" SELECT *
1492 - FROM ".DB_ACCESSGROUP_TO_POST."
1493 - WHERE post_id = ".$cur_post->ID, ARRAY_A);
1494 - }
1495 - else
1496 - {
1497 - $restricted_access_by_post = $wpdb->get_results(" SELECT *
1498 - FROM ".DB_ACCESSGROUP_TO_POST."
1499 - WHERE post_id = ".$cur_post->post_parent, ARRAY_A);
1500 - }
1501 - if($restricted_access_by_post)
1502 - $restricted_by_posts[] = $cur_post->ID;
1503 - }
1504 -
1505 - $access->restricted_by_categories = $restricted_by_categories;
1506 - $access->restricted_by_posts = $restricted_by_posts;
1507 -
1508 - return $access;
1509 - }
1510 -
1511 - function check_access($post_id = null)
1512 - {
1513 - global $wpdb, $current_user;
1514 -
1515 - $access = $this->get_access($post_id);
1516 -
1517 - if($access->restricted_by_posts || $access->restricted_by_categories)
1518 - {
1519 - if(is_user_logged_in())
1520 - {
1521 - $cur_userdata = get_userdata($current_user->ID);
1522 -
1523 - if($cur_userdata->wp_capabilities['administrator'] != 1)
1524 - {
1525 - if($access->restricted_by_categories)
1526 - {
1527 - foreach($access->restricted_by_categories as $cur_cat_id)
1528 - {
1529 - $user_access = $wpdb->get_results(" SELECT *
1530 - FROM ".DB_ACCESSGROUP_TO_CATEGORY." atc, ".DB_ACCESSGROUP_TO_USER." atu
1531 - WHERE atc.category_id = ".$cur_cat_id."
1532 - AND atc.group_id = atu.group_id
1533 - AND atu.user_id = ".$current_user->ID, ARRAY_A);
1534 - if($user_access)
1535 - return true;
1536 -
1537 - $access_roles = $wpdb->get_results("SELECT atr.role_name
1538 - FROM ".DB_ACCESSGROUP_TO_CATEGORY." atc, ".DB_ACCESSGROUP_TO_ROLE." atr
1539 - WHERE atc.category_id = ".$cur_cat_id."
1540 - AND atc.group_id = atr.group_id", ARRAY_A);
1541 -
1542 - if($access_roles)
1543 - {
1544 - foreach($access_roles as $access_role)
1545 - {
1546 - if($cur_userdata->wp_capabilities[$access_role['role_name']] == 1)
1547 - return true;
1548 - }
1549 - }
1550 - }
1551 - }
1552 -
1553 - if($access->restricted_by_posts)
1554 - {
1555 - foreach($access->restricted_by_posts as $cur_post_id)
1556 - {
1557 - $user_access = $wpdb->get_results(" SELECT *
1558 - FROM ".DB_ACCESSGROUP_TO_POST." atp, ".DB_ACCESSGROUP_TO_USER." atu
1559 - WHERE atp.post_id = ".$cur_post_id."
1560 - AND atp.group_id = atu.group_id
1561 - AND atu.user_id = ".$current_user->ID, ARRAY_A);
1562 - if($user_access)
1563 - return true;
1564 -
1565 - $access_roles = $wpdb->get_results("SELECT atr.role_name
1566 - FROM ".DB_ACCESSGROUP_TO_POST." atp, ".DB_ACCESSGROUP_TO_ROLE." atr
1567 - WHERE atp.post_id = ".$cur_post_id."
1568 - AND atp.group_id = atr.group_id", ARRAY_A);
1569 - if($access_roles)
1570 - {
1571 - foreach($access_roles as $access_role)
1572 - {
1573 - if($cur_userdata->wp_capabilities[$access_role['role_name']] == 1)
1574 - return true;
1575 - }
1576 - }
1577 - }
1578 - }
1579 -
1580 - if(!$user_access)
1581 - return false;
1582 - }
1583 - else
1584 - {
1585 - return true;
1586 - }
1587 - }
1588 - else
1589 - {
1590 - return false;
1591 - }
1592 - }
1593 - else
1594 - {
1595 - return true;
1596 - }
1597 - }
1598 -
1599 - function show_post($posts = array())
1600 - {
1601 - $no_posts = count($posts);
1602 - $uamOptions = $this->getAdminOptions();
1603 -
1604 - for($i=0; $i < $no_posts; $i++)
1605 - {
1606 - if( ($uamOptions['hide_post'] == 'true' && $posts[$i]->post_type == "post") || ($uamOptions['hide_page'] == 'true' && $posts[$i]->post_type == "page") )
1607 - {
1608 - if($this->check_access($posts[$i]->ID))
1609 - {
1610 - $posts[$i]->post_title .= $this->admin_output($posts[$i]->ID);
1611 - $show_posts[] = $posts[$i];
1612 - }
1613 - }
1614 - else
1615 - {
1616 - if(!$this->check_access($posts[$i]->ID))
1617 - {
1618 - if($posts[$i]->post_type == "post")
1619 - {
1620 - if($uamOptions['hide_post_title'] == 'true')
1621 - $posts[$i]->post_title = $uamOptions['post_title'];
1622 -
1623 - $posts[$i]->post_content = $uamOptions['post_content'];
1624 - }
1625 - elseif($posts[$i]->post_type == "page")
1626 - {
1627 - if($uamOptions['hide_page_title'] == 'true')
1628 - $posts[$i]->post_title = $uamOptions['page_title'];
1629 -
1630 - $posts[$i]->post_content = $uamOptions['page_content'];
1631 - }
1632 - }
1633 - $posts[$i]->post_title .= $this->admin_output($posts[$i]->ID);
1634 - $show_posts[] = $posts[$i];
1635 - }
1636 -
1637 - }
1638 -
1639 - $posts = $show_posts;
1640 -
1641 - return $posts;
1642 - }
1643 -
1644 - function show_page($pages = array())
1645 - {
1646 - $no_pages = count($pages);
1647 - $uamOptions = $this->getAdminOptions();
1648 -
1649 - for($i=0; $i < $no_pages; $i++)
1650 - {
1651 - if($uamOptions['hide_page'] == 'true')
1652 - {
1653 - if($this->check_access($pages[$i]->ID))
1654 - {
1655 - $pages[$i]->post_title .= $this->admin_output($pages[$i]->ID);
1656 - $show_pages[] = $pages[$i];
1657 - }
1658 - }
1659 - else
1660 - {
1661 - if(!$this->check_access($pages[$i]->ID))
1662 - {
1663 - if($uamOptions['hide_page_title'] == 'true')
1664 - $pages[$i]->post_title = $uamOptions['page_title'];
1665 -
1666 - $pages[$i]->post_content = $uamOptions['page_content'];
1667 - }
1668 - $pages[$i]->post_title .= $this->admin_output($pages[$i]->ID);
1669 - $show_pages[] = $pages[$i];
1670 - }
1671 -
1672 - }
1673 -
1674 - $pages = $show_pages;
1675 -
1676 - return $pages;
1677 - }
1678 -
1679 - function show_category($categories)
1680 - {
1681 - if(!$this->atAdminPanel)
1682 - {
1683 - $uamOptions = $this->getAdminOptions();
1684 - if($uamOptions['hide_post'] == 'true' || $uamOptions['hide_page'] == 'true')
1685 - {
1686 - $args = array( 'numberposts' => -1);
1687 - $posts = get_posts($args);
1688 -
1689 - foreach($categories as $category)
1690 - {
1691 - $count = 0;
1692 -
1693 - if($posts)
1694 - {
1695 - foreach($posts as $cur_post)
1696 - {
1697 - $post_cat_ids = array();
1698 - $post_cats = get_the_category($cur_post->ID);
1699 - foreach($post_cats as $post_cat)
1700 - {
1701 - $post_cat_ids[] = $post_cat->term_id;
1702 - }
1703 -
1704 - if(in_array($category->term_id, $post_cat_ids) )
1705 - {
1706 - if( ($uamOptions['hide_post'] == 'true' && $cur_post->post_type == "post") || ($uamOptions['hide_page'] == 'true' && $cur_post->post_type == "page") )
1707 - {
1708 - if($this->check_access($cur_post->ID))
1709 - $count++;
1710 - }
1711 - else
1712 - {
1713 - $count++;
1714 - }
1715 - }
1716 - }
1717 - }
1718 -
1719 - if($count != 0)
1720 - {
1721 - $category->count = $count;
1722 - $show_categories[] = $category;
1723 - }
1724 -
1725 - $categories = $show_categories;
1726 - }
1727 - }
1728 - }
1729 -
1730 - return $categories;
1731 - }
1732 -
1733 - function show_next_previous_post($sql)
1734 - {
1735 - $uamOptions = $this->getAdminOptions();
1736 - //if($uamOptions['hide_post'] == 'true')
1737 - //{
1738 - $posts = get_posts();
1739 - foreach($posts as $post)
1740 - {
1741 - if(!$this->check_access($post->ID))
1742 - $excluded_posts[] = $post->ID;
1743 - }
1744 - if($excluded_posts)
1745 - {
1746 - $excluded_posts_str = implode(",", $excluded_posts);
1747 - $sql .= "AND ID NOT IN($excluded_posts_str)";
1748 - }
1749 - //}
1750 - return $sql;
1751 - }
1752 -
1753 - function admin_output($post_id)
1754 - {
1755 - if(!$this->atAdminPanel)
1756 - {
1757 - global $current_user;
1758 - $cur_userdata = get_userdata($current_user->ID);
1759 -
1760 - $access = $this->get_access($post_id);
1761 - if($cur_userdata->wp_capabilities['administrator'] == 1 && ($access->restricted_by_posts || $access->restricted_by_categories))
1762 - {
1763 - $output = "&nbsp;[L]";
1764 - }
1765 - return $output;
1766 - }
1767 - }
1768 -
1769 - function redirect_user()
1770 - {
1771 - global $wp_query;
1772 -
1773 - if(!$this->check_access() && $uamOptions['redirect'] != 'false')
1774 - {
1775 - $uamOptions = $this->getAdminOptions();
1776 -
1777 - if($uamOptions['redirect'] == 'blog' || $uamOptions['redirect'] == 'custom_page')
1778 - {
1779 - $host = $_SERVER['HTTP_HOST'];
1780 - $uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
1781 -
1782 - if($uamOptions['redirect'] == 'blog')
1783 - $extra = '';
1784 - elseif($uamOptions['redirect'] == 'custom_page')
1785 - $extra = $uamOptions['redirect_custom_page'];
1786 -
1787 - $url = "http://".$host.$uri."/".$extra;
1788 - }
1789 - elseif( $uamOptions['redirect'] == 'custom_url')
1790 - {
1791 - $url = $uamOptions['redirect_custom_url'];
1792 - }
1793 -
1794 -
1795 - $cur_posts = $wp_query->get_posts();
183 + if ($aUamOptions['lock_file'] == 'true') {
184 + add_action('media_meta', array($oUserAccessManager, 'showMediaFile'), 10, 2);
185 + add_filter('manage_media_columns', array($oUserAccessManager, 'addPostColumnsHeader'));
186 + }
187 + }
1796 188
1797 - $post_to_show = false;
1798 -
1799 - foreach($cur_posts as $cur_post)
1800 - {
1801 - if($this->check_access())
1802 - {
1803 - $post_to_show = true;
1804 - break;
1805 - }
1806 - }
1807 -
1808 - if($url != "http://".$_SERVER['HTTP_HOST'].$_SERVER["REQUEST_URI"] && !$post_to_show)
1809 - {
1810 - header("Location: $url");
1811 - exit;
1812 - }
1813 - }
1814 - elseif(isset($_GET['getfile']))
1815 - {
1816 - $cur_id = $_GET['getfile'];
1817 - $cur_post = & get_post($cur_id);
1818 -
1819 - if ($cur_post->post_type == 'attachment' && $this->check_access($cur_post->ID))
1820 - {
1821 - $file = str_replace("http://".$_SERVER['HTTP_HOST']."/", "", $cur_post->guid);
1822 - $filename = basename($file);
1823 -
1824 - if (file_exists($file))
1825 - {
1826 - $len = filesize($file);
1827 - header('content-type: '.$cur_post->post_mime_type);
1828 - header('content-length: '.$len);
1829 - header('content-disposition: attachment; filename='.basename($file));
1830 -
1831 - if($uamOptions['download_type'] == 'fopen')
1832 - {
1833 - $fp=fopen($file, 'rb');
1834 -
1835 - while ( ! feof($fp) )
1836 - {
1837 - set_time_limit(30);
1838 - $buffer = fread($fp, 1024);
1839 - echo $buffer;
1840 - }
1841 - exit;
1842 - }
1843 - else
1844 - {
1845 - readfile($file);
1846 - exit;
1847 - }
1848 - }
1849 - else
1850 - {
1851 - echo 'Error: File not found';
1852 - }
1853 - }
1854 - }
1855 - }
1856 -
1857 - function get_file($URL, $ID)
1858 - {
1859 - $uamOptions = $this->getAdminOptions();
1860 -
1861 - if($uamOptions['lock_file'] == 'true')
1862 - {
1863 - $cur_id = $ID;
1864 - $cur_post = & get_post($cur_id);
1865 - $cur_parent_id = $cur_post->post_parent;
1866 - $cur_parent = & get_post($cur_parent_id);
1867 -
1868 - $type = explode("/", $cur_post->post_mime_type);
1869 - $type = $type[1];
1870 -
1871 -
1872 -
1873 - $file_types = $uamOptions['locked_file_types'];
1874 - $file_types = explode(",", $file_types);
1875 -
1876 - if(in_array($type, $file_types))
1877 - {
1878 - if(strpos($cur_parent->guid, "?"))
1879 - $char = "&";
1880 - else
1881 - $char = "?";
1882 -
1883 - $URL = $cur_parent->guid.$char.'getfile='.$cur_post->ID;
1884 - }
1885 - }
1886 - return $URL;
1887 - }
1888 - }
1889 -}
1890 -
1891 -if (class_exists("UserAccessManager"))
1892 -{
1893 - $userAccessManager = new UserAccessManager();
189 + //Clean up at deleting should always be done.
190 + if (function_exists('add_action')) {
191 + add_action('update_option_permalink_structure', array($oUserAccessManager, 'updatePermalink'));
192 + add_action('wp_dashboard_setup', array($oUserAccessManager, 'setupAdminDashboard'));
193 + add_action('delete_post', array($oUserAccessManager, 'removePostData'));
194 + add_action('delete_attachment', array($oUserAccessManager, 'removePostData'));
195 + add_action('delete_user', array($oUserAccessManager, 'removeUserData'));
196 + add_action('delete_category', array($oUserAccessManager, 'removeCategoryData'), 10, 2);
197 +
198 + // taxonomies
199 +
200 + foreach ($aTaxonomies as $sTaxonomy) {
201 + add_action('delete_'.$sTaxonomy, array($oUserAccessManager, 'removeCategoryData'));
202 + }
203 + }
204 +
205 + $oUserAccessManager->noRightsToEditContent();
206 + }
1894 207 }
1895 208
1896 -//Initialize the admin panel
1897 -if (!function_exists("UserAccessManager_AP")) {
1898 - function UserAccessManager_AP()
1899 - {
1900 - global $userAccessManager;
1901 -
1902 - $userAccessManager->atAdminPanel = true;
1903 -
1904 - if (!isset($userAccessManager))
1905 - {
1906 - return;
1907 - }
1908 - if (function_exists('add_menu_page'))
1909 - {
1910 - add_menu_page('User Access Manager', 'Access Manager', 9, 'uam_usergroup', array(&$userAccessManager, 'printAdminPage'));
1911 - }
1912 - if (function_exists('add_submenu_page'))
1913 - {
1914 - add_submenu_page('uam_usergroup', TXT_MANAGE_GROUP, TXT_MANAGE_GROUP, 9, 'uam_usergroup', array(&$userAccessManager, 'printAdminPage'));
1915 - add_submenu_page('uam_usergroup', TXT_SETTING, TXT_SETTINGS, 9, 'uam_settings', array(&$userAccessManager, 'printAdminPage'));
1916 - }
1917 - if( function_exists( 'add_meta_box' ))
1918 - {
1919 - add_meta_box( 'uma_post_access', 'Access', array(&$userAccessManager, 'edit_post_content'), 'post', 'side' );
1920 - add_meta_box( 'uma_post_access', 'Access', array(&$userAccessManager, 'edit_post_content'), 'page', 'side' );
1921 - }
1922 -
1923 - //Admin actions
1924 - add_action('manage_posts_custom_column', array(&$userAccessManager, 'add_post_column'), 9, 2);
1925 - add_action('manage_pages_custom_column', array(&$userAccessManager, 'add_post_column'), 9, 2);
1926 - add_action('save_post', array(&$userAccessManager, 'save_postdata'), 9);
1927 - add_action('delete_post', array(&$userAccessManager, 'remove_postdata'), 9);
1928 -
1929 - add_action('edit_user_profile', array(&$userAccessManager, 'show_user_profile'), 9);
1930 - add_action('profile_update', array(&$userAccessManager, 'save_userdata'), 9);
1931 - add_action('delete_user', array(&$userAccessManager, 'remove_userdata'), 9);
1932 -
1933 - //add_action('edit_category_add_form_before_button', array(&$userAccessManager, 'show_cat_add_form'), 9);
1934 - add_action('edit_category_edit_form_before_button', array(&$userAccessManager, 'show_cat_edit_form'), 9);
1935 - //add_action('created_term', array(&$userAccessManager, 'save_categorydata'), 9);
1936 - add_action('edit_category', array(&$userAccessManager, 'save_categorydata'), 9);
1937 - add_action('delete_category', array(&$userAccessManager, 'remove_categorydata'), 9);
1938 -
1939 - //Admin filters
1940 - add_filter('manage_posts_columns', array(&$userAccessManager, 'add_post_columns_header'), 9);
1941 - add_filter('manage_pages_columns', array(&$userAccessManager, 'add_post_columns_header'), 9);
1942 - add_filter('manage_users_columns', array(&$userAccessManager, 'add_user_columns_header'), 10);
1943 - add_filter('manage_users_custom_column', array(&$userAccessManager, 'add_user_column'), 10, 2);
1944 - add_filter('manage_categories_columns', array(&$userAccessManager, 'add_category_columns_header'), 9);
1945 - add_filter('manage_categories_custom_column', array(&$userAccessManager, 'add_category_column'), 10, 2);
1946 - }
209 +if (!function_exists("userAccessManagerAPMenu")) {
210 + /**
211 + * Creates the menu at the admin panel
212 + *
213 + * @return null;
214 + */
215 + function userAccessManagerAPMenu()
216 + {
217 + global $oUserAccessManager;
218 + $oCurrentUser = $oUserAccessManager->getCurrentUser();
219 +
220 + if (!isset($oUserAccessManager)) {
221 + return;
222 + }
223 +
224 + $aUamOptions = $oUserAccessManager->getAdminOptions();
225 +
226 + if (ini_get('safe_mode')
227 + && $aUamOptions['download_type'] == 'fopen'
228 + ) {
229 + add_action(
230 + 'admin_notices',
231 + create_function(
232 + '',
233 + 'echo \'<div id="message" class="error"><p><strong>'.
234 + TXT_UAM_FOPEN_WITHOUT_SAVEMODE_OFF.
235 + '</strong></p></div>\';'
236 + )
237 + );
238 + }
239 +
240 + $oCurUserData = get_userdata($oCurrentUser->ID);
241 + $oUamAccessHandler = $oUserAccessManager->getAccessHandler();
242 +
243 + if ($oUamAccessHandler->checkUserAccess()) {
244 + //TODO
245 + /**
246 + * --- BOF ---
247 + * Not the best way to handle full user access capabilities seems
248 + * to be the right way, but it is way difficult.
249 + */
250 +
251 + //Admin main menu
252 + if (function_exists('add_menu_page')) {
253 + add_menu_page('User Access Manager', 'UAM', 'read', 'uam_usergroup', array($oUserAccessManager, 'printAdminPage'), 'div');
254 + }
255 +
256 + //Admin sub menus
257 + if (function_exists('add_submenu_page')) {
258 + add_submenu_page('uam_usergroup', TXT_UAM_MANAGE_GROUP, TXT_UAM_MANAGE_GROUP, 'read', 'uam_usergroup', array($oUserAccessManager, 'printAdminPage'));
259 + add_submenu_page('uam_usergroup', TXT_UAM_SETTINGS, TXT_UAM_SETTINGS, 'read', 'uam_settings', array($oUserAccessManager, 'printAdminPage'));
260 + add_submenu_page('uam_usergroup', TXT_UAM_SETUP, TXT_UAM_SETUP, 'read', 'uam_setup', array($oUserAccessManager, 'printAdminPage'));
261 + add_submenu_page('uam_usergroup', TXT_UAM_ABOUT, TXT_UAM_ABOUT, 'read', 'uam_about', array($oUserAccessManager, 'printAdminPage'));
262 +
263 + do_action('uam_add_submenu');
264 + }
265 + /**
266 + * --- EOF ---
267 + */
268 + }
269 +
270 + if ($oUamAccessHandler->checkUserAccess()
271 + || $aUamOptions['authors_can_add_posts_to_groups'] == 'true'
272 + ) {
273 + //Admin meta boxes
274 + if (function_exists('add_meta_box')) {
275 + $aPostableTypes = $oUamAccessHandler->getPostableTypes();
276 +
277 + foreach ($aPostableTypes as $sPostableType) {
278 + add_meta_box('uma_post_access', 'Access', array($oUserAccessManager, 'editPostContent'), $sPostableType, 'side');
279 + }
280 +
281 + /*add_meta_box('uma_post_access', 'Access', array($oUserAccessManager, 'editPostContent'), 'post', 'side');
282 + add_meta_box('uma_post_access', 'Access', array($oUserAccessManager, 'editPostContent'), 'page', 'side');*/
283 + }
284 + }
285 + }
1947 286 }
1948 -
1949 -//Actions and Filters
1950 -if (isset($userAccessManager))
1951 -{
1952 - $uamOptions = $userAccessManager->getAdminOptions();
1953 -
1954 - //install
1955 - register_activation_hook(__FILE__, array(&$userAccessManager, 'install'));
1956 - if(function_exists('register_uninstall_hook'))
1957 - register_uninstall_hook(__FILE__, array(&$userAccessManager, 'uninstall'));
1958 - elseif(function_exists('register_deactivation_hook'))
1959 - register_deactivation_hook(__FILE__, array(&$userAccessManager, 'uninstall'));
1960 -
1961 - //Actions
1962 - add_action('admin_menu', 'UserAccessManager_AP');
1963 287
1964 - add_action('wp_head', array(&$userAccessManager, 'add_head_content'), 1);
1965 -
1966 - if($uamOptions['redirect'] != 'false' || isset($_GET['getfile']))
1967 - add_action('template_redirect', array(&$userAccessManager, 'redirect_user'), 1);
1968 -
1969 - //Filters
1970 - add_filter('wp_get_attachment_url', array(&$userAccessManager, 'get_file'), 1, 2);
1971 - add_filter('the_posts', array(&$userAccessManager, 'show_post'), 1);
1972 - add_filter('get_pages', array(&$userAccessManager, 'show_page'), 1);
1973 - add_filter('get_terms', array(&$userAccessManager, 'show_category'), 1);
1974 - add_filter('get_next_post_where', array(&$userAccessManager, 'show_next_previous_post'), 1);
1975 - add_filter('get_previous_post_where', array(&$userAccessManager, 'show_next_previous_post'), 1);
1976 -}
1977 -
1978 -?>
288 +if (!function_exists("userAccessManagerUninstall")) {
289 + function userAccessManagerUninstall() {
290 + $oUserAccessManager = new UserAccessManager();
291 + $oUserAccessManager->uninstall();
292 + }
293 +}
294 +
295 +if (isset($oUserAccessManager)) {
296 + //install
297 + if (function_exists('register_activation_hook')) {
298 + register_activation_hook(__FILE__, array($oUserAccessManager, 'install'));
299 + }
300 +
301 + //uninstall
302 + if (function_exists('register_uninstall_hook')) {
303 + register_uninstall_hook(__FILE__, 'userAccessManagerUninstall');
304 + } elseif (function_exists('register_deactivation_hook')) {
305 + //Fallback
306 + register_deactivation_hook(__FILE__, array($oUserAccessManager, 'uninstall'));
307 + }
308 +
309 + //deactivation
310 + if (function_exists('register_deactivation_hook')) {
311 + register_deactivation_hook(__FILE__, array($oUserAccessManager, 'deactivate'));
312 + }
313 +
314 + //Redirect
315 + $aUamOptions = $oUserAccessManager->getAdminOptions();
316 +
317 + if ($aUamOptions['redirect'] != 'false' || isset($_GET['uamgetfile'])) {
318 + add_filter('wp_headers', array($oUserAccessManager, 'redirect'), 10, 2);
319 + }
320 +
321 + //Actions
322 + if (function_exists('add_action')) {
323 + add_action('wp_print_scripts', array($oUserAccessManager, 'addScripts'));
324 + add_action('wp_print_styles', array($oUserAccessManager, 'addStyles'));
325 + add_action('admin_init', 'userAccessManagerAP');
326 + add_action('admin_menu', 'userAccessManagerAPMenu');
327 + }
328 +
329 + //Filters
330 + if (function_exists('add_filter')) {
331 + add_filter('wp_get_attachment_thumb_url', array($oUserAccessManager, 'getFileUrl'), 10, 2);
332 + add_filter('wp_get_attachment_url', array($oUserAccessManager, 'getFileUrl'), 10, 2);
333 + add_filter('the_posts', array($oUserAccessManager, 'showPost'));
334 + add_filter('posts_where_paged', array($oUserAccessManager, 'showPostSql'));
335 + add_filter('wp_get_nav_menu_items', array($oUserAccessManager, 'showCustomMenu'));
336 + add_filter('comments_array', array($oUserAccessManager, 'showComment'));
337 + add_filter('the_comments', array($oUserAccessManager, 'showComment'));
338 + add_filter('get_pages', array($oUserAccessManager, 'showPage'));
339 + add_filter('get_terms', array($oUserAccessManager, 'showTerms'), 10, 2);
340 + add_filter('get_next_post_where', array($oUserAccessManager, 'showNextPreviousPost'));
341 + add_filter('get_previous_post_where', array($oUserAccessManager, 'showNextPreviousPost'));
342 + add_filter('post_link', array($oUserAccessManager, 'cachePostLinks'), 10, 2);
343 + add_filter('edit_post_link', array($oUserAccessManager, 'showGroupMembership'), 10, 2);
344 + add_filter('parse_query', array($oUserAccessManager, 'parseQuery'));
345 + add_filter('getarchives_where', array($oUserAccessManager, 'showPostSql'));
346 + }
347 +}
348 +
349 +//Add the cli interface to the known commands
350 +if (defined('WP_CLI') && WP_CLI) {
351 + include __DIR__.'/includes/wp-cli.php';
352 +}