PluginProbe ʕ •ᴥ•ʔ
Advanced Access Manager – Access Governance for WordPress / 5.11
Advanced Access Manager – Access Governance for WordPress v5.11
6.8.4 6.8.5 6.9.0 6.9.1 6.9.10 6.9.11 6.9.12 6.9.13 6.9.14 6.9.15 6.9.16 6.9.17 6.9.18 6.9.19 6.9.2 6.9.20 6.9.21 6.9.22 6.9.23 6.9.24 6.9.25 6.9.26 6.9.27 6.9.28 6.9.29 6.9.3 6.9.30 6.9.31 6.9.32 6.9.33 6.9.34 6.9.35 6.9.36 6.9.37 6.9.38 6.9.39 6.9.4 6.9.41 6.9.42 6.9.43 6.9.44 6.9.45 6.9.46 6.9.47 6.9.48 6.9.49 6.9.5 6.9.51 6.9.6 6.9.7 6.9.8 6.9.9 7.0.0 7.0.0-alpha.6 7.0.0-alpha.7 7.0.0-beta.1 7.0.0-rc1 7.0.0-rc2 7.0.0-rc3 7.0.1 7.0.10 7.0.11 7.0.2 7.0.3 7.0.4 7.0.5 7.0.6 7.0.7 7.0.8 7.0.9 7.1.0 7.1.1 trunk 3.0 4.0 4.0.1 4.1 4.2 4.3 4.4 4.4.1 4.5 4.6 4.6.1 4.6.2 4.7 4.7.1 4.7.2 4.7.5 4.7.6 4.8 4.8.1 4.9 4.9.1 4.9.2 4.9.3 4.9.4 4.9.5 4.9.5.1 4.9.5.2 5.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.1 5.1.1 5.10 5.11 5.2 5.2.1 5.2.5 5.2.6 5.2.7 5.3 5.3.1 5.3.2 5.3.3 5.3.4 5.3.5 5.4 5.4.1 5.4.2 5.4.3 5.4.3.1 5.4.3.2 5.5 5.5.1 5.5.2 5.6 5.6.1 5.6.1.1 5.7 5.7.1 5.7.2 5.7.3 5.8 5.8.1 5.8.2 5.8.3 5.9 5.9.1 5.9.1.1 5.9.2 5.9.2.1 5.9.3 5.9.4 5.9.5 5.9.6 5.9.6.1 5.9.6.2 5.9.6.3 5.9.7 5.9.7.1 5.9.7.2 5.9.7.3 5.9.8 5.9.8.1 5.9.9 5.9.9.1 6.0.0 6.0.1 6.0.2 6.0.3 6.0.4 6.0.5 6.1.0 6.1.1 6.2.0 6.2.1 6.2.2 6.3.0 6.3.1 6.3.2 6.3.3 6.4.0 6.4.1 6.4.2 6.4.3 6.5.0 6.5.1 6.5.2 6.5.3 6.5.4 6.6.0 6.6.1 6.6.2 6.6.3 6.6.4 6.7.0 6.7.1 6.7.2 6.7.3 6.7.4 6.7.5 6.7.6 6.7.7 6.7.8 6.7.9 6.8.0 6.8.1 6.8.2 6.8.3
advanced-access-manager / application / Core / Object / Toolbar.php
advanced-access-manager / application / Core / Object Last commit date
Cache.php 6 years ago Capability.php 6 years ago LoginRedirect.php 6 years ago LogoutRedirect.php 6 years ago Menu.php 6 years ago Metabox.php 6 years ago Policy.php 6 years ago Post.php 6 years ago Redirect.php 6 years ago Route.php 6 years ago Toolbar.php 6 years ago Uri.php 6 years ago Visibility.php 6 years ago
Toolbar.php
137 lines
1 <?php
2
3 /**
4 * ======================================================================
5 * LICENSE: This file is subject to the terms and conditions defined in *
6 * file 'license.txt', which is part of this source code package. *
7 * ======================================================================
8 */
9
10 /**
11 * Admin toolbar object
12 *
13 * @package AAM
14 * @author Vasyl Martyniuk <vasyl@vasyltech.com>
15 */
16 class AAM_Core_Object_Toolbar extends AAM_Core_Object {
17
18 /**
19 * Constructor
20 *
21 * @param AAM_Core_Subject $subject
22 *
23 * @return void
24 *
25 * @access public
26 */
27 public function __construct(AAM_Core_Subject $subject) {
28 parent::__construct($subject);
29
30 $option = $this->getSubject()->readOption('toolbar');
31
32 if (!empty($option)) {
33 $this->setOverwritten(true);
34 }
35
36 // Load settings from Access & Security Policy
37 if (empty($option)) {
38 $stms = AAM_Core_Policy_Factory::get($subject)->find("/^Toolbar:/i");
39
40 foreach($stms as $key => $stm) {
41 $chunks = explode(':', $key);
42 $option[$chunks[1]] = ($stm['Effect'] === 'deny' ? 1 : 0);
43 }
44 }
45
46 if (empty($option)) {
47 $option = $this->getSubject()->inheritFromParent('toolbar');
48 }
49
50 $this->setOption($option);
51 }
52
53 /**
54 * Check is item defined
55 *
56 * Check if toolbar item defined in options based on the id
57 *
58 * @param string $item
59 *
60 * @return boolean
61 *
62 * @access public
63 */
64 public function has($item, $both = false) {
65 $options = $this->getOption();
66
67 // Step #1. Check if toolbar item is directly restricted
68 $direct = !empty($options[$item]);
69
70 // Step #2. Check if whole branch is restricted
71 $branch = ($both && !empty($options['toolbar-' . $item]));
72
73 return $direct || $branch;
74 }
75
76 /**
77 * Allow access to a specific menu
78 *
79 * @param string $menu
80 *
81 * @return boolean
82 *
83 * @access public
84 */
85 public function allow($menu) {
86 return $this->save($menu, 0);
87 }
88
89 /**
90 * Deny access to a specific menu
91 *
92 * @param string $menu
93 *
94 * @return boolean
95 *
96 * @access public
97 */
98 public function deny($menu) {
99 return $this->save($menu, 1);
100 }
101
102 /**
103 * Save menu option
104 *
105 * @return bool
106 *
107 * @access public
108 */
109 public function save($item = null, $value = null) {
110 if (!is_null($item)) { // keep it compatible with main Manager.save
111 $this->updateOptionItem($item, $value);
112 }
113
114 return $this->getSubject()->updateOption($this->getOption(), 'toolbar');
115 }
116
117 /**
118 * Reset default settings
119 *
120 * @return bool
121 *
122 * @access public
123 */
124 public function reset() {
125 return $this->getSubject()->deleteOption('toolbar');
126 }
127
128 /**
129 *
130 * @param type $external
131 * @return type
132 */
133 public function mergeOption($external) {
134 return AAM::api()->mergeSettings($external, $this->getOption(), 'toolbar');
135 }
136
137 }