PluginProbe
User Access Manager / 2.1.10
User Access Manager v2.1.10
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.10, at src/ObjectMembership/RoleMembershipHandler.php

107 lines 3.1 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 * @throws \Exception
47 */
48 public function __construct(AssignmentInformationFactory $assignmentInformationFactory, Wordpress $wordpress)
49 {
50 parent::__construct($assignmentInformationFactory);
51 $this->wordpress = $wordpress;
52 }
53
54 /**
55 * Returns the object and type name.
56 *
57 * @param string $objectId
58 * @param string $typeName
59 *
60 * @return string
61 */
62 public function getObjectName($objectId, &$typeName = '')
63 {
64 $typeName = $this->generalObjectType;
65 $roles = $this->wordpress->getRoles()->role_names;
66 return (isset($roles[$objectId]) === true) ? $roles[$objectId] : $objectId;
67 }
68
69 /**
70 * Checks if the role is a member of the user group.
71 *
72 * @param AbstractUserGroup $userGroup
73 * @param bool $lockRecursive
74 * @param string $objectId
75 * @param null|AssignmentInformation $assignmentInformation
76 *
77 * @return bool
78 */
79 public function isMember(AbstractUserGroup $userGroup, $lockRecursive, $objectId, &$assignmentInformation = null)
80 {
81 $isMember = $userGroup->isObjectAssignedToGroup(
82 $this->generalObjectType,
83 $objectId,
84 $assignmentInformation
85 );
86 $assignmentInformation = ($isMember === true) ? $assignmentInformation : null;
87
88 return $isMember;
89 }
90
91 /**
92 * Returns the full role objects.
93 *
94 * @param AbstractUserGroup $userGroup
95 * @param bool $lockRecursive
96 * @param null $objectType
97 *
98 * @return array
99 */
100 public function getFullObjects(AbstractUserGroup $userGroup, $lockRecursive, $objectType = null)
101 {
102 $objectType = ($objectType === null) ? $this->generalObjectType : $objectType;
103
104 return $this->getSimpleAssignedObjects($userGroup, $objectType);
105 }
106 }
107