PluginProbe
User Access Manager / 2.2.3
User Access Manager v2.2.3
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 +50 -226 1.02.2.3 View file →
@@ -1,251 +1,75 @@
1 1 <?php
2 -
3 2 /**
4 3 * 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
4 + * Plugin URI: https://wordpress.org/plugins/user-access-manager/
5 + * Author URI: https://twitter.com/GM_Alex
6 + * Version: 2.2.3
8 7 * Author: Alexander Schneider
9 8 * Description: Manage the access to your posts, pages, categories and files.
10 - *
9 + * Text Domain: user-access-manager
10 + *
11 11 * user-access-manager.php
12 12 *
13 + * The the user access manager main file.
14 + *
13 15 * PHP versions 5
14 - *
15 - * @category UserAccessManager
16 - * @package UserAccessManager
16 + *
17 17 * @author Alexander Schneider <alexanderschneider85@gmail.com>
18 - * @copyright 2008-2010 Alexander Schneider
18 + * @copyright 2008-2017 Alexander Schneider
19 19 * @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2
20 - * @version SVN: $Id$
20 + * @version SVN: $id$
21 21 * @link http://wordpress.org/extend/plugins/user-access-manager/
22 -*/
22 + */
23 23
24 -//Paths
24 +$basePath = __DIR__.DIRECTORY_SEPARATOR;
25 +//Load language
26 +require_once $basePath.'includes'.DIRECTORY_SEPARATOR.'language.php';
27 +$locale = apply_filters('plugin_locale', get_locale(), 'user-access-manager');
28 +load_textdomain(
29 + 'user-access-manager',
30 + WP_LANG_DIR.DIRECTORY_SEPARATOR.'user-access-manager'.DIRECTORY_SEPARATOR.'user-access-manager-'.$locale.'.mo'
31 +);
25 32 load_plugin_textdomain(
26 - 'user-access-manager',
27 - false,
28 - 'user-access-manager/lang'
33 + 'user-access-manager',
34 + false,
35 + plugin_basename(dirname(__FILE__)).DIRECTORY_SEPARATOR.'languages'
29 36 );
30 37
31 -define(
32 - 'UAM_URLPATH',
33 - WP_PLUGIN_URL.'/user-access-manager/'
34 -);
38 +//--- Check requirements ---
35 39
36 -if (defined('UAM_LOCAL_DEBUG')) {
37 - //ONLY FOR MY LOCAL DEBUG
38 - define(
39 - 'UAM_REALPATH',
40 - '/'.plugin_basename(dirname(__FILE__)).'/'
40 +//Check php version
41 +if (version_compare(phpversion(), '7.3') === -1) {
42 + add_action(
43 + 'admin_notices',
44 + function () {
45 + echo '<div id="message" class="error"><p><strong>'
46 + .sprintf(TXT_UAM_PHP_VERSION_TO_LOW, phpversion())
47 + .'</strong></p></div>';
48 + }
41 49 );
42 -} else {
43 - define(
44 - 'UAM_REALPATH',
45 - WP_PLUGIN_DIR.'/'.plugin_basename(dirname(__FILE__)).'/'
46 - );
50 +
51 + return;
47 52 }
48 53
49 -//Defines
50 -require_once 'includes/database.define.php';
51 -require_once 'includes/language.define.php';
54 +//Check wordpress version
55 +global $wp_version;
52 56
53 -//Classes
54 -require_once 'class/UserAccessManager.class.php';
55 -require_once 'class/UamUserGroup.class.php';
56 -require_once 'class/UamAccessHandler.class.php';
57 -
58 -if (class_exists("UserAccessManager")) {
59 - $userAccessManager = new UserAccessManager();
60 -}
61 -
62 -//Initialize the admin panel
63 -if (!function_exists("userAccessManagerAP")) {
64 - /**
65 - * Creates the filters and actions for the admin panel
66 - *
67 - * @return null;
68 - */
69 - function userAccessManagerAP()
70 - {
71 - global $userAccessManager,
72 - $uamUserGroup,
73 - $uamAccessHandler,
74 - $current_user;
75 -
76 - if (!isset($userAccessManager)) {
77 - return;
57 +if (version_compare($wp_version, '4.6') === -1) {
58 + add_action(
59 + 'admin_notices',
60 + function () use ($wp_version) {
61 + echo '<div id="message" class="error"><p><strong>'
62 + .sprintf(TXT_UAM_WORDPRESS_VERSION_TO_LOW, $wp_version)
63 + .'</strong></p></div>';
78 64 }
79 -
80 - $userAccessManager->atAdminPanel = true;
81 - $uamOptions = $userAccessManager->getAdminOptions();
82 - $userAccessManager->update();
83 -
84 - get_currentuserinfo();
85 - $curUserdata = get_userdata($current_user->ID);
86 -
87 - if ($userAccessManager->getAccessHandler()->checkUserAccess()
88 - || $uamOptions['authors_can_add_posts_to_groups'] == 'true'
89 - ) {
90 - //Admin actions
91 - if (function_exists('add_action')) {
92 - add_action('admin_print_styles', array(&$userAccessManager, 'addStyles'));
93 - add_action('wp_print_scripts', array(&$userAccessManager, 'addScripts'));
94 -
95 - add_action('manage_posts_custom_column', array(&$userAccessManager, 'addPostColumn'), 10, 2);
96 - add_action('manage_pages_custom_column', array(&$userAccessManager, 'addPostColumn'), 10, 2);
97 - add_action('save_post', array(&$userAccessManager, 'savePostData'));
98 -
99 - add_action('manage_media_custom_column', array(&$userAccessManager, 'addPostColumn'), 10, 2);
100 -
101 - //Actions are only called when the attachment content is modified so we can't use it.
102 - //add_action('add_attachment', array(&$userAccessManager, 'savePostData'));
103 - //add_action('edit_attachment', array(&$userAccessManager, 'savePostData'));
104 -
105 - add_action('edit_user_profile', array(&$userAccessManager, 'showUserProfile'));
106 - add_action('profile_update', array(&$userAccessManager, 'saveUserData'));
107 -
108 - add_action('edit_category_form', array(&$userAccessManager, 'showCategoryEditForm'));
109 - add_action('create_category', array(&$userAccessManager, 'saveCategoryData'));
110 - add_action('edit_category', array(&$userAccessManager, 'saveCategoryData'));
111 - }
112 -
113 - //Admin filters
114 - if (function_exists('add_filter')) {
115 - //The filter we use instead of add|edit_attachment action, reason see top
116 - add_filter('attachment_fields_to_save', array(&$userAccessManager, 'saveAttachmentData'));
117 -
118 - add_filter('manage_posts_columns', array(&$userAccessManager, 'addPostColumnsHeader'));
119 - add_filter('manage_pages_columns', array(&$userAccessManager, 'addPostColumnsHeader'));
120 -
121 - add_filter('manage_users_columns', array(&$userAccessManager, 'addUserColumnsHeader'), 10);
122 - add_filter('manage_users_custom_column', array(&$userAccessManager, 'addUserColumn'), 10, 3);
123 -
124 - add_filter('manage_edit-category_columns', array(&$userAccessManager, 'addCategoryColumnsHeader'));
125 - add_filter('manage_category_custom_column', array(&$userAccessManager, 'addCategoryColumn'), 10, 3);
126 - }
127 -
128 - if ($uamOptions['lock_file'] == 'true') {
129 - add_action('media_meta', array(&$userAccessManager, 'showMediaFile'), 10, 2);
130 - add_filter('manage_media_columns', array(&$userAccessManager, 'addPostColumnsHeader'));
131 - }
132 - }
133 -
134 - //Clean up at deleting should be always done.
135 - if (function_exists('add_action')) {
136 - add_action('update_option_permalink_structure', array(&$userAccessManager, 'updatePermalink'));
137 - add_action('wp_dashboard_setup', array(&$userAccessManager, 'setupAdminDashboard'));
138 - add_action('delete_post', array(&$userAccessManager, 'removePostData'));
139 - add_action('delete_attachment', array(&$userAccessManager, 'removePostData'));
140 - add_action('delete_user', array(&$userAccessManager, 'removeUserData'));
141 - add_action('delete_category', array(&$userAccessManager, 'removeCategoryData'), 10, 2);
142 - }
143 -
144 - $userAccessManager->noRightsToEditContent();
145 - }
146 -}
65 + );
147 66
148 -if (!function_exists("userAccessManagerAPMenu")) {
149 - /**
150 - * Creates the menu at the admin panel
151 - *
152 - * @return null;
153 - */
154 - function userAccessManagerAPMenu()
155 - {
156 - global $userAccessManager,
157 - $current_user;
158 -
159 - if (!isset($userAccessManager)) {
160 - return;
161 - }
162 -
163 - $uamOptions = $userAccessManager->getAdminOptions();
164 - $curUserdata = get_userdata($current_user->ID);
165 -
166 - if ($userAccessManager->getAccessHandler()->checkUserAccess()) {
167 - //TODO
168 - /**
169 - * --- BOF ---
170 - * Not the best way to handle full user access capabilities seems
171 - * to be the right way, but it is way difficult.
172 - */
173 -
174 - //Admin main menu
175 - if (function_exists('add_menu_page')) {
176 - add_menu_page('User Access Manager', 'UAM', 'read', 'uam_usergroup', array(&$userAccessManager, 'printAdminPage'), 'div');
177 - }
178 -
179 - //Admin sub menus
180 - if (function_exists('add_submenu_page')) {
181 - add_submenu_page('uam_usergroup', TXT_MANAGE_GROUP, TXT_MANAGE_GROUP, 'read', 'uam_usergroup', array(&$userAccessManager, 'printAdminPage'));
182 - add_submenu_page('uam_usergroup', TXT_SETTINGS, TXT_SETTINGS, 'read', 'uam_settings', array(&$userAccessManager, 'printAdminPage'));
183 - add_submenu_page('uam_usergroup', TXT_SETUP, TXT_SETUP, 'read', 'uam_setup', array(&$userAccessManager, 'printAdminPage'));
184 - add_submenu_page('uam_usergroup', TXT_ABOUT, TXT_ABOUT, 'read', 'uam_about', array(&$userAccessManager, 'printAdminPage'));
185 - }
186 - /**
187 - * --- EOF ---
188 - */
189 - }
190 -
191 - if ($userAccessManager->getAccessHandler()->checkUserAccess()
192 - || $uamOptions['authors_can_add_posts_to_groups'] == 'true'
193 - ) {
194 - //Admin meta boxes
195 - if (function_exists('add_meta_box')) {
196 - add_meta_box('uma_post_access', 'Access', array(&$userAccessManager, 'editPostContent'), 'post', 'side');
197 - add_meta_box('uma_post_access', 'Access', array(&$userAccessManager, 'editPostContent'), 'page', 'side');
198 - }
199 - }
200 - }
67 + return;
201 68 }
202 69
203 -if (isset($userAccessManager)) {
204 - //install
205 - if (function_exists('register_activation_hook')) {
206 - register_activation_hook(__FILE__, array(&$userAccessManager, 'install'));
207 - }
208 -
209 - //uninstall
210 - if (function_exists('register_uninstall_hook')) {
211 - register_uninstall_hook(__FILE__, array(&$userAccessManager, 'uninstall'));
212 - } elseif (function_exists('register_deactivation_hook')) {
213 - //Fallback
214 - register_deactivation_hook(__FILE__, array(&$userAccessManager, 'uninstall'));
215 - }
216 -
217 - //deactivation
218 - if (function_exists('register_deactivation_hook')) {
219 - register_deactivation_hook(__FILE__, array(&$userAccessManager, 'deactivate'));
220 - }
221 -
222 - //Redirect
223 - $uamOptions = $userAccessManager->getAdminOptions();
224 -
225 - if ($uamOptions['redirect'] != 'false' || isset($_GET['getfile'])) {
226 - add_action('template_redirect', array(&$userAccessManager, 'redirect'));
227 - }
70 +//Defines
71 +require_once $basePath.'vendor/autoload.php';
72 +require_once $basePath.'init.php';
228 73
229 - //Actions
230 - if (function_exists('add_action')) {
231 - add_action('wp_print_scripts', array(&$userAccessManager, 'addScripts'));
232 - add_action('wp_print_styles', array(&$userAccessManager, 'addStyles'));
233 - add_action('admin_init', 'userAccessManagerAP');
234 - add_action('admin_menu', 'userAccessManagerAPMenu');
235 - }
236 -
237 - //Filters
238 - if (function_exists('add_filter')) {
239 - add_filter('wp_get_attachment_thumb_url', array(&$userAccessManager, 'getFileUrl'), 10, 2);
240 - add_filter('wp_get_attachment_url', array(&$userAccessManager, 'getFileUrl'), 10, 2);
241 - add_filter('the_posts', array(&$userAccessManager, 'showPost'));
242 - add_filter('wp_get_nav_menu_items', array(&$userAccessManager, 'showCustomMenu'));
243 - add_filter('comments_array', array(&$userAccessManager, 'showComment'));
244 - add_filter('get_pages', array(&$userAccessManager, 'showPage'));
245 - add_filter('get_terms', array(&$userAccessManager, 'showCategory'), 10, 2);
246 - add_filter('get_next_post_where', array(&$userAccessManager, 'showNextPreviousPost'));
247 - add_filter('get_previous_post_where', array(&$userAccessManager, 'showNextPreviousPost'));
248 - //add_filter('the_title', array(&$userAccessManager, 'showTitle'), 10, 2);
249 - add_filter('edit_post_link', array(&$userAccessManager, 'showGroupMembership'), 10, 2);
250 - }
251 -}
74 +global $userAccessManager;
75 +$userAccessManager = initUserAccessManger();