PluginProbe
User Access Manager / 2.2.23
User Access Manager v2.2.23
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 | src/UserAccessManager.php +288 -33 2.3.132.2.23 View file →
@@ -1,5 +1,18 @@
1 1 <?php
2 +/**
3 + * UserAccessManager.php
4 + *
5 + * The UserAccessManager class file.
6 + *
7 + * PHP versions 5
8 + *
9 + * @author Alexander Schneider <alexanderschneider85@gmail.com>
10 + * @copyright 2008-2017 Alexander Schneider
11 + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2
12 + * @version SVN: $id$
13 + * @link http://wordpress.org/extend/plugins/user-access-manager/
14 + */
2 15
3 16 declare(strict_types=1);
4 17
5 18 namespace UserAccessManager;
@@ -7,10 +20,10 @@
7 20 use UserAccessManager\Access\AccessHandler;
8 21 use UserAccessManager\Cache\Cache;
9 22 use UserAccessManager\Cache\CacheProviderFactory;
10 23 use UserAccessManager\Config\ConfigFactory;
24 +use UserAccessManager\Config\MainConfig;
11 25 use UserAccessManager\Config\ConfigParameterFactory;
12 -use UserAccessManager\Config\MainConfig;
13 26 use UserAccessManager\Controller\Backend\DynamicGroupsController;
14 27 use UserAccessManager\Controller\Backend\PostObjectController;
15 28 use UserAccessManager\Controller\Backend\TermObjectController;
16 29 use UserAccessManager\Controller\Backend\UserObjectController;
@@ -21,10 +34,10 @@
21 34 use UserAccessManager\File\FileProtectionFactory;
22 35 use UserAccessManager\Object\ObjectHandler;
23 36 use UserAccessManager\ObjectMembership\ObjectMembershipHandlerFactory;
24 37 use UserAccessManager\Setup\SetupHandler;
38 +use UserAccessManager\UserGroup\UserGroupFactory;
25 39 use UserAccessManager\User\UserHandler;
26 -use UserAccessManager\UserGroup\UserGroupFactory;
27 40 use UserAccessManager\UserGroup\UserGroupHandler;
28 41 use UserAccessManager\Util\Util;
29 42 use UserAccessManager\Widget\WidgetFactory;
30 43 use UserAccessManager\Wrapper\Php;
@@ -29,139 +42,358 @@
29 42 use UserAccessManager\Widget\WidgetFactory;
30 43 use UserAccessManager\Wrapper\Php;
31 44 use UserAccessManager\Wrapper\Wordpress;
32 45
46 +/**
47 + * Class UserAccessManager
48 + *
49 + * @package UserAccessManager
50 + */
33 51 class UserAccessManager
34 52 {
35 - public const VERSION = '2.3.13';
36 - public const DB_VERSION = '1.6.2';
53 + const VERSION = '2.2.23';
54 + const DB_VERSION = '1.6.2';
37 55
56 + /**
57 + * @var Php
58 + */
59 + private $php;
60 +
61 + /**
62 + * @var Wordpress
63 + */
64 + private $wordpress;
65 +
66 + /**
67 + * @var Util
68 + */
69 + private $util;
70 +
71 + /**
72 + * @var Cache
73 + */
74 + private $cache;
75 +
76 + /**
77 + * @var MainConfig
78 + */
79 + private $config;
80 +
81 + /**
82 + * @var Database
83 + */
84 + private $database;
85 +
86 + /**
87 + * @var ObjectHandler
88 + */
89 + private $objectHandler;
90 +
91 + /**
92 + * @var UserHandler
93 + */
94 + private $userHandler;
95 +
96 + /**
97 + * @var UserGroupHandler
98 + */
99 + private $userGroupHandler;
100 +
101 + /**
102 + * @var AccessHandler
103 + */
104 + private $accessHandler;
105 +
106 + /**
107 + * @var FileHandler
108 + */
109 + private $fileHandler;
110 +
111 + /**
112 + * @var SetupHandler
113 + */
114 + private $setupHandler;
115 +
116 + /**
117 + * @var UserGroupFactory
118 + */
119 + private $userGroupFactory;
120 +
121 + /**
122 + * @var ObjectMembershipHandlerFactory
123 + */
124 + private $membershipHandlerFactory;
125 +
126 + /**
127 + * @var ControllerFactory
128 + */
129 + private $controllerFactory;
130 +
131 + /**
132 + * @var WidgetFactory
133 + */
134 + private $widgetFactory;
135 +
136 + /**
137 + * @var CacheProviderFactory
138 + */
139 + private $cacheProviderFactory;
140 +
141 + /**
142 + * @var ConfigFactory
143 + */
144 + private $configFactory;
145 +
146 + /**
147 + * @var ConfigParameterFactory
148 + */
149 + private $configParameterFactory;
150 +
151 + /**
152 + * @var FileProtectionFactory
153 + */
154 + private $fileProtectionFactory;
155 +
156 + /**
157 + * @var FileObjectFactory
158 + */
159 + private $fileObjectFactory;
160 +
161 + /**
162 + * UserAccessManager constructor.
163 + * @param Php $php
164 + * @param Wordpress $wordpress
165 + * @param Util $util
166 + * @param Cache $cache
167 + * @param MainConfig $config
168 + * @param Database $database
169 + * @param ObjectHandler $objectHandler
170 + * @param UserHandler $userHandler
171 + * @param UserGroupHandler $userGroupHandler
172 + * @param AccessHandler $accessHandler
173 + * @param FileHandler $fileHandler
174 + * @param SetupHandler $setupHandler
175 + * @param UserGroupFactory $userGroupFactory
176 + * @param ObjectMembershipHandlerFactory $membershipHandlerFactory
177 + * @param ControllerFactory $controllerFactory
178 + * @param WidgetFactory $widgetFactory
179 + * @param CacheProviderFactory $cacheProviderFactory
180 + * @param ConfigFactory $configFactory
181 + * @param ConfigParameterFactory $configParameterFactory
182 + * @param FileProtectionFactory $fileProtectionFactory
183 + * @param FileObjectFactory $fileObjectFactory
184 + */
38 185 public function __construct(
39 - private Php $php,
40 - private Wordpress $wordpress,
41 - private Util $util,
42 - private Cache $cache,
43 - private MainConfig $config,
44 - private Database $database,
45 - private ObjectHandler $objectHandler,
46 - private UserHandler $userHandler,
47 - private UserGroupHandler $userGroupHandler,
48 - private AccessHandler $accessHandler,
49 - private FileHandler $fileHandler,
50 - private SetupHandler $setupHandler,
51 - private UserGroupFactory $userGroupFactory,
52 - private ObjectMembershipHandlerFactory $membershipHandlerFactory,
53 - private ControllerFactory $controllerFactory,
54 - private WidgetFactory $widgetFactory,
55 - private CacheProviderFactory $cacheProviderFactory,
56 - private ConfigFactory $configFactory,
57 - private ConfigParameterFactory $configParameterFactory,
58 - private FileProtectionFactory $fileProtectionFactory,
59 - private FileObjectFactory $fileObjectFactory
186 + Php $php,
187 + Wordpress $wordpress,
188 + Util $util,
189 + Cache $cache,
190 + MainConfig $config,
191 + Database $database,
192 + ObjectHandler $objectHandler,
193 + UserHandler $userHandler,
194 + UserGroupHandler $userGroupHandler,
195 + AccessHandler $accessHandler,
196 + FileHandler $fileHandler,
197 + SetupHandler $setupHandler,
198 + UserGroupFactory $userGroupFactory,
199 + ObjectMembershipHandlerFactory $membershipHandlerFactory,
200 + ControllerFactory $controllerFactory,
201 + WidgetFactory $widgetFactory,
202 + CacheProviderFactory $cacheProviderFactory,
203 + ConfigFactory $configFactory,
204 + ConfigParameterFactory $configParameterFactory,
205 + FileProtectionFactory $fileProtectionFactory,
206 + FileObjectFactory $fileObjectFactory
60 207 ) {
208 + $this->php = $php;
209 + $this->wordpress = $wordpress;
210 + $this->util = $util;
211 + $this->cache = $cache;
212 + $this->config = $config;
213 + $this->database = $database;
214 + $this->objectHandler = $objectHandler;
215 + $this->userHandler = $userHandler;
216 + $this->userGroupHandler = $userGroupHandler;
217 + $this->accessHandler = $accessHandler;
218 + $this->fileHandler = $fileHandler;
219 + $this->setupHandler = $setupHandler;
220 + $this->userGroupFactory = $userGroupFactory;
221 + $this->membershipHandlerFactory = $membershipHandlerFactory;
222 + $this->controllerFactory = $controllerFactory;
223 + $this->widgetFactory = $widgetFactory;
224 + $this->cacheProviderFactory = $cacheProviderFactory;
225 + $this->configFactory = $configFactory;
226 + $this->configParameterFactory = $configParameterFactory;
227 + $this->fileProtectionFactory = $fileProtectionFactory;
228 + $this->fileObjectFactory = $fileObjectFactory;
229 +
61 230 $this->cache->setActiveCacheProvider($this->config->getActiveCacheProvider());
62 231 }
63 232
233 + /**
234 + * @return Php
235 + */
64 236 public function getPhp(): Php
65 237 {
66 238 return $this->php;
67 239 }
68 240
241 + /**
242 + * @return Wordpress
243 + */
69 244 public function getWordpress(): Wordpress
70 245 {
71 246 return $this->wordpress;
72 247 }
73 248
249 + /**
250 + * @return Util
251 + */
74 252 public function getUtil(): Util
75 253 {
76 254 return $this->util;
77 255 }
78 256
257 + /**
258 + * @return Cache
259 + */
79 260 public function getCache(): Cache
80 261 {
81 262 return $this->cache;
82 263 }
83 264
265 + /**
266 + * @return MainConfig
267 + */
84 268 public function getConfig(): MainConfig
85 269 {
86 270 return $this->config;
87 271 }
88 272
273 + /**
274 + * @return Database
275 + */
89 276 public function getDatabase(): Database
90 277 {
91 278 return $this->database;
92 279 }
93 280
281 + /**
282 + * @return ObjectHandler
283 + */
94 284 public function getObjectHandler(): ObjectHandler
95 285 {
96 286 return $this->objectHandler;
97 287 }
98 288
289 + /**
290 + * @return UserHandler
291 + */
99 292 public function getUserHandler(): UserHandler
100 293 {
101 294 return $this->userHandler;
102 295 }
103 296
297 + /**
298 + * @return UserGroupHandler
299 + */
104 300 public function getUserGroupHandler(): UserGroupHandler
105 301 {
106 302 return $this->userGroupHandler;
107 303 }
108 304
305 + /**
306 + * @return AccessHandler
307 + */
109 308 public function getAccessHandler(): AccessHandler
110 309 {
111 310 return $this->accessHandler;
112 311 }
113 312
313 + /**
314 + * @return FileHandler
315 + */
114 316 public function getFileHandler(): FileHandler
115 317 {
116 318 return $this->fileHandler;
117 319 }
118 320
321 + /**
322 + * @return SetupHandler
323 + */
119 324 public function getSetupHandler(): SetupHandler
120 325 {
121 326 return $this->setupHandler;
122 327 }
123 328
329 + /**
330 + * @return UserGroupFactory
331 + */
124 332 public function getUserGroupFactory(): UserGroupFactory
125 333 {
126 334 return $this->userGroupFactory;
127 335 }
128 336
337 + /**
338 + * @return ObjectMembershipHandlerFactory
339 + */
129 340 public function getObjectMembershipHandlerFactory(): ObjectMembershipHandlerFactory
130 341 {
131 342 return $this->membershipHandlerFactory;
132 343 }
133 344
345 + /**
346 + * @return ControllerFactory
347 + */
134 348 public function getControllerFactory(): ControllerFactory
135 349 {
136 350 return $this->controllerFactory;
137 351 }
138 352
353 + /**
354 + * @return WidgetFactory
355 + */
139 356 public function getWidgetFactory(): WidgetFactory
140 357 {
141 358 return $this->widgetFactory;
142 359 }
143 360
361 + /**
362 + * @return CacheProviderFactory
363 + */
144 364 public function getCacheProviderFactory(): CacheProviderFactory
145 365 {
146 366 return $this->cacheProviderFactory;
147 367 }
148 368
369 + /**
370 + * @return ConfigFactory
371 + */
149 372 public function getConfigFactory(): ConfigFactory
150 373 {
151 374 return $this->configFactory;
152 375 }
153 376
377 + /**
378 + * @return ConfigParameterFactory
379 + */
154 380 public function getConfigParameterFactory(): ConfigParameterFactory
155 381 {
156 382 return $this->configParameterFactory;
157 383 }
158 384
385 + /**
386 + * @return FileProtectionFactory
387 + */
159 388 public function getFileProtectionFactory(): FileProtectionFactory
160 389 {
161 390 return $this->fileProtectionFactory;
162 391 }
163 392
393 + /**
394 + * @return FileObjectFactory
395 + */
164 396 public function getFileObjectFactory(): FileObjectFactory
165 397 {
166 398 return $this->fileObjectFactory;
167 399 }
@@ -168,16 +400,16 @@
168 400
169 401 /**
170 402 * Resister the administration menu.
171 403 */
172 - public function registerAdminMenu(): void
404 + public function registerAdminMenu()
173 405 {
174 406 if ($this->userHandler->checkUserAccess() === true) {
175 407 //TODO
176 408 /**
177 409 * --- BOF ---
178 - * Not the best way to handle full user access. Capabilities seem
179 - * to be the right way, but it is way challenging.
410 + * Not the best way to handle full user access. Capabilities seems
411 + * to be the right way, but it is way difficult.
180 412 */
181 413 //Admin main menu
182 414 $this->wordpress->addMenuPage(
183 415 'User Access Manager',
@@ -236,8 +468,16 @@
236 468 */
237 469 }
238 470 }
239 471
472 + /**
473 + * Adds the backend filters.
474 + * @param DynamicGroupsController $dynamicGroupController
475 + * @param PostObjectController $postObjectController
476 + * @param TermObjectController $termObjectController
477 + * @param UserObjectController $userObjectController
478 + * @param array $taxonomies
479 + */
240 480 private function addAdminActions(
241 481 DynamicGroupsController $dynamicGroupController,
242 482 PostObjectController $postObjectController,
243 483 TermObjectController $termObjectController,
@@ -242,9 +482,9 @@
242 482 PostObjectController $postObjectController,
243 483 TermObjectController $termObjectController,
244 484 UserObjectController $userObjectController,
245 485 array $taxonomies
246 - ): void {
486 + ) {
247 487 $this->wordpress->addAction(
248 488 'manage_posts_custom_column',
249 489 [$postObjectController, 'addPostColumn'],
250 490 10,
@@ -312,14 +552,21 @@
312 552 [$dynamicGroupController, 'getDynamicGroupsForAjax']
313 553 );
314 554 }
315 555
556 + /**
557 + * Adds the admin filters.
558 + * @param PostObjectController $postObjectController
559 + * @param TermObjectController $termObjectController
560 + * @param UserObjectController $userObjectController
561 + * @param array $taxonomies
562 + */
316 563 private function addAdminFilters(
317 564 PostObjectController $postObjectController,
318 565 TermObjectController $termObjectController,
319 566 UserObjectController $userObjectController,
320 567 array $taxonomies
321 - ): void {
568 + ) {
322 569 //The filter we use instead of add|edit_attachment action, reason see top
323 570 $this->wordpress->addFilter('attachment_fields_to_save', [$postObjectController, 'saveAttachmentData']);
324 571
325 572 $this->wordpress->addFilter('manage_posts_columns', [$postObjectController, 'addPostColumnsHeader']);
@@ -344,9 +591,13 @@
344 591 $this->wordpress->addFilter('manage_media_columns', [$postObjectController, 'addPostColumnsHeader']);
345 592 }
346 593 }
347 594
348 - private function addAdminMetaBoxes(PostObjectController $postObjectController): void
595 + /**
596 + * Adds the admin meta boxes.
597 + * @param PostObjectController $postObjectController
598 + */
599 + private function addAdminMetaBoxes(PostObjectController $postObjectController)
349 600 {
350 601 $postTypes = $this->objectHandler->getPostTypes();
351 602
352 603 foreach ($postTypes as $postType) {
@@ -365,11 +616,12 @@
365 616 }
366 617 }
367 618
368 619 /**
620 + * Register the admin actions and filters
369 621 * @throws UserGroup\UserGroupTypeException
370 622 */
371 - public function registerAdminActionsAndFilters(): void
623 + public function registerAdminActionsAndFilters()
372 624 {
373 625 $backendController = $this->controllerFactory->createBackendController();
374 626 $this->wordpress->addAction('admin_enqueue_scripts', [$backendController, 'enqueueStylesAndScripts']);
375 627 $this->wordpress->addAction('wp_dashboard_setup', [$backendController, 'setupAdminDashboard']);
@@ -420,9 +672,12 @@
420 672
421 673 $objectController->checkRightsToEditContent();
422 674 }
423 675
424 - public function addActionsAndFilters(): void
676 + /**
677 + * Adds the actions and filers.
678 + */
679 + public function addActionsAndFilters()
425 680 {
426 681 //Actions
427 682 $this->wordpress->addAction('admin_menu', [$this, 'registerAdminMenu']);
428 683 $this->wordpress->addAction('admin_init', [$this, 'registerAdminActionsAndFilters']);