class ShortcutAccessControlHandler
Same name and namespace in other branches
- 11.x core/modules/shortcut/src/ShortcutAccessControlHandler.php \Drupal\shortcut\ShortcutAccessControlHandler
- 10 core/modules/shortcut/src/ShortcutAccessControlHandler.php \Drupal\shortcut\ShortcutAccessControlHandler
- 8.9.x core/modules/shortcut/src/ShortcutAccessControlHandler.php \Drupal\shortcut\ShortcutAccessControlHandler
Defines the access control handler for the shortcut entity type.
Hierarchy
- class \Drupal\Core\Entity\EntityHandlerBase uses \Drupal\Core\StringTranslation\StringTranslationTrait, \Drupal\Core\DependencyInjection\DependencySerializationTrait
- class \Drupal\Core\Entity\EntityAccessControlHandler implements \Drupal\Core\Entity\EntityAccessControlHandlerInterface extends \Drupal\Core\Entity\EntityHandlerBase
- class \Drupal\shortcut\ShortcutAccessControlHandler implements \Drupal\Core\Entity\EntityHandlerInterface extends \Drupal\Core\Entity\EntityAccessControlHandler
- class \Drupal\Core\Entity\EntityAccessControlHandler implements \Drupal\Core\Entity\EntityAccessControlHandlerInterface extends \Drupal\Core\Entity\EntityHandlerBase
Expanded class hierarchy of ShortcutAccessControlHandler
See also
\Drupal\shortcut\Entity\Shortcut
File
-
core/
modules/ shortcut/ src/ ShortcutAccessControlHandler.php, line 18
Namespace
Drupal\shortcutView source
class ShortcutAccessControlHandler extends EntityAccessControlHandler implements EntityHandlerInterface {
/**
* The shortcut_set storage.
*
* @var \Drupal\shortcut\ShortcutSetStorageInterface
*/
protected $shortcutSetStorage;
/**
* Constructs a ShortcutAccessControlHandler object.
*
* @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
* The entity type definition.
* @param \Drupal\shortcut\ShortcutSetStorageInterface $shortcut_set_storage
* The shortcut_set storage.
*/
public function __construct(EntityTypeInterface $entity_type, ShortcutSetStorageInterface $shortcut_set_storage) {
parent::__construct($entity_type);
$this->shortcutSetStorage = $shortcut_set_storage;
}
/**
* {@inheritdoc}
*/
public static function createInstance(ContainerInterface $container, EntityTypeInterface $entity_type) {
return new static($entity_type, $container->get('entity_type.manager')
->getStorage('shortcut_set'));
}
/**
* {@inheritdoc}
*/
protected function checkAccess(EntityInterface $entity, $operation, AccountInterface $account) {
if ($shortcut_set = $this->shortcutSetStorage
->load($entity->bundle())) {
return shortcut_set_edit_access($shortcut_set, $account);
}
// @todo Fix this bizarre code: how can a shortcut exist without a shortcut
// set? The above if-test is unnecessary. See https://www.drupal.org/node/2339903.
return AccessResult::neutral()->addCacheableDependency($entity);
}
/**
* {@inheritdoc}
*/
protected function checkCreateAccess(AccountInterface $account, array $context, $entity_bundle = NULL) {
if ($shortcut_set = $this->shortcutSetStorage
->load($entity_bundle)) {
return shortcut_set_edit_access($shortcut_set, $account);
}
// @todo Fix this bizarre code: how can a shortcut exist without a shortcut
// set? The above if-test is unnecessary. See https://www.drupal.org/node/2339903.
return AccessResult::neutral();
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.