Completed
Push — master ( 6e4b3b...01af8d )
by ARCANEDEV
03:09
created

CreateUserRequest::all()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 6
ccs 0
cts 6
cp 0
rs 9.4286
cc 1
eloc 3
nc 1
nop 0
crap 2
1
<?php namespace Arcanesoft\Auth\Http\Requests\Backend\Users;
2
3
use Arcanesoft\Auth\Bases\FormRequest;
4
use Illuminate\Support\Facades\Cache;
5
6
/**
7
 * Class     CreateUserRequest
8
 *
9
 * @package  Arcanesoft\Auth\Http\Requests\Backend\Users
10
 * @author   ARCANEDEV <[email protected]>
11
 */
12
class CreateUserRequest extends FormRequest
13
{
14
    /* ------------------------------------------------------------------------------------------------
15
     |  Properties
16
     | ------------------------------------------------------------------------------------------------
17
     */
18
    /**
19
     * Role validation rules.
20
     *
21
     * @var array
22
     */
23
    protected $rules = [
24
        'username'              => 'required|min:3|unique:users,username',
25
        'email'                 => 'required|email|unique:users,email',
26
        'first_name'            => 'required|min:2',
27
        'last_name'             => 'required|min:2',
28
        'password'              => 'required|min:8|confirmed',
29
        'password_confirmation' => 'required|min:8',
30
        'roles'                 => 'required|array|min:1',
31
    ];
32
33
    /* ------------------------------------------------------------------------------------------------
34
     |  Main Functions
35
     | ------------------------------------------------------------------------------------------------
36
     */
37
    /**
38
     * Determine if the user is authorized to make this request.
39
     *
40
     * @return bool
41
     */
42
    public function authorize()
43
    {
44
        return true;
45
    }
46
47
    /**
48
     * Get the validation rules that apply to the request.
49
     *
50
     * @return array
51
     */
52
    public function rules()
53
    {
54
        $rules = $this->rules;
55
56
        $rules['roles'] .= '|in:' . $this->getRoleIds()->implode(',');
57
58
        return $rules;
59
    }
60
61
    /**
62
     * {@inheritdoc}
63
     */
64
    public function all()
65
    {
66
        return array_merge(parent::all(), [
67
            'username' => str_slug($this->get('username'))
68
        ]);
69
    }
70
71
    /* ------------------------------------------------------------------------------------------------
72
     |  Other Functions
73
     | ------------------------------------------------------------------------------------------------
74
     */
75
    /**
76
     * Get the role ids.
77
     *
78
     * @return \Illuminate\Database\Eloquent\Collection
79
     */
80
    private function getRoleIds()
81
    {
82
        return Cache::remember('auth.roles.ids', 5, function () {
83
            return app(\Arcanesoft\Contracts\Auth\Models\Role::class)->lists('id');
84
        });
85
    }
86
}
87