class LanguageAccessControlHandler

Same name and namespace in other branches
  1. 10 core/modules/language/src/LanguageAccessControlHandler.php \Drupal\language\LanguageAccessControlHandler
  2. 11.x core/modules/language/src/LanguageAccessControlHandler.php \Drupal\language\LanguageAccessControlHandler
  3. 8.9.x core/modules/language/src/LanguageAccessControlHandler.php \Drupal\language\LanguageAccessControlHandler

Defines the access control handler for the language entity type.

Hierarchy

Expanded class hierarchy of LanguageAccessControlHandler

See also

\Drupal\language\Entity\ConfigurableLanguage

File

core/modules/language/src/LanguageAccessControlHandler.php, line 15

Namespace

Drupal\language
View source
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();
    }
  }

}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.