/** * @Hook("projects:resolved:node") * @param \Codex\Contracts\Projects\Projects $projects * @param \Codex\Projects\Project $project * @param \Codex\Menus\Node $node * * @throws \Codex\Exception\CodexException */ public function projectsResolvedNode(Projects $projects, Project $project, Node $node) { if (false === $this->hasEnabledAuth($project)) { return; } if (false === $project->hasAccess()) { $node->setMeta('hidden', true); // if all neighbors are hidden, hide the parent as well if ($node->hasParent() && $node->neighbors()->where('meta.hidden', true)->count() === count($node->getNeighbors())) { $node->getParent()->setMeta('hidden', true); } } }