diff --git a/availability/classes/info.php b/availability/classes/info.php index f7bf34456f371..e1d84bc283e92 100644 --- a/availability/classes/info.php +++ b/availability/classes/info.php @@ -634,7 +634,12 @@ public function filter_user_list(array $users) { return $users; } $tree = $this->get_availability_tree(); - $checker = new capability_checker($this->get_context()); + static $checkers = []; + $context = $this->get_context(); + if (!array_key_exists($context->id, $checkers)) { + $checkers[$context->id] = new capability_checker($context); + } + $checker = $checkers[$context->id]; // Filter using availability tree. $this->modinfo = get_fast_modinfo($this->get_course());