PluginProbe
User Access Manager / 2.2.5
User Access Manager v2.2.5
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.2.5, 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
16 declare(strict_types=1);
17
18 namespace UserAccessManager\ObjectMembership;
19
20 use Exception;
21 use UserAccessManager\Object\ObjectHandler;
22 use UserAccessManager\UserGroup\AbstractUserGroup;
23 use UserAccessManager\UserGroup\AssignmentInformation;
24 use UserAccessManager\UserGroup\AssignmentInformationFactory;
25 use UserAccessManager\Wrapper\Wordpress;
26
27 /**
28 * Class RoleMembershipHandler
29 *
30 * @package UserAccessManager\UserGroup
31 */
32 class RoleMembershipHandler extends ObjectMembershipHandler
33 {
34 /**
35 * @var Wordpress
36 */
37 private $wordpress;
38
39 /**
40 * @var string
41 */
42 protected $generalObjectType = ObjectHandler::GENERAL_ROLE_OBJECT_TYPE;
43
44 /**
45 * RoleMembershipHandler constructor.
46 * @param AssignmentInformationFactory $assignmentInformationFactory
47 * @param Wordpress $wordpress
48 * @throws Exception
49 */
50 public function __construct(AssignmentInformationFactory $assignmentInformationFactory, Wordpress $wordpress)
51 {
52 parent::__construct($assignmentInformationFactory);
53 $this->wordpress = $wordpress;
54 }
55
56 /**
57 * Returns the object and type name.
58 * @param int|string $objectId
59 * @param string $typeName
60 * @return int|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 * @param AbstractUserGroup $userGroup
72 * @param bool $lockRecursive
73 * @param int|string $objectId
74 * @param null|AssignmentInformation $assignmentInformation
75 * @return bool
76 */
77 public function isMember(
78 AbstractUserGroup $userGroup,
79 bool $lockRecursive,
80 $objectId,
81 ?AssignmentInformation &$assignmentInformation = null
82 ): bool {
83 $isMember = $userGroup->isObjectAssignedToGroup(
84 $this->generalObjectType,
85 $objectId,
86 $assignmentInformation
87 );
88 $assignmentInformation = ($isMember === true) ? $assignmentInformation : null;
89
90 return $isMember;
91 }
92
93 /**
94 * Returns the full role objects.
95 * @param AbstractUserGroup $userGroup
96 * @param bool $lockRecursive
97 * @param null $objectType
98 * @return array
99 */
100 public function getFullObjects(AbstractUserGroup $userGroup, bool $lockRecursive, $objectType = null): array
101 {
102 $objectType = ($objectType === null) ? $this->generalObjectType : $objectType;
103
104 return $this->getSimpleAssignedObjects($userGroup, $objectType);
105 }
106 }
107