Bristol SU Support Package
src
Filters
Filters
Role
RoleHasPosition.php
Go to the documentation of this file.
1
<?php
2
3
4
namespace
BristolSU\Support\Filters\Filters\Role
;
5
6
7
use
BristolSU\ControlDB\Contracts\Repositories\Position
;
8
use
BristolSU\ControlDB\Contracts\Repositories\Position
as
PositionRepository
;
9
use
BristolSU\Support\Filters\Contracts\Filters\RoleFilter
;
10
use
FormSchema\Schema\Form
;
11
15
class
RoleHasPosition
extends
RoleFilter
16
{
22
private
$positionRepository
;
23
27
public
function
__construct
(Position
$positionRepository
)
28
{
29
$this->positionRepository =
$positionRepository
;
30
}
31
38
public
function
evaluate
($settings): bool
39
{
40
if
($this->
role
()->positionId() === (
int
) $settings[
'position'
]) {
41
return
true
;
42
}
43
return
false
;
44
}
45
55
public
function
options
(): Form
56
{
57
$positions = $this->positionRepository->all();
58
$values = [];
59
foreach
($positions as $position)
60
{
61
$values[] = [
62
'id'
=> $position->id(),
63
'name'
=> $position->data()->name(),
64
];
65
}
66
return \FormSchema\Generator\Form::make()->withField(
67
\
FormSchema
\Generator\Field::select(
'position'
)->values($values)->label(
'Position'
)
68
->required(
true
)
69
)->getSchema();
70
}
71
77
public
function
name
()
78
{
79
return
'Role has a position'
;
80
}
81
87
public
function
description
()
88
{
89
return
'Returns true if a role has a specific position'
;
90
}
91
97
public
function
alias
()
98
{
99
return
'role_has_position'
;
100
}
101
102
}
BristolSU\Support\Filters\Filters\Role\RoleHasPosition\alias
alias()
Definition:
RoleHasPosition.php:97
BristolSU\Support\Filters\Filters\Role\RoleHasPosition\description
description()
Definition:
RoleHasPosition.php:87
Form
BristolSU\Support\Filters\Filters\Role\RoleHasPosition\__construct
__construct(Position $positionRepository)
Definition:
RoleHasPosition.php:27
BristolSU\Support\Filters\Filters\Role\RoleHasPosition\evaluate
evaluate($settings)
Definition:
RoleHasPosition.php:38
BristolSU\Support\Filters\Filters\Role\RoleHasPosition\name
name()
Definition:
RoleHasPosition.php:77
BristolSU\Support\Filters\Contracts\Filters\RoleFilter
Definition:
RoleFilter.php:11
Position
BristolSU\Support\Filters\Filters\Role\RoleHasPosition
Definition:
RoleHasPosition.php:15
BristolSU\Support\Filters\Contracts\Filters\RoleFilter\role
role()
Definition:
RoleFilter.php:64
RoleFilter
BristolSU\Support\Filters\Filters\Role\RoleHasPosition\options
options()
Definition:
RoleHasPosition.php:55
BristolSU\Support\Filters\Filters\Role\RoleHasPosition\$positionRepository
$positionRepository
Definition:
RoleHasPosition.php:22
BristolSU\Support\Filters\Filters\Role
Definition:
RoleHasPosition.php:4
Generated by
1.8.13