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
user-access-manager / src / Controller / Backend / BackendController.php

BackendController.php in User Access Manager 2.1.11, at src/Controller/Backend/BackendController.php

177 lines 5.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
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 */
15 namespace UserAccessManager\Controller\Backend;
16
17 use UserAccessManager\Config\WordpressConfig;
18 use UserAccessManager\Controller\Controller;
19 use UserAccessManager\File\FileHandler;
20 use UserAccessManager\Setup\SetupHandler;
21 use UserAccessManager\UserAccessManager;
22 use UserAccessManager\User\UserHandler;
23 use UserAccessManager\Wrapper\Php;
24 use UserAccessManager\Wrapper\Wordpress;
25
26 /**
27 * Class BackendController
28 *
29 * @package UserAccessManager\Controller
30 */
31 class BackendController extends Controller
32 {
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';
38
39 /**
40 * @var UserHandler
41 */
42 private $userHandler;
43
44 /**
45 * @var FileHandler
46 */
47 private $fileHandler;
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 */
69 public function __construct(
70 Php $php,
71 Wordpress $wordpress,
72 WordpressConfig $wordpressConfig,
73 UserHandler $userHandler,
74 FileHandler $fileHandler,
75 SetupHandler $setupHandler
76 ) {
77 parent::__construct($php, $wordpress, $wordpressConfig);
78 $this->userHandler = $userHandler;
79 $this->fileHandler = $fileHandler;
80 $this->setupHandler = $setupHandler;
81 }
82
83 /**
84 * Shows the admin notices.
85 */
86 public function showAdminNotice()
87 {
88 $messages = isset($_SESSION[self::UAM_ERRORS]) === true ? $_SESSION[self::UAM_ERRORS] : [];
89 $updateAction = $this->getRequestParameter('uam_update_db');
90
91 if ($this->setupHandler->getDatabaseHandler()->isDatabaseUpdateNecessary() === true
92 && $updateAction !== SetupController::UPDATE_BLOG
93 && $updateAction !== SetupController::UPDATE_NETWORK
94 ) {
95 $messages[] = sprintf(TXT_UAM_NEED_DATABASE_UPDATE, 'admin.php?page=uam_setup');
96 }
97
98 if ($messages !== []) {
99 $this->notice = implode('<br>', $messages);
100 echo $this->getIncludeContents('AdminNotice.php');
101 }
102 }
103
104 /**
105 * Returns the set notice.
106 *
107 * @return string
108 */
109 public function getNotice()
110 {
111 return $this->notice;
112 }
113
114 /**
115 * Register styles and scripts with handle for admin panel.
116 */
117 private function registerStylesAndScripts()
118 {
119 $urlPath = $this->wordpressConfig->getUrlPath();
120
121 $this->wordpress->registerStyle(
122 self::HANDLE_STYLE_ADMIN,
123 $urlPath.'assets/css/uamAdmin.css',
124 [],
125 UserAccessManager::VERSION,
126 'screen'
127 );
128
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 );
149 }
150
151 /**
152 * The function for the admin_enqueue_scripts action for styles and scripts.
153 */
154 public function enqueueStylesAndScripts()
155 {
156 $this->registerStylesAndScripts();
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 }
162
163
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()
169 {
170 if ($this->userHandler->checkUserAccess(UserHandler::MANAGE_USER_GROUPS_CAPABILITY) === false) {
171 $metaBoxes = $this->wordpress->getMetaBoxes();
172 unset($metaBoxes['dashboard']['normal']['core']['dashboard_recent_comments']);
173 $this->wordpress->setMetaBoxes($metaBoxes);
174 }
175 }
176 }
177