Bristol SU Support Package
Tester.php
Go to the documentation of this file.
1 <?php
2 
3 
5 
6 
11 
15 abstract class Tester
16 {
17 
23  private $successor = null;
24 
25 
31  public function setNext(?Tester $tester = null)
32  {
33  $this->successor = $tester;
34  }
35 
46  public function handle(Permission $permission, ?User $user, ?Group $group, ?Role $role)
47  {
48  $result = $this->can($permission, $user, $group, $role);
49  if ($result === null && $this->successor !== null) {
50  return $this->successor->handle($permission, $user, $group, $role);
51  }
52  return $result;
53  }
54 
65  abstract public function can(Permission $permission, ?User $user, ?Group $group, ?Role $role): ?bool;
66 }
handle(Permission $permission, ?User $user, ?Group $group, ?Role $role)
Definition: Tester.php:46
can(Permission $permission, ?User $user, ?Group $group, ?Role $role)