PluginProbe
User Access Manager / 2.2.25
User Access Manager v2.2.25
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 +56 -227 1.02.2.25 View file →
@@ -1,251 +1,80 @@
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.25
7 + * Requires PHP: 7.2
8 8 * Author: Alexander Schneider
9 9 * Description: Manage the access to your posts, pages, categories and files.
10 - *
10 + * Text Domain: user-access-manager
11 + *
11 12 * user-access-manager.php
12 13 *
14 + * The user access manager main file.
15 + *
13 16 * PHP versions 5
14 - *
15 - * @category UserAccessManager
16 - * @package UserAccessManager
17 + *
17 18 * @author Alexander Schneider <alexanderschneider85@gmail.com>
18 - * @copyright 2008-2010 Alexander Schneider
19 + * @copyright 2008-2017 Alexander Schneider
19 20 * @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2
20 - * @version SVN: $Id$
21 + * @version SVN: $id$
21 22 * @link http://wordpress.org/extend/plugins/user-access-manager/
22 -*/
23 + */
23 24
24 -//Paths
25 -load_plugin_textdomain(
26 - 'user-access-manager',
27 - false,
28 - 'user-access-manager/lang'
29 -);
25 +function initUam() {
26 + $basePath = __DIR__ . DIRECTORY_SEPARATOR;
30 27
31 -define(
32 - 'UAM_URLPATH',
33 - WP_PLUGIN_URL.'/user-access-manager/'
34 -);
35 -
36 -if (defined('UAM_LOCAL_DEBUG')) {
37 - //ONLY FOR MY LOCAL DEBUG
38 - define(
39 - 'UAM_REALPATH',
40 - '/'.plugin_basename(dirname(__FILE__)).'/'
28 + //Load language
29 + require_once $basePath . 'includes' . DIRECTORY_SEPARATOR . 'language.php';
30 + $locale = apply_filters('plugin_locale', get_locale(), 'user-access-manager');
31 + load_textdomain(
32 + 'user-access-manager',
33 + WP_LANG_DIR . DIRECTORY_SEPARATOR . 'user-access-manager' . DIRECTORY_SEPARATOR . 'user-access-manager-' . $locale . '.mo'
41 34 );
42 -} else {
43 - define(
44 - 'UAM_REALPATH',
45 - WP_PLUGIN_DIR.'/'.plugin_basename(dirname(__FILE__)).'/'
35 + load_plugin_textdomain(
36 + 'user-access-manager',
37 + false,
38 + plugin_basename(dirname(__FILE__)) . DIRECTORY_SEPARATOR . 'languages'
46 39 );
47 -}
48 40
49 -//Defines
50 -require_once 'includes/database.define.php';
51 -require_once 'includes/language.define.php';
41 + //--- Check requirements ---
52 42
53 -//Classes
54 -require_once 'class/UserAccessManager.class.php';
55 -require_once 'class/UamUserGroup.class.php';
56 -require_once 'class/UamAccessHandler.class.php';
43 + //Check php version
44 + if (version_compare((string)phpversion(), '7.2') === -1) {
45 + add_action(
46 + 'admin_notices',
47 + function () {
48 + echo '<div id="message" class="error"><p><strong>'
49 + . sprintf(TXT_UAM_PHP_VERSION_TO_LOW, phpversion())
50 + . '</strong></p></div>';
51 + }
52 + );
57 53
58 -if (class_exists("UserAccessManager")) {
59 - $userAccessManager = new UserAccessManager();
60 -}
54 + return;
55 + }
61 56
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;
78 - }
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'));
57 + //Check wordpress version
58 + global $wp_version;
59 +
60 + if (version_compare((string)$wp_version, '4.6') === -1) {
61 + add_action(
62 + 'admin_notices',
63 + function () use ($wp_version) {
64 + echo '<div id="message" class="error"><p><strong>'
65 + . sprintf(TXT_UAM_WORDPRESS_VERSION_TO_LOW, $wp_version)
66 + . '</strong></p></div>';
111 67 }
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();
68 + );
69 +
70 + return;
145 71 }
146 -}
147 72
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 - }
73 + //Defines
74 + require_once $basePath.'vendor/autoload.php';
75 + require_once $basePath.'init.php';
76 + global $userAccessManager;
77 + $userAccessManager = initUserAccessManger();
201 78 }
202 79
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 - }
228 -
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 -}
80 +add_action('init', 'initUam', 0);