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

58 lines 1.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 declare(strict_types=1);
4
5 namespace UserAccessManager\ObjectMembership;
6
7 use Exception;
8 use UserAccessManager\Object\ObjectHandler;
9 use UserAccessManager\UserGroup\AbstractUserGroup;
10 use UserAccessManager\UserGroup\AssignmentInformation;
11 use UserAccessManager\UserGroup\AssignmentInformationFactory;
12 use UserAccessManager\Wrapper\Wordpress;
13
14 class RoleMembershipHandler extends ObjectMembershipHandler
15 {
16 protected ?string $generalObjectType = ObjectHandler::GENERAL_ROLE_OBJECT_TYPE;
17
18 /**
19 * @throws Exception
20 */
21 public function __construct(
22 AssignmentInformationFactory $assignmentInformationFactory,
23 private Wordpress $wordpress
24 ) {
25 parent::__construct($assignmentInformationFactory);
26 }
27
28 public function getObjectName(int|string|null $objectId, string &$typeName = ''): int|string
29 {
30 $typeName = $this->generalObjectType;
31 $roles = $this->wordpress->getRoles()->role_names;
32 return (isset($roles[$objectId]) === true) ? $roles[$objectId] : $objectId;
33 }
34
35 public function isMember(
36 AbstractUserGroup $userGroup,
37 bool $lockRecursive,
38 int|string|null $objectId,
39 ?AssignmentInformation &$assignmentInformation = null
40 ): bool {
41 $isMember = $userGroup->isObjectAssignedToGroup(
42 $this->generalObjectType,
43 $objectId,
44 $assignmentInformation
45 );
46 $assignmentInformation = ($isMember === true) ? $assignmentInformation : null;
47
48 return $isMember;
49 }
50
51 public function getFullObjects(AbstractUserGroup $userGroup, bool $lockRecursive, $objectType = null): array
52 {
53 $objectType = ($objectType === null) ? $this->generalObjectType : $objectType;
54
55 return $this->getSimpleAssignedObjects($userGroup, $objectType);
56 }
57 }
58