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