PluginProbe ʕ •ᴥ•ʔ
Advanced Access Manager – Access Governance for WordPress / 5.8.2
Advanced Access Manager – Access Governance for WordPress v5.8.2
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 7 years ago Capability.php 7 years ago LoginRedirect.php 7 years ago LogoutRedirect.php 7 years ago Menu.php 7 years ago Metabox.php 7 years ago Policy.php 7 years ago Post.php 7 years ago Redirect.php 7 years ago Route.php 7 years ago Toolbar.php 7 years ago Uri.php 7 years ago Visibility.php 7 years ago
Toolbar.php
139 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_Manager::getInstance()->find(
39 "/^Toolbar:/i", $subject
40 );
41
42 foreach($stms as $key => $stm) {
43 $chunks = explode(':', $key);
44 $option[$chunks[1]] = ($stm['Effect'] === 'deny' ? 1 : 0);
45 }
46 }
47
48 if (empty($option)) {
49 $option = $this->getSubject()->inheritFromParent('toolbar');
50 }
51
52 $this->setOption($option);
53 }
54
55 /**
56 * Check is item defined
57 *
58 * Check if toolbar item defined in options based on the id
59 *
60 * @param string $item
61 *
62 * @return boolean
63 *
64 * @access public
65 */
66 public function has($item, $both = false) {
67 $options = $this->getOption();
68
69 // Step #1. Check if toolbar item is directly restricted
70 $direct = !empty($options[$item]);
71
72 // Step #2. Check if whole branch is restricted
73 $branch = ($both && !empty($options['toolbar-' . $item]));
74
75 return $direct || $branch;
76 }
77
78 /**
79 * Allow access to a specific menu
80 *
81 * @param string $menu
82 *
83 * @return boolean
84 *
85 * @access public
86 */
87 public function allow($menu) {
88 return $this->save($menu, 0);
89 }
90
91 /**
92 * Deny access to a specific menu
93 *
94 * @param string $menu
95 *
96 * @return boolean
97 *
98 * @access public
99 */
100 public function deny($menu) {
101 return $this->save($menu, 1);
102 }
103
104 /**
105 * Save menu option
106 *
107 * @return bool
108 *
109 * @access public
110 */
111 public function save($item = null, $value = null) {
112 if (!is_null($item)) { // keep it compatible with main Manager.save
113 $this->updateOptionItem($item, $value);
114 }
115
116 return $this->getSubject()->updateOption($this->getOption(), 'toolbar');
117 }
118
119 /**
120 * Reset default settings
121 *
122 * @return bool
123 *
124 * @access public
125 */
126 public function reset() {
127 return $this->getSubject()->deleteOption('toolbar');
128 }
129
130 /**
131 *
132 * @param type $external
133 * @return type
134 */
135 public function mergeOption($external) {
136 return AAM::api()->mergeSettings($external, $this->getOption(), 'toolbar');
137 }
138
139 }