Commit 09b2b120 authored by Peter Majmesku's avatar Peter Majmesku
Browse files

feat: #3032557 Integration with jsonapi

parent ee21367c
Loading
Loading
Loading
Loading
Loading
+1 −1
Changes for permissions_by_term.module: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -448,7 +448,7 @@ function permissions_by_term_node_access(NodeInterface $node, $op, AccountInterf
  /** @var \Drupal\permissions_by_term\Service\AccessCheck $accessCheck */
  $accessCheck = \Drupal::service('permissions_by_term.access_check');

  $accessCheck->dispatchDeniedEventOnRestricedAccess($node, $node->language()->getId());
  return $accessCheck->dispatchDeniedEventOnRestricedAccess($node, $node->language()->getId());
}

/**
+5 −3
Changes for src/Service/AccessCheck.php: 5 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -288,18 +288,20 @@ class AccessCheck {
  /**
   * Dispatches an access denied event if the user cannot access the given node.
   */
  public function dispatchDeniedEventOnRestricedAccess(Node $node, string $langcode): void {
  public function dispatchDeniedEventOnRestricedAccess(Node $node, string $langcode) {
    if (!$this->canUserAccessByNode($node, FALSE, $langcode)) {
      $this->dispatchDeniedEvent($node->id());
      return $this->dispatchDeniedEvent($node->id());
    }
    return AccessResult::neutral();
  }

  /**
   * Dispatches a custom access denied event for a given node.
   */
  private function dispatchDeniedEvent($nodeId): void {
  private function dispatchDeniedEvent($nodeId) {
    $accessDeniedEvent = new PermissionsByTermDeniedEvent($nodeId);
    $this->eventDispatcher->dispatch($accessDeniedEvent, PermissionsByTermDeniedEvent::NAME);
    return AccessResult::forbidden();
  }

  /**