PluginProbe
User Access Manager / 2.2.21
User Access Manager v2.2.21
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/Controller/Backend/BackendController.php +89 -28 trunk2.2.21 View file →
@@ -1,5 +1,18 @@
1 1 <?php
2 +/**
3 + * BackendController.php
4 + *
5 + * The BackendController 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\Controller\Backend;
@@ -4,11 +17,10 @@
4 17
5 18 namespace UserAccessManager\Controller\Backend;
6 19
7 20 use UserAccessManager\Config\WordpressConfig;
8 -use UserAccessManager\Controller\Backend\Administration\SetupController;
9 21 use UserAccessManager\Controller\Controller;
10 -use UserAccessManager\Setup\Database\MissingColumnsException;
22 +use UserAccessManager\File\FileHandler;
11 23 use UserAccessManager\Setup\SetupHandler;
12 24 use UserAccessManager\User\UserHandler;
13 25 use UserAccessManager\UserAccessManager;
14 26 use UserAccessManager\Wrapper\Php;
@@ -13,8 +25,13 @@
13 25 use UserAccessManager\UserAccessManager;
14 26 use UserAccessManager\Wrapper\Php;
15 27 use UserAccessManager\Wrapper\Wordpress;
16 28
29 +/**
30 + * Class BackendController
31 + *
32 + * @package UserAccessManager\Controller
33 + */
17 34 class BackendController extends Controller
18 35 {
19 36 public const HANDLE_STYLE_ADMIN = 'UserAccessManagerAdmin';
20 37 public const HANDLE_SCRIPT_GROUP_SUGGEST = 'UserAccessManagerGroupSuggest';
@@ -19,33 +36,51 @@
19 36 public const HANDLE_STYLE_ADMIN = 'UserAccessManagerAdmin';
20 37 public const HANDLE_SCRIPT_GROUP_SUGGEST = 'UserAccessManagerGroupSuggest';
21 38 public const HANDLE_SCRIPT_TIME_INPUT = 'UserAccessManagerTimeInput';
22 39 public const HANDLE_SCRIPT_ADMIN = 'UserAccessManagerFunctions';
40 + public const UAM_ERRORS = 'UAM_ERRORS';
23 41
24 - private const ADMIN_SCRIPTS = [
25 - self::HANDLE_SCRIPT_GROUP_SUGGEST => 'assets/js/jquery.uam-group-suggest.js',
26 - self::HANDLE_SCRIPT_TIME_INPUT => 'assets/js/jquery.uam-time-input.js',
27 - self::HANDLE_SCRIPT_ADMIN => 'assets/js/functions.js'
28 - ];
42 + /**
43 + * @var UserHandler
44 + */
45 + private $userHandler;
29 46
30 - private string $notice = '';
47 + /**
48 + * @var SetupHandler
49 + */
50 + private $setupHandler;
31 51
52 + /**
53 + * @var string
54 + */
55 + private $notice = '';
56 +
57 + /**
58 + * BackendController constructor.
59 + * @param Php $php
60 + * @param Wordpress $wordpress
61 + * @param WordpressConfig $wordpressConfig
62 + * @param UserHandler $userHandler
63 + * @param SetupHandler $setupHandler
64 + */
32 65 public function __construct(
33 66 Php $php,
34 67 Wordpress $wordpress,
35 68 WordpressConfig $wordpressConfig,
36 - private UserHandler $userHandler,
37 - private SetupHandler $setupHandler
69 + UserHandler $userHandler,
70 + SetupHandler $setupHandler
38 71 ) {
39 72 parent::__construct($php, $wordpress, $wordpressConfig);
73 + $this->userHandler = $userHandler;
74 + $this->setupHandler = $setupHandler;
40 75 }
41 76
42 77 /**
43 - * @throws MissingColumnsException
78 + * Shows the admin notices.
44 79 */
45 - public function showAdminNotice(): void
80 + public function showAdminNotice()
46 81 {
47 - $messages = $_SESSION[self::UAM_ERRORS] ?? [];
82 + $messages = isset($_SESSION[self::UAM_ERRORS]) === true ? $_SESSION[self::UAM_ERRORS] : [];
48 83 $updateAction = $this->getRequestParameter('uam_update_db');
49 84
50 85 if ($this->setupHandler->getDatabaseHandler()->isDatabaseUpdateNecessary() === true
51 86 && $updateAction !== SetupController::UPDATE_BLOG
@@ -59,14 +94,21 @@
59 94 echo $this->getIncludeContents('AdminNotice.php');
60 95 }
61 96 }
62 97
98 + /**
99 + * Returns the set notice.
100 + * @return string
101 + */
63 102 public function getNotice(): string
64 103 {
65 104 return $this->notice;
66 105 }
67 106
68 - private function registerStylesAndScripts(): void
107 + /**
108 + * Register styles and scripts with handle for admin panel.
109 + */
110 + private function registerStylesAndScripts()
69 111 {
70 112 $urlPath = $this->wordpressConfig->getUrlPath();
71 113
72 114 $this->wordpress->registerStyle(
@@ -76,29 +118,48 @@
76 118 UserAccessManager::VERSION,
77 119 'screen'
78 120 );
79 121
80 - foreach (self::ADMIN_SCRIPTS as $handle => $scriptPath) {
81 - $this->wordpress->registerScript(
82 - $handle,
83 - $urlPath . $scriptPath,
84 - ['jquery'],
85 - UserAccessManager::VERSION
86 - );
87 - }
122 + $this->wordpress->registerScript(
123 + self::HANDLE_SCRIPT_GROUP_SUGGEST,
124 + $urlPath . 'assets/js/jquery.uam-group-suggest.js',
125 + ['jquery'],
126 + UserAccessManager::VERSION
127 + );
128 +
129 + $this->wordpress->registerScript(
130 + self::HANDLE_SCRIPT_TIME_INPUT,
131 + $urlPath . 'assets/js/jquery.uam-time-input.js',
132 + ['jquery'],
133 + UserAccessManager::VERSION
134 + );
135 +
136 + $this->wordpress->registerScript(
137 + self::HANDLE_SCRIPT_ADMIN,
138 + $urlPath . 'assets/js/functions.js',
139 + ['jquery'],
140 + UserAccessManager::VERSION
141 + );
88 142 }
89 143
90 - public function enqueueStylesAndScripts(): void
144 + /**
145 + * The function for the admin_enqueue_scripts action for styles and scripts.
146 + */
147 + public function enqueueStylesAndScripts()
91 148 {
92 149 $this->registerStylesAndScripts();
93 150 $this->wordpress->enqueueStyle(self::HANDLE_STYLE_ADMIN);
151 + $this->wordpress->enqueueScript(self::HANDLE_SCRIPT_GROUP_SUGGEST);
152 + $this->wordpress->enqueueScript(self::HANDLE_SCRIPT_TIME_INPUT);
153 + $this->wordpress->enqueueScript(self::HANDLE_SCRIPT_ADMIN);
154 + }
94 155
95 - foreach (array_keys(self::ADMIN_SCRIPTS) as $handle) {
96 - $this->wordpress->enqueueScript($handle);
97 - }
98 - }
99 156
100 - public function setupAdminDashboard(): void
157 + /**
158 + * The function for the wp_dashboard_setup action.
159 + * Removes widgets to which a user should not have access.
160 + */
161 + public function setupAdminDashboard()
101 162 {
102 163 if ($this->userHandler->checkUserAccess(UserHandler::MANAGE_USER_GROUPS_CAPABILITY) === false) {
103 164 $metaBoxes = $this->wordpress->getMetaBoxes();
104 165 unset($metaBoxes['dashboard']['normal']['core']['dashboard_recent_comments']);