code: public function checkAccess($userId, $permissionName, $params = [])
      {
          if (isset($this->_checkAccessAssignments[(string) $userId])) {
              $assignments = $this->_checkAccessAssignments[(string) $userId];
          } else {
              $assignments = $this->getAssignments($userId);
              $this->_checkAccessAssignments[(string) $userId] = $assignments;
          }
  
          if ($this->hasNoAssignments($assignments)) {
              return false;
          }
  
          $this->loadFromCache();
          if ($this->items !== null) {
              return $this->checkAccessFromCache($userId, $permissionName, $params, $assignments);
          }
  
          return $this->checkAccessRecursive($userId, $permissionName, $params, $assignments);
      }
docs: {@inheritdoc}