PluginProbe
User Access Manager / 2.3.0
User Access Manager v2.3.0
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.3.0, at src/Controller/Backend/BackendController.php

114 lines 3.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 declare(strict_types=1);
4
5 namespace UserAccessManager\Controller\Backend;
6
7 use UserAccessManager\Config\WordpressConfig;
8 use UserAccessManager\Controller\Controller;
9 use UserAccessManager\Setup\Database\MissingColumnsException;
10 use UserAccessManager\Setup\SetupHandler;
11 use UserAccessManager\User\UserHandler;
12 use UserAccessManager\UserAccessManager;
13 use UserAccessManager\Wrapper\Php;
14 use UserAccessManager\Wrapper\Wordpress;
15
16 class BackendController extends Controller
17 {
18 public const HANDLE_STYLE_ADMIN = 'UserAccessManagerAdmin';
19 public const HANDLE_SCRIPT_GROUP_SUGGEST = 'UserAccessManagerGroupSuggest';
20 public const HANDLE_SCRIPT_TIME_INPUT = 'UserAccessManagerTimeInput';
21 public const HANDLE_SCRIPT_ADMIN = 'UserAccessManagerFunctions';
22 public const UAM_ERRORS = 'UAM_ERRORS';
23
24 private string $notice = '';
25
26 public function __construct(
27 Php $php,
28 Wordpress $wordpress,
29 WordpressConfig $wordpressConfig,
30 private UserHandler $userHandler,
31 private SetupHandler $setupHandler
32 ) {
33 parent::__construct($php, $wordpress, $wordpressConfig);
34 }
35
36 /**
37 * @throws MissingColumnsException
38 */
39 public function showAdminNotice(): void
40 {
41 $messages = isset($_SESSION[self::UAM_ERRORS]) === true ? $_SESSION[self::UAM_ERRORS] : [];
42 $updateAction = $this->getRequestParameter('uam_update_db');
43
44 if ($this->setupHandler->getDatabaseHandler()->isDatabaseUpdateNecessary() === true
45 && $updateAction !== SetupController::UPDATE_BLOG
46 && $updateAction !== SetupController::UPDATE_NETWORK
47 ) {
48 $messages[] = sprintf(TXT_UAM_NEED_DATABASE_UPDATE, 'admin.php?page=uam_setup');
49 }
50
51 if ($messages !== []) {
52 $this->notice = implode('<br>', $messages);
53 echo $this->getIncludeContents('AdminNotice.php');
54 }
55 }
56
57 public function getNotice(): string
58 {
59 return $this->notice;
60 }
61
62 private function registerStylesAndScripts(): void
63 {
64 $urlPath = $this->wordpressConfig->getUrlPath();
65
66 $this->wordpress->registerStyle(
67 self::HANDLE_STYLE_ADMIN,
68 $urlPath . 'assets/css/uamAdmin.css',
69 [],
70 UserAccessManager::VERSION,
71 'screen'
72 );
73
74 $this->wordpress->registerScript(
75 self::HANDLE_SCRIPT_GROUP_SUGGEST,
76 $urlPath . 'assets/js/jquery.uam-group-suggest.js',
77 ['jquery'],
78 UserAccessManager::VERSION
79 );
80
81 $this->wordpress->registerScript(
82 self::HANDLE_SCRIPT_TIME_INPUT,
83 $urlPath . 'assets/js/jquery.uam-time-input.js',
84 ['jquery'],
85 UserAccessManager::VERSION
86 );
87
88 $this->wordpress->registerScript(
89 self::HANDLE_SCRIPT_ADMIN,
90 $urlPath . 'assets/js/functions.js',
91 ['jquery'],
92 UserAccessManager::VERSION
93 );
94 }
95
96 public function enqueueStylesAndScripts(): void
97 {
98 $this->registerStylesAndScripts();
99 $this->wordpress->enqueueStyle(self::HANDLE_STYLE_ADMIN);
100 $this->wordpress->enqueueScript(self::HANDLE_SCRIPT_GROUP_SUGGEST);
101 $this->wordpress->enqueueScript(self::HANDLE_SCRIPT_TIME_INPUT);
102 $this->wordpress->enqueueScript(self::HANDLE_SCRIPT_ADMIN);
103 }
104
105 public function setupAdminDashboard(): void
106 {
107 if ($this->userHandler->checkUserAccess(UserHandler::MANAGE_USER_GROUPS_CAPABILITY) === false) {
108 $metaBoxes = $this->wordpress->getMetaBoxes();
109 unset($metaBoxes['dashboard']['normal']['core']['dashboard_recent_comments']);
110 $this->wordpress->setMetaBoxes($metaBoxes);
111 }
112 }
113 }
114