PluginProbe
User Access Manager / 2.1.9
User Access Manager v2.1.9
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 / RoleMembershipHandler.php

RoleMembershipHandler.php in User Access Manager 2.1.9, at src/ObjectMembership/RoleMembershipHandler.php

105 lines 3.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * RoleMembershipHandler.php
4 *
5 * The RoleMembershipHandler 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\UserGroup\AbstractUserGroup;
19 use UserAccessManager\UserGroup\AssignmentInformation;
20 use UserAccessManager\UserGroup\AssignmentInformationFactory;
21 use UserAccessManager\Wrapper\Wordpress;
22
23 /**
24 * Class RoleMembershipHandler
25 *
26 * @package UserAccessManager\UserGroup
27 */
28 class RoleMembershipHandler extends ObjectMembershipHandler
29 {
30 /**
31 * @var Wordpress
32 */
33 private $wordpress;
34
35 /**
36 * @var string
37 */
38 protected $generalObjectType = ObjectHandler::GENERAL_ROLE_OBJECT_TYPE;
39
40 /**
41 * RoleMembershipHandler constructor.
42 *
43 * @param AssignmentInformationFactory $assignmentInformationFactory
44 * @param Wordpress $wordpress
45 */
46 public function __construct(AssignmentInformationFactory $assignmentInformationFactory, Wordpress $wordpress)
47 {
48 parent::__construct($assignmentInformationFactory);
49 $this->wordpress = $wordpress;
50 }
51
52 /**
53 * Returns the object and type name.
54 *
55 * @param string $objectId
56 * @param string $typeName
57 *
58 * @return string
59 */
60 public function getObjectName($objectId, &$typeName = '')
61 {
62 $typeName = $this->generalObjectType;
63 $roles = $this->wordpress->getRoles()->role_names;
64 return (isset($roles[$objectId]) === true) ? $roles[$objectId] : $objectId;
65 }
66
67 /**
68 * Checks if the role is a member of the user group.
69 *
70 * @param AbstractUserGroup $userGroup
71 * @param bool $lockRecursive
72 * @param string $objectId
73 * @param null|AssignmentInformation $assignmentInformation
74 *
75 * @return bool
76 */
77 public function isMember(AbstractUserGroup $userGroup, $lockRecursive, $objectId, &$assignmentInformation = null)
78 {
79 $isMember = $userGroup->isObjectAssignedToGroup(
80 $this->generalObjectType,
81 $objectId,
82 $assignmentInformation
83 );
84 $assignmentInformation = ($isMember === true) ? $assignmentInformation : null;
85
86 return $isMember;
87 }
88
89 /**
90 * Returns the full role objects.
91 *
92 * @param AbstractUserGroup $userGroup
93 * @param bool $lockRecursive
94 * @param null $objectType
95 *
96 * @return array
97 */
98 public function getFullObjects(AbstractUserGroup $userGroup, $lockRecursive, $objectType = null)
99 {
100 $objectType = ($objectType === null) ? $this->generalObjectType : $objectType;
101
102 return $this->getSimpleAssignedObjects($userGroup, $objectType);
103 }
104 }
105