PluginProbe
User Access Manager / 2.1.12
User Access Manager v2.1.12
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 / ObjectMembership / TermMembershipHandler.php

TermMembershipHandler.php in User Access Manager 2.1.12, at src/ObjectMembership/TermMembershipHandler.php

146 lines 4.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * TermMembershipHandler.php
4 *
5 * The TermMembershipHandler class file.
6 *
7 * PHP versions 5
8 *
9 * @author Alexander Schneider <alexanderschneider85@gmail.com>
10 * @copyright 2008-2017 Alexander Schneider
11 * @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2
12 * @version SVN: $id$
13 * @link http://wordpress.org/extend/plugins/user-access-manager/
14 */
15 namespace UserAccessManager\ObjectMembership;
16
17 use UserAccessManager\Object\ObjectHandler;
18 use UserAccessManager\Object\ObjectMapHandler;
19 use UserAccessManager\UserGroup\AbstractUserGroup;
20 use UserAccessManager\UserGroup\AssignmentInformation;
21 use UserAccessManager\UserGroup\AssignmentInformationFactory;
22 use UserAccessManager\Wrapper\Wordpress;
23
24 /**
25 * Class TermMembershipHandler
26 *
27 * @package UserAccessManager\UserGroup
28 */
29 class TermMembershipHandler extends ObjectMembershipWithMapHandler
30 {
31 /**
32 * @var string
33 */
34 protected $generalObjectType = ObjectHandler::GENERAL_TERM_OBJECT_TYPE;
35
36 /**
37 * @var Wordpress
38 */
39 private $wordpress;
40
41 /**
42 * @var ObjectHandler
43 */
44 private $objectHandler;
45
46 /**
47 * @var ObjectMapHandler
48 */
49 private $objectMapHandler;
50
51 /**
52 * TermMembershipHandler constructor.
53 *
54 * @param AssignmentInformationFactory $assignmentInformationFactory
55 * @param Wordpress $wordpress
56 * @param ObjectHandler $objectHandler
57 * @param ObjectMapHandler $objectMapHandler
58 *
59 * @throws \Exception
60 */
61 public function __construct(
62 AssignmentInformationFactory $assignmentInformationFactory,
63 Wordpress $wordpress,
64 ObjectHandler $objectHandler,
65 ObjectMapHandler $objectMapHandler
66 ) {
67 parent::__construct($assignmentInformationFactory);
68
69 $this->wordpress = $wordpress;
70 $this->objectHandler = $objectHandler;
71 $this->objectMapHandler = $objectMapHandler;
72 }
73
74 /**
75 * Returns the object and type name.
76 *
77 * @param string $objectId
78 * @param string $typeName
79 *
80 * @return string
81 */
82 public function getObjectName($objectId, &$typeName = '')
83 {
84 $term = $this->objectHandler->getTerm($objectId);
85
86 if ($term !== false) {
87 $taxonomy = $this->wordpress->getTaxonomy($term->taxonomy);
88 $typeName = ($taxonomy !== false) ? $taxonomy->labels->name : $typeName;
89 return $term->name;
90 }
91
92 return $objectId;
93 }
94
95 /**
96 * Returns the handled objects.
97 *
98 * @return array
99 */
100 public function getHandledObjects()
101 {
102 $keys = array_keys($this->objectHandler->getTaxonomies());
103 return array_merge(parent::getHandledObjects(), array_combine($keys, $keys));
104 }
105
106 /**
107 * Returns the map.
108 *
109 * @return array
110 */
111 protected function getMap()
112 {
113 return $this->objectMapHandler->getTermTreeMap();
114 }
115
116 /**
117 * Checks if the term is a member of the user group.
118 *
119 * @param AbstractUserGroup $userGroup
120 * @param bool $lockRecursive
121 * @param string $objectId
122 * @param null|AssignmentInformation $assignmentInformation
123 *
124 * @return bool
125 */
126 public function isMember(AbstractUserGroup $userGroup, $lockRecursive, $objectId, &$assignmentInformation = null)
127 {
128 return $this->getMembershipByMap($userGroup, $lockRecursive, $objectId, $assignmentInformation);
129 }
130
131 /**
132 * Returns the term role objects.
133 *
134 * @param AbstractUserGroup $userGroup
135 * @param bool $lockRecursive
136 * @param null $objectType
137 *
138 * @return array
139 */
140 public function getFullObjects(AbstractUserGroup $userGroup, $lockRecursive, $objectType = null)
141 {
142 $objectType = ($objectType === null) ? $this->generalObjectType : $objectType;
143 return $this->getFullObjectsByMap($userGroup, $lockRecursive, $objectType);
144 }
145 }
146