if (!
$event->
getDefinition() instanceof AclRoleDefinition
) { return;
} /** @var AclRoleEntity[] $aclRoles */
$aclRoles =
$event->
getEntities();
if (!
$aclRoles) { return;
} $additionalRolePrivileges =
$this->
getAdditionalRolePrivileges();
foreach ($additionalRolePrivileges as $additionalRole =>
$additionalPrivileges) { foreach ($aclRoles as $aclRole) { if ($additionalRole === AclRoleDefinition::ALL_ROLE_KEY || \
in_array($additionalRole,
$aclRole->
getPrivileges(), true
)) { $newPrivileges =
array_values(array_unique(array_merge($aclRole->
getPrivileges(),
$additionalPrivileges)));
$aclRole->
setPrivileges($newPrivileges);
} } } }