Validator::validatePasswordChangeForm()   B
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 25
Code Lines 18

Duplication

Lines 7
Ratio 28 %

Importance

Changes 3
Bugs 1 Features 0
Metric Value
c 3
b 1
f 0
dl 7
loc 25
rs 8.8571
cc 2
eloc 18
nc 2
nop 1
1
<?php
2
3
namespace App\Validation;
4
5
use Albert221\Validation\Validator as v;
6
use Albert221\Validation\Rule;
7
8
// Custom rules
9
use App\Validation\Rules\EmailAvailable as EmailAvailable;
10
use App\Validation\Rules\EmailOccupied as EmailOccupied;
11
use App\Validation\Rules\PasswordValid as PasswordValid;
12
use App\Validation\Rules\PasswordOld as PasswordOld;
13
use App\Validation\Rules\PasswordNotOld as PasswordNotOld;
14
15
class Validator extends v
16
{
17
    public function validateRegisterForm($request)
18
    {
19
        $fields = [
20
            'email',
21
            'password',
22
            'name',
23
        ];
24
25 View Code Duplication
        foreach ($fields as $field) {
26
            $this->addField($field, $request->getParam($field));
27
            $this->addRule($field, new Rule\Required())
28
                ->setMessage('To pole nie może być puste');
29
            $this->addRule($field, new Rule\MinLength(3))
30
                ->setMessage('Wartość tego pola nie może być krótsza niż 3');
31
            $this->addRule($field, new Rule\MaxLength(25))
32
                ->setMessage('Wartość tego pola nie może być dłuższa niż 25');
33
        }
34
35
        $this->addRule('email', new Rule\Email())
36
            ->setMessage('Wprowadź poprawny adres email');
37
        $this->addRule('email', new EmailAvailable());
38
        //$this->addRule('name', new Rule\Alphanumeric())
39
        //    ->setMessage('To pole przyjmuje tylko wartości alfanumeryczne');
40
41
        return $this->validate();
42
    }
43
44
    public function validateLoginForm($request)
45
    {
46
        $fields = [
47
            'email',
48
            'password',
49
        ];
50
51
        foreach ($fields as $field) {
52
            $this->addField($field, $request->getParam($field));
53
            $this->addRule($field, new Rule\Required())
54
                ->setMessage('To pole nie może być puste');
55
        }
56
57
        $this->addRule('email', new EmailOccupied());
58
        $this->addRule('password', new PasswordValid($request->getParam('email')));
59
60
        return $this->validate();
61
    }
62
63
    public function validatePasswordChangeForm($request)
64
    {
65
        $fields = [
66
            'password_old',
67
            'password1',
68
            'password2',
69
        ];
70
71 View Code Duplication
        foreach ($fields as $field) {
72
            $this->addField($field, $request->getParam($field));
73
            $this->addRule($field, new Rule\Required())
74
                ->setMessage('To pole nie może być puste');
75
            $this->addRule($field, new Rule\MinLength(3))
76
                ->setMessage('Wartość tego pola nie może być krótsza niż 3');
77
            $this->addRule($field, new Rule\MaxLength(25))
78
                ->setMessage('Wartość tego pola nie może być dłuższa niż 25');
79
        }
80
81
        $this->addRule('password_old', new PasswordOld());
82
        $this->addRule('password1', new PasswordNotOld());
83
        $this->addRule('password2', new Rule\Equal($request->getParam('password1')))
84
            ->setMessage('Błędnie powtórzono hasło');
85
86
        return $this->validate();
87
    }
88
}
89