DateFormatAccessControlHandler.php

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

Namespace

Drupal\system

File

core/modules/system/src/DateFormatAccessControlHandler.php

View source
<?php

namespace Drupal\system;

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 date format entity type.
 *
 * @see \Drupal\system\Entity\DateFormat
 */
class DateFormatAccessControlHandler extends EntityAccessControlHandler {
    
    /**
     * {@inheritdoc}
     */
    protected $viewLabelOperation = TRUE;
    
    /**
     * {@inheritdoc}
     */
    protected function checkAccess(EntityInterface $entity, $operation, AccountInterface $account) {
        // There are no restrictions on viewing the label of a date format.
        if ($operation === 'view label') {
            return AccessResult::allowed();
        }
        elseif (in_array($operation, [
            'update',
            'delete',
        ])) {
            if ($entity->isLocked()) {
                return AccessResult::forbidden('The DateFormat config entity is locked.')->addCacheableDependency($entity);
            }
            else {
                return parent::checkAccess($entity, $operation, $account)->addCacheableDependency($entity);
            }
        }
        return parent::checkAccess($entity, $operation, $account);
    }

}

Classes

Title Deprecated Summary
DateFormatAccessControlHandler Defines the access control handler for the date format entity type.

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