ILIAS  trunk Revision v12.0_alpha-1540-g00f839d5fa1
CapabilityCollection.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
22
27{
31 public function __construct(
32 private array $capabilities
33 ) {
34 }
35
36 public function all(): array
37 {
38 return $this->capabilities;
39 }
40
41 public function get(Capabilities $capability): Capability|false
42 {
43 foreach ($this->capabilities as $cap) {
44 if ($cap->getCapability() === $capability) {
45 return $cap;
46 }
47 }
48 return false;
49 }
50
51 public function getBest(): Capability
52 {
53 foreach ($this->capabilities as $cap) {
54 if ($cap->isUnlocked()) {
55 return $cap;
56 }
57 }
58 return new Capability(Capabilities::NONE, Permissions::NONE);
59 }
60
61 public function getBestOf(Capabilities ...$capabilities): Capability
62 {
63 foreach ($capabilities as $capability) {
64 foreach ($this->capabilities as $cap) {
65 if ($cap->getCapability() === $capability && $cap->isUnlocked()) {
66 return $cap;
67 }
68 }
69 }
70 return new Capability(Capabilities::NONE, Permissions::NONE);
71 }
72
73}
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...