function CommentFieldItemList::access

Same name and namespace in other branches
  1. 9 core/modules/comment/src/CommentFieldItemList.php \Drupal\comment\CommentFieldItemList::access()
  2. 8.9.x core/modules/comment/src/CommentFieldItemList.php \Drupal\comment\CommentFieldItemList::access()
  3. 10 core/modules/comment/src/CommentFieldItemList.php \Drupal\comment\CommentFieldItemList::access()

Overrides FieldItemList::access

File

core/modules/comment/src/CommentFieldItemList.php, line 45

Class

CommentFieldItemList
Defines an item list class for comment fields.

Namespace

Drupal\comment

Code

public function access($operation = 'view', ?AccountInterface $account = NULL, $return_as_object = FALSE) {
    if ($operation === 'edit') {
        // Only users with administer comments permission can edit the comment
        // status field.
        $result = AccessResult::allowedIfHasPermission($account ?: \Drupal::currentUser(), 'administer comments');
        return $return_as_object ? $result : $result->isAllowed();
    }
    if ($operation === 'view') {
        // Only users with "post comments" or "access comments" permission can
        // view the field value. The formatter,
        // Drupal\comment\Plugin\Field\FieldFormatter\CommentDefaultFormatter,
        // takes care of showing the thread and form based on individual
        // permissions, so if a user only has ‘post comments’ access, only the
        // form will be shown and not the comments.
        $result = AccessResult::allowedIfHasPermission($account ?: \Drupal::currentUser(), 'access comments')->orIf(AccessResult::allowedIfHasPermission($account ?: \Drupal::currentUser(), 'post comments'));
        return $return_as_object ? $result : $result->isAllowed();
    }
    return parent::access($operation, $account, $return_as_object);
}

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