AuthCheckerSubscriber::subscribe()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 6
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
1
<?php
2
3
namespace Lab404\AuthChecker\Subscribers;
4
5
use Illuminate\Auth\Events\Failed;
6
use Illuminate\Auth\Events\Lockout;
7
use Illuminate\Auth\Events\Login;
8
use Lab404\AuthChecker\Interfaces\HasLoginsAndDevicesInterface;
9
use Lab404\AuthChecker\Services\AuthChecker;
10
11
class AuthCheckerSubscriber
12
{
13
    public function subscribe($events): void
14
    {
15
        $events->listen(Login::class, [$this, 'onUserLogin']);
16
        $events->listen(Failed::class, [$this, 'onUserLoginFailed']);
17
        $events->listen(Lockout::class, [$this, 'onUserLoginLockout']);
18
    }
19
20
    public function onUserLogin(Login $event): void
21
    {
22
        /** @var HasLoginsAndDevicesInterface $user */
23
        $user = $event->user;
24
25
        /** @var AuthChecker $manager */
26
        $manager = app('authchecker');
27
        $manager->handleLogin($user);
28
    }
29
30
    public function onUserLoginFailed(Failed $event): void
31
    {
32
        /** @var HasLoginsAndDevicesInterface $user */
33
        $user = $event->user;
34
35
        if (!is_null($user)) {
36
            /** @var AuthChecker $manager */
37
            $manager = app('authchecker');
38
            $manager->handleFailed($user);
39
        }
40
    }
41
42
    public function onUserLoginLockout(Lockout $event): void
43
    {
44
        $payload = $event->request->all();
45
46
        if (!empty($payload)) {
47
            /** @var AuthChecker $manager */
48
            $manager = app('authchecker');
49
            $manager->handleLockout($payload);
50
        }
51
    }
52
}
53