FieldStorageConfigAccessControlHandler.php

Same filename and directory in other branches
  1. 8.9.x core/modules/field/src/FieldStorageConfigAccessControlHandler.php
  2. 10 core/modules/field/src/FieldStorageConfigAccessControlHandler.php
  3. 11.x core/modules/field/src/FieldStorageConfigAccessControlHandler.php

Namespace

Drupal\field

File

core/modules/field/src/FieldStorageConfigAccessControlHandler.php

View source
<?php

namespace Drupal\field;

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 field storage config entity type.
 *
 * @see \Drupal\field\Entity\FieldStorageConfig
 */
class FieldStorageConfigAccessControlHandler extends EntityAccessControlHandler {
    
    /**
     * {@inheritdoc}
     */
    protected function checkAccess(EntityInterface $entity, $operation, AccountInterface $account) {
        
        /** \Drupal\field\FieldStorageConfigInterface $entity */
        if ($operation === 'delete') {
            if ($entity->isLocked()) {
                return AccessResult::forbidden()->addCacheableDependency($entity);
            }
            else {
                return AccessResult::allowedIfHasPermission($account, 'administer ' . $entity->getTargetEntityTypeId() . ' fields')
                    ->addCacheableDependency($entity);
            }
        }
        return AccessResult::allowedIfHasPermission($account, 'administer ' . $entity->getTargetEntityTypeId() . ' fields');
    }

}

Classes

Title Deprecated Summary
FieldStorageConfigAccessControlHandler Defines the access control handler for the field storage config entity type.

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