Completed
Pull Request — master (#27)
by ARCANEDEV
04:07
created

UserConfirmator::confirm()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 13
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 3
Bugs 0 Features 0
Metric Value
c 3
b 0
f 0
dl 0
loc 13
ccs 0
cts 8
cp 0
rs 9.4285
cc 1
eloc 8
nc 1
nop 1
crap 2
1
<?php namespace Arcanedev\LaravelAuth\Services;
2
3
use Arcanedev\LaravelAuth\Events\Users\ConfirmedUser;
4
use Arcanedev\LaravelAuth\Events\Users\ConfirmingUser;
5
use Arcanesoft\Contracts\Auth\Models\User as UserContract;
6
use Carbon\Carbon;
7
use Illuminate\Support\Str;
8
9
/**
10
 * Class     UserConfirmator
11
 *
12
 * @package  Arcanedev\LaravelAuth\Services
13
 * @author   ARCANEDEV <[email protected]>
14
 */
15
class UserConfirmator
16
{
17
    /* -----------------------------------------------------------------
18
     |  Main Methods
19
     | -----------------------------------------------------------------
20
     */
21
22
    /**
23
     * Generate the confirmation code.
24
     *
25
     * @return string
26
     */
27 20
    public static function generateCode()
28
    {
29 20
        return Str::random(self::getLength());
30
    }
31
32
    /**
33
     * Confirm user account.
34
     *
35
     * @param  \Arcanesoft\Contracts\Auth\Models\User  $user
36
     *
37
     * @return \Arcanesoft\Contracts\Auth\Models\User
38
     */
39
    public function confirm(UserContract $user)
40
    {
41
        event(new ConfirmingUser($user));
42
43
        $user->setAttribute('is_confirmed',      true);
44
        $user->setAttribute('confirmation_code', null);
45
        $user->setAttribute('confirmed_at',      Carbon::now());
46
        $user->save();
47
48
        event(new ConfirmedUser($user));
49
50
        return $user;
51
    }
52
53
    /* -----------------------------------------------------------------
54
     |  Other Methods
55
     | -----------------------------------------------------------------
56
     */
57
58
    /**
59
     * Check if the confirmator is enabled.
60
     *
61
     * @return bool
62
     */
63 146
    public static function isEnabled()
64
    {
65 146
        return config('laravel-auth.user-confirmation.enabled', false);
66
    }
67
68
    /**
69
     * Get confirmation code length.
70
     *
71
     * @return int
72
     */
73 146
    public static function getLength()
74
    {
75 146
        return config('laravel-auth.user-confirmation.length', 30);
76
    }
77
}
78