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 / Policy / Manager.php
advanced-access-manager / Application / Core / Policy Last commit date
Condition.php 7 years ago Manager.php 7 years ago Token.php 7 years ago Validator.php 7 years ago
Manager.php
105 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 * AAM core policy manager
12 *
13 * @package AAM
14 * @author Vasyl Martyniuk <vasyl@vasyltech.com>
15 * @since AAM v5.7.2
16 */
17 final class AAM_Core_Policy_Manager {
18
19 /**
20 * Single instance of itself
21 *
22 * @var AAM_Core_Policy_Manager
23 *
24 * @access private
25 * @static
26 */
27 private static $_instance = null;
28
29 /**
30 * Policy core object
31 *
32 * @var AAM_Core_Object_Policy
33 *
34 * @access protected
35 */
36 protected $policyObject;
37
38 /**
39 * Constructor
40 *
41 * @access protected
42 *
43 * @return void
44 */
45 protected function __construct() {
46 $this->policyObject = AAM::getUser()->getObject('policy');
47 }
48
49 /**
50 * Find all the matching policies
51 *
52 * @param string $s RegEx
53 * @param AAM_Core_Subject $subject Subject to search for
54 *
55 * @return array
56 *
57 * @access public
58 */
59 public function find($s, AAM_Core_Subject $subject = null) {
60 $statements = array();
61
62 // Get list of policies
63 if (is_null($subject)) {
64 $policies = $this->policyObject;
65 } else {
66 $policies = $subject->getObject('policy');
67 }
68
69 foreach($policies->getResources($subject) as $key => $stm) {
70 if (preg_match($s, $key)) {
71 $statements[strtolower($key)] = $stm;
72 }
73 }
74
75 return $statements;
76 }
77
78 /**
79 * Get single instance of itself
80 *
81 * @return AAM_Core_Policy_Manager
82 *
83 * @access public
84 * @static
85 */
86 public static function getInstance() {
87 if (is_null(self::$_instance)) {
88 self::$_instance = new self();
89 }
90
91 return self::$_instance;
92 }
93
94 /**
95 * Load the policy manager
96 *
97 * @return void
98 *
99 * @access public
100 * @static
101 */
102 public static function bootstrap() {
103 self::getInstance();
104 }
105 }