Completed
Push — master ( 6f059f...dc27cd )
by Rasmus
05:49
created

CheckAccept::validate()   A

Complexity

Conditions 3
Paths 2

Size

Total Lines 11
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 6
CRAP Score 3.0261

Importance

Changes 0
Metric Value
dl 0
loc 11
ccs 6
cts 7
cp 0.8571
rs 9.4285
c 0
b 0
f 0
cc 3
eloc 6
nc 2
nop 3
crap 3.0261
1
<?php
2
3
namespace mindplay\kissform\Validators;
4
5
use mindplay\kissform\Facets\FieldInterface;
6
use mindplay\kissform\Facets\ValidatorInterface;
7
use mindplay\kissform\InputModel;
8
use mindplay\kissform\InputValidation;
9
use mindplay\lang;
10
11
/**
12
 * Validate an acceptance checkbox (for confirmations, e.g. accepted privacy policy or terms of service)
13
 */
14
class CheckAccept implements ValidatorInterface
15
{
16
    /**
17
     * @var string expected checkbox value
18
     */
19
    private $checked_value;
20
21
    /**
22
     * @var string|null
23
     */
24
    private $error;
25
26
    /**
27
     * @param string      $checked_value expected checkbox value
28
     * @param string|null $error         optional custom error message
29
     */
30 2
    public function __construct($checked_value, $error = null)
31
    {
32 2
        $this->checked_value = $checked_value;
33 2
        $this->error = $error;
34 2
    }
35
36 1
    public function validate(FieldInterface $field, InputModel $model, InputValidation $validation)
37
    {
38 1
        $value = $model->getInput($field);
39
40 1
        if ($value != $this->checked_value) {
41 1
            $model->setError(
42
                $field,
43 1
                $this->error ?: lang::text("mindplay/kissform", "checked", ["field" => $validation->getLabel($field)])
44
            );
45
        }
46 1
    }
47
}
48