Passed
Push — master ( b8147c...403ced )
by Curtis
11:47 queued 05:39
created

ValidateUserRequest::withValidator()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 6
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
cc 2
eloc 4
c 1
b 0
f 1
nc 2
nop 1
dl 0
loc 6
rs 10
1
<?php
2
3
namespace App\Http\Requests\enso\Core;
4
5
use Illuminate\Foundation\Http\FormRequest;
6
use Illuminate\Validation\Rule;
7
use App\Http\Requests\enso\Core\PasswordValidator;
8
9
class ValidateUserRequest extends FormRequest
10
{
11
    public function authorize()
12
    {
13
        return true;
14
    }
15
16
    public function rules()
17
    {
18
        return [
19
            'person_id' => 'exists:people,id',
20
            'group_id' => 'required|exists:user_groups,id',
21
            'role_id' => 'required|exists:roles,id',
22
            'email' => ['email', 'required', $this->emailUnique()],
23
            'password' => 'confirmed|min:'.config('enso.auth.password.minLength'),
24
            'is_active' => 'boolean',
25
        ];
26
    }
27
28
    public function withValidator($validator)
29
    {
30
        if ($this->filled('password')) {
31
            $validator->after(fn ($validator) => (new PasswordValidator(
32
                $this, $validator, $this->route('user')
33
            ))->handle());
34
        }
35
    }
36
37
    protected function emailUnique()
38
    {
39
        return Rule::unique('people', 'email')->ignore($this->get('person_id'));
40
    }
41
}
42