AuthCheckerSubscriber   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 42
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 5

Importance

Changes 0
Metric Value
wmc 6
lcom 0
cbo 5
dl 0
loc 42
rs 10
c 0
b 0
f 0

4 Methods

Rating   Name   Duplication   Size   Complexity  
A subscribe() 0 6 1
A onUserLogin() 0 9 1
A onUserLoginFailed() 0 11 2
A onUserLoginLockout() 0 10 2
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