Mercurial > hg > isophonics-drupal-site
view core/modules/language/src/LanguageAccessControlHandler.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children |
line wrap: on
line source
<?php namespace Drupal\language; use Drupal\Core\Access\AccessResult; use Drupal\Core\Entity\EntityAccessControlHandler; use Drupal\Core\Entity\EntityInterface; use Drupal\Core\Session\AccountInterface; /** * Defines the access control handler for the language entity type. * * @see \Drupal\language\Entity\Language */ class LanguageAccessControlHandler extends EntityAccessControlHandler { /** * {@inheritdoc} */ protected function checkAccess(EntityInterface $entity, $operation, AccountInterface $account) { switch ($operation) { case 'view': return parent::checkAccess($entity, $operation, $account); case 'update': /* @var \Drupal\Core\Language\LanguageInterface $entity */ return AccessResult::allowedIf(!$entity->isLocked())->addCacheableDependency($entity) ->andIf(parent::checkAccess($entity, $operation, $account)); case 'delete': /* @var \Drupal\Core\Language\LanguageInterface $entity */ return AccessResult::allowedIf(!$entity->isLocked())->addCacheableDependency($entity) ->andIf(AccessResult::allowedIf(!$entity->isDefault())->addCacheableDependency($entity)) ->andIf(parent::checkAccess($entity, $operation, $account)); default: // No opinion. return AccessResult::neutral(); } } }