You are here

private function AccessStorage::computePermittedTids in Permissions by Term 8

Same name and namespace in other branches
  1. 8.2 src/Service/AccessStorage.php \Drupal\permissions_by_term\Service\AccessStorage::computePermittedTids()
1 call to AccessStorage::computePermittedTids()
AccessStorage::getGids in src/Service/AccessStorage.php

File

src/Service/AccessStorage.php, line 642

Class

AccessStorage
Class AccessStorage.

Namespace

Drupal\permissions_by_term\Service

Code

private function computePermittedTids(AccountInterface $user) {
  $nidsWithNoTidRestriction = $this
    ->getUnrestrictedNids();
  $nidsByTids = $this->term
    ->getNidsByTids($this
    ->getPermittedTids($user
    ->id(), $user
    ->getRoles()));
  if (\Drupal::config('permissions_by_term.settings.single_term_restriction')
    ->get('value')) {
    $permittedNids = [];
    foreach ($nidsByTids as $nid) {
      if ($this->accessCheck
        ->canUserAccessByNodeId($nid, $user
        ->id(), $this
        ->getLangCode($nid))) {
        $permittedNids[] = $nid;
      }
    }
    $nidsByTids = $permittedNids;
  }
  if (!empty($nidsByTids)) {
    return array_merge($this
      ->getUnrestrictedNids(), $nidsByTids);
  }
  return $nidsWithNoTidRestriction;
}