PluginProbe
User Access Manager / 1.0 Beta
User Access Manager v1.0 Beta
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
user-access-manager / user-access-manager.php

user-access-manager.php in User Access Manager 1.0 Beta, at user-access-manager.php

216 lines 9.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * Plugin Name: User Access Manager
5 * Plugin URI: http://www.gm-alex.de/projects/wordpress/plugins/user-access-manager/
6 * Author URI: http://www.gm-alex.de/
7 * Version: 1.0 Beta
8 * Author: Alexander Schneider
9 * Description: Manage the access to your posts and pages. <strong>Note:</strong> <em> If you use already a '.htaccess' file to protect your files the plugin will <strong>overwrite</strong> the '.htaccess' file. If you activate the plugin and you have no permalinks activated your upload dir will protect by a '.htaccess' with a random password and all old media files insert in a previous post/page will not work anymore. You have to update your posts/pages (not necessary if you have permalinks activated). You can disabel the file locking and set up an other password for the '.htaccess' file at the UAM setting page.</em>
10 *
11 * user-access-manager.php
12 *
13 * PHP versions 5
14 *
15 * @category UserAccessManager
16 * @package UserAccessManager
17 * @author Alexander Schneider <alexanderschneider85@gmail.com>
18 * @copyright 2008-2010 Alexander Schneider
19 * @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2
20 * @version SVN: $Id$
21 * @link http://wordpress.org/extend/plugins/user-access-manager/
22 */
23
24 //Paths
25 define(
26 'UAM_URLPATH',
27 WP_PLUGIN_URL.'/user-access-manager/'
28 );
29
30 if (defined('UAM_LOCAL_DEBUG')) {
31 //ONLY FOR MY LOCAL DEBUG
32 define(
33 'UAM_REALPATH',
34 '/'.plugin_basename(dirname(__FILE__)).'/'
35 );
36 } else {
37 define(
38 'UAM_REALPATH',
39 WP_PLUGIN_DIR.'/'.plugin_basename(dirname(__FILE__)).'/'
40 );
41 }
42
43 //Defines
44 require_once 'includes/database.define.php';
45 require_once 'includes/language.define.php';
46
47 //Classes
48 require_once 'class/UserAccessManager.class.php';
49 require_once 'class/UamUserGroup.class.php';
50 require_once 'class/UamAccessHandler.class.php';
51
52 if (class_exists("UserAccessManager")) {
53 $userAccessManager = new UserAccessManager();
54 }
55
56 //Initialize the admin panel
57 if (!function_exists("userAccessManagerAP")) {
58 /**
59 * Creates the menu at the admin panel
60 *
61 * @return null;
62 */
63 function userAccessManagerAP()
64 {
65 global $userAccessManager,
66 $uamUserGroup,
67 $uamAccessHandler,
68 $wp_version,
69 $current_user;
70
71 if (!isset($userAccessManager)) {
72 return;
73 }
74
75 $userAccessManager->atAdminPanel = true;
76 $uamOptions = $userAccessManager->getAdminOptions();
77 $userAccessManager->update();
78
79 get_currentuserinfo();
80 $cur_userdata = get_userdata($current_user->ID);
81
82 if ($cur_userdata->user_level >= $uamOptions['full_access_level']) {
83 //TODO
84 /**
85 * --- BOF ---
86 * Not the best way to handle full user access capabilities seems
87 * to be the right way, but it is way difficult.
88 */
89
90 //Admin main menu
91 if (function_exists('add_menu_page')) {
92 add_menu_page('User Access Manager', 'UAM', 'read', 'uam_usergroup', array(&$userAccessManager, 'printAdminPage'), 'div');
93 }
94
95 //Admin sub menus
96 if (function_exists('add_submenu_page')) {
97 add_submenu_page('uam_usergroup', TXT_MANAGE_GROUP, TXT_MANAGE_GROUP, 'read', 'uam_usergroup', array(&$userAccessManager, 'printAdminPage'));
98 add_submenu_page('uam_usergroup', TXT_SETTINGS, TXT_SETTINGS, 'read', 'uam_settings', array(&$userAccessManager, 'printAdminPage'));
99 add_submenu_page('uam_usergroup', TXT_SETUP, TXT_SETUP, 'read', 'uam_setup', array(&$userAccessManager, 'printAdminPage'));
100 add_submenu_page('uam_usergroup', TXT_ABOUT, TXT_ABOUT, 'read', 'uam_about', array(&$userAccessManager, 'printAdminPage'));
101 }
102 /**
103 * --- EOF ---
104 */
105
106 //Admin meta boxes
107 if (function_exists('add_meta_box')) {
108 add_meta_box('uma_post_access', 'Access', array(&$userAccessManager, 'editPostContent'), 'post', 'side');
109 add_meta_box('uma_post_access', 'Access', array(&$userAccessManager, 'editPostContent'), 'page', 'side');
110 }
111
112 //Admin actions
113 if (function_exists('add_action')) {
114 add_action('admin_print_styles', array(&$userAccessManager, 'addStyles'));
115 add_action('wp_print_scripts', array(&$userAccessManager, 'addScripts'));
116
117 add_action('manage_posts_custom_column', array(&$userAccessManager, 'addPostColumn'), 10, 2);
118 add_action('manage_pages_custom_column', array(&$userAccessManager, 'addPostColumn'), 10, 2);
119 add_action('save_post', array(&$userAccessManager, 'savePostData'));
120
121 add_action('manage_media_custom_column', array(&$userAccessManager, 'addPostColumn'), 10, 2);
122 add_action('add_attachment', array(&$userAccessManager, 'savePostData'));
123 add_action('attachment_fields_to_save', array(&$userAccessManager, 'savePostData'));
124
125 add_action('edit_user_profile', array(&$userAccessManager, 'showUserProfile'));
126 add_action('profile_update', array(&$userAccessManager, 'saveUserData'));
127
128 add_action('edit_category_form', array(&$userAccessManager, 'showCategoryEditForm'));
129 add_action('edit_category', array(&$userAccessManager, 'saveCategoryData'));
130 }
131
132 //Admin filters
133 if (function_exists('add_filter')) {
134 add_filter('manage_posts_columns', array(&$userAccessManager, 'addPostColumnsHeader'));
135 add_filter('manage_pages_columns', array(&$userAccessManager, 'addPostColumnsHeader'));
136
137 add_filter('manage_users_columns', array(&$userAccessManager, 'addUserColumnsHeader'), 10);
138 add_filter('manage_users_custom_column', array(&$userAccessManager, 'addUserColumn'), 10, 3);
139
140 add_filter('manage_edit-category_columns', array(&$userAccessManager, 'addCategoryColumnsHeader'));
141 add_filter('manage_category_custom_column', array(&$userAccessManager, 'addCategoryColumn'), 10, 3);
142 }
143
144 if ($uamOptions['lock_file'] == 'true') {
145 add_action('media_meta', array(&$userAccessManager, 'showMediaFile'), 10, 2);
146 add_filter('manage_media_columns', array(&$userAccessManager, 'addPostColumnsHeader'));
147 }
148 }
149
150 //Clean up at deleting should be always done.
151 if (function_exists('add_action')) {
152 add_action('update_option_permalink_structure', array(&$userAccessManager, 'updatePermalink'));
153 add_action('wp_dashboard_setup', array(&$userAccessManager, 'setupAdminDashboard'));
154 add_action('delete_post', array(&$userAccessManager, 'removePostData'));
155 add_action('delete_attachment', array(&$userAccessManager, 'removePostData'));
156 add_action('delete_user', array(&$userAccessManager, 'removeUserData'));
157 add_action('delete_category', array(&$userAccessManager, 'removeCategoryData'));
158 }
159
160 $userAccessManager->noRightsToEditContent();
161 }
162 }
163
164 if (isset($userAccessManager)) {
165 load_plugin_textdomain(
166 'user-access-manager',
167 false,
168 dirname(plugin_basename(__FILE__))
169 );
170
171 //install
172 if (function_exists('register_activation_hook')) {
173 register_activation_hook(__FILE__, array(&$userAccessManager, 'install'));
174 }
175
176 //uninstall
177 if (function_exists('register_uninstall_hook')) {
178 register_uninstall_hook(__FILE__, array(&$userAccessManager, 'uninstall'));
179 } elseif (function_exists('register_deactivation_hook')) {
180 //Fallback
181 register_deactivation_hook(__FILE__, array(&$userAccessManager, 'uninstall'));
182 }
183
184 //deactivation
185 if (function_exists('register_deactivation_hook')) {
186 register_deactivation_hook(__FILE__, array(&$userAccessManager, 'deactivate'));
187 }
188
189 //Redirect
190 $uamOptions = $userAccessManager->getAdminOptions();
191
192 if ($uamOptions['redirect'] != 'false' || isset($_GET['getfile'])) {
193 add_action('template_redirect', array(&$userAccessManager, 'redirect'));
194 }
195
196 //Actions
197 if (function_exists('add_action')) {
198 add_action('wp_print_scripts', array(&$userAccessManager, 'addScripts'));
199 add_action('wp_print_styles', array(&$userAccessManager, 'addStyles'));
200 add_action('admin_menu', 'userAccessManagerAP');
201 }
202
203 //Filters
204 if (function_exists('add_filter')) {
205 add_filter('wp_get_attachment_thumb_url', array(&$userAccessManager, 'getFileUrl'), 10, 2);
206 add_filter('wp_get_attachment_url', array(&$userAccessManager, 'getFileUrl'), 10, 2);
207 add_filter('the_posts', array(&$userAccessManager, 'showPost'));
208 add_filter('comments_array', array(&$userAccessManager, 'showComment'));
209 add_filter('get_pages', array(&$userAccessManager, 'showPage'));
210 add_filter('get_terms', array(&$userAccessManager, 'showCategory'));
211 add_filter('get_next_post_where', array(&$userAccessManager, 'showNextPreviousPost'));
212 add_filter('get_previous_post_where', array(&$userAccessManager, 'showNextPreviousPost'));
213 add_filter('the_title', array(&$userAccessManager, 'showTitle'), 10, 2);
214 add_filter('posts_where', array(&$userAccessManager, 'showPostSql'));
215 }
216 }