class ViewModel::AccessControl::Tree::Node

def visible_check(traversal_env)

def visible_check(traversal_env)
  view    = traversal_env.view
  context = traversal_env.context
  validate_root!(view, context)
  if context.root?
    save_root_visibility!(traversal_env)
    super
  else
    root_visibility = fetch_descendent_visibility(context.nearest_root_viewmodel)
    root_visibility.merge { super }
  end
end