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 / Policy.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
Policy.php
119 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 * Policy object
12 *
13 * @package AAM
14 * @author Vasyl Martyniuk <vasyl@vasyltech.com>
15 */
16 class AAM_Core_Object_Policy 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 $this->initialize();
31 }
32
33 /**
34 * Initialize the policy rules for current subject
35 *
36 * @return void
37 *
38 * @access public
39 */
40 public function initialize() {
41 $subject = $this->getSubject();
42 $parent = $subject->inheritFromParent('policy');
43
44 // Prevent from any kind of surprises
45 if(empty($parent) || !is_array($parent)) {
46 $parent = array();
47 }
48
49 $option = $subject->readOption('policy');
50 if (empty($option)) {
51 $option = array();
52 } else {
53 $this->setOverwritten(true);
54 }
55
56 foreach($option as $key => $value) {
57 $parent[$key] = $value; //override
58 }
59
60 $this->setOption($parent);
61 }
62
63 /**
64 * Save menu option
65 *
66 * @return bool
67 *
68 * @access public
69 */
70 public function save($id, $effect) {
71 $option = $this->getOption();
72 $option[$id] = intval($effect);
73
74 $this->setOption($option);
75
76 return $this->getSubject()->updateOption($this->getOption(), 'policy');
77 }
78
79 /**
80 * Check if policy attached
81 *
82 * @param int $id
83 *
84 * @return boolean
85 *
86 * @access public
87 */
88 public function has($id) {
89 $option = $this->getOption();
90
91 return !empty($option[$id]);
92 }
93
94 /**
95 *
96 * @param type $id
97 *
98 * @return type
99 */
100 public function delete($id) {
101 $option = $this->getOption();
102 if (isset($option[$id])) {
103 unset($option[$id]);
104 }
105 $this->setOption($option);
106
107 return $this->getSubject()->updateOption($this->getOption(), 'policy');
108 }
109
110 /**
111 *
112 * @param type $external
113 * @return type
114 */
115 public function mergeOption($external) {
116 return AAM::api()->mergeSettings($external, $this->getOption(), 'policy');
117 }
118
119 }