protected function ScheduledTransitionsAccessControlHandler::checkAccess in Scheduled Transitions 2.x
Same name and namespace in other branches
- 8 src/ScheduledTransitionsAccessControlHandler.php \Drupal\scheduled_transitions\ScheduledTransitionsAccessControlHandler::checkAccess()
Performs access checks.
This method is supposed to be overwritten by extending classes that do their own custom access checking.
Parameters
\Drupal\Core\Entity\EntityInterface $entity: The entity for which to check access.
string $operation: The entity operation. Usually one of 'view', 'view label', 'update' or 'delete'.
\Drupal\Core\Session\AccountInterface $account: The user for which to check access.
Return value
\Drupal\Core\Access\AccessResultInterface The access result.
Overrides EntityAccessControlHandler::checkAccess
File
- src/
ScheduledTransitionsAccessControlHandler.php, line 21
Class
- ScheduledTransitionsAccessControlHandler
- Access control handler for scheduled transitions.
Namespace
Drupal\scheduled_transitionsCode
protected function checkAccess(EntityInterface $entity, $operation, AccountInterface $account) : AccessResultInterface {
/** @var \Drupal\scheduled_transitions\Entity\ScheduledTransitionInterface $entity */
$access = parent::checkAccess($entity, $operation, $account);
if ($access
->isNeutral()) {
$entity = $entity
->getEntity();
if ($entity) {
// Defer access to associated entity.
return $entity
->access($operation, $account, TRUE);
}
}
if ($operation === ScheduledTransitionInterface::ENTITY_OPERATION_RESCHEDULE) {
$entity = $entity
->getEntity();
if ($entity) {
// Defer access to associated entity.
$access = $access
->andIf($entity
->access(ScheduledTransitionsPermissions::ENTITY_OPERATION_RESCHEDULE_TRANSITIONS, $account, TRUE));
}
}
return $access;
}