public function EventMeta::canRegisterProxyIdentities in RNG - Events and Registrations 8
Same name and namespace in other branches
- 8.2 src/EventMeta.php \Drupal\rng\EventMeta::canRegisterProxyIdentities()
- 3.x src/EventMeta.php \Drupal\rng\EventMeta::canRegisterProxyIdentities()
Determine if the current user has proxy register access.
Includes whether the current user can create an identity.
Return value
boolean Whether the current user can create an identity or reference at least one identity.
Overrides EventMetaInterface::canRegisterProxyIdentities
File
- src/
EventMeta.php, line 434
Class
- EventMeta
- Meta event wrapper for RNG.
Namespace
Drupal\rngCode
public function canRegisterProxyIdentities() {
// Create is checked first since it is usually the cheapest.
$identity_types = $this
->getCreatableIdentityTypes();
foreach ($identity_types as $entity_type_id => $bundles) {
$accessControl = $this->entityManager
->getAccessControlHandler($entity_type_id);
if ($this
->entityTypeHasBundles($entity_type_id)) {
foreach ($bundles as $bundle) {
if ($accessControl
->createAccess($bundle)) {
return TRUE;
}
}
}
elseif (!empty($bundles)) {
if ($accessControl
->createAccess()) {
return TRUE;
}
}
}
// Reference existing.
$identity_types = $this
->getIdentityTypes();
foreach ($identity_types as $entity_type_id => $bundles) {
$referencable_bundles = $this
->entityTypeHasBundles($entity_type_id) ? $bundles : [];
$count = $this
->countRngReferenceableEntities($entity_type_id, $referencable_bundles);
if ($count > 0) {
return TRUE;
}
}
return FALSE;
}