Bristol SU Support Package
src
Logic
Specification
FilterTrueSpecification.php
Go to the documentation of this file.
1
<?php
2
3
namespace
BristolSU\Support\Logic\Specification
;
4
5
use
BristolSU\ControlDB\Contracts\Models\Group
;
6
use
BristolSU\ControlDB\Contracts\Models\Role
;
7
use
BristolSU\ControlDB\Contracts\Models\User
;
8
use
BristolSU\Support\Filters\Contracts\FilterInstance
;
9
use
BristolSU\Support\Filters\Contracts\FilterTester
;
10
use
BristolSU\Support\Logic\Contracts\Specification
;
11
15
class
FilterTrueSpecification
implements
Specification
16
{
22
private
$filter
;
23
29
private
$user
;
30
36
private
$group
;
37
43
private
$role
;
44
51
public
function
__construct
(
FilterInstance
$filter
, ?User
$user
, ?Group
$group
, ?Role
$role
)
52
{
53
$this->filter =
$filter
;
54
$this->user =
$user
;
55
$this->group =
$group
;
56
$this->role =
$role
;
57
}
58
64
public
function
isSatisfied
(): bool
65
{
66
switch
($this->filter->for()) {
67
case
'user'
:
68
return
($this->user === null ?
false
:
69
app(FilterTester::class)->evaluate($this->filter, $this->user) ===
true
);
70
case
'group'
:
71
return
($this->group === null ?
false
:
72
app(FilterTester::class)->evaluate($this->filter, $this->group) ===
true
);
73
case
'role'
:
74
return
($this->role === null ?
false
:
75
app(FilterTester::class)->evaluate($this->filter, $this->role) ===
true
);
76
default
:
77
return
false
;
78
}
79
}
80
81
}
Specification
FilterInstance
BristolSU\Support\Logic\Specification\FilterTrueSpecification\$role
$role
Definition:
FilterTrueSpecification.php:43
User
BristolSU\Support\Filters\Contracts\FilterInstance
Definition:
FilterInstance.php:8
BristolSU\Support\Logic\Specification
Definition:
AndSpecification.php:4
Group
BristolSU\Support\Logic\Specification\FilterTrueSpecification
Definition:
FilterTrueSpecification.php:15
BristolSU\Support\Logic\Specification\FilterTrueSpecification\__construct
__construct(FilterInstance $filter, ?User $user, ?Group $group, ?Role $role)
Definition:
FilterTrueSpecification.php:51
BristolSU\Support\Logic\Specification\FilterTrueSpecification\$group
$group
Definition:
FilterTrueSpecification.php:36
Role
BristolSU\Support\Logic\Specification\FilterTrueSpecification\isSatisfied
isSatisfied()
Definition:
FilterTrueSpecification.php:64
BristolSU\Support\Logic\Contracts\Specification
Definition:
Specification.php:10
BristolSU\Support\Logic\Specification\FilterTrueSpecification\$user
$user
Definition:
FilterTrueSpecification.php:29
BristolSU\Support\Logic\Specification\FilterTrueSpecification\$filter
$filter
Definition:
FilterTrueSpecification.php:22
FilterTester
Generated by
1.8.13