Bristol SU Support Package
LogicTester.php
Go to the documentation of this file.
1 <?php
2 
4 
13 
18 {
19 
30  public function evaluate(Logic $logic, $userModel = null, $groupModel = null, $roleModel = null): bool
31  {
32  $allTrue = [];
33  $anyTrue = [];
34  $allFalse = [];
35  $anyFalse = [];
36 
37  foreach ($logic->allTrueFilters as $filter) {
38  $allTrue[] = new FilterTrueSpecification($filter, $userModel, $groupModel, $roleModel);
39  }
40 
41  foreach ($logic->anyTrueFilters as $filter) {
42  $anyTrue[] = new FilterTrueSpecification($filter, $userModel, $groupModel, $roleModel);
43  }
44 
45  foreach ($logic->allFalseFilters as $filter) {
46  $allFalse[] = new FilterFalseSpecification($filter, $userModel, $groupModel, $roleModel);
47  }
48 
49  foreach ($logic->anyFalseFilters as $filter) {
50  $anyFalse[] = new FilterFalseSpecification($filter, $userModel, $groupModel, $roleModel);
51  }
52 
53 
54  return (new AndSpecification(
55  new AndSpecification(...$allTrue),
56  new OrSpecification(...$anyTrue),
57  new AndSpecification(...$allFalse),
58  new OrSpecification(...$anyFalse)
59  ))->isSatisfied();
60  }
61 
62 
63 }
evaluate(Logic $logic, $userModel=null, $groupModel=null, $roleModel=null)
Definition: LogicTester.php:30