Passed
Pull Request — master (#49)
by
unknown
03:08
created

LogSuccessfulOtherDeviceLogout   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 35
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
eloc 8
c 2
b 0
f 0
dl 0
loc 35
rs 10
wmc 3

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 1
A handle() 0 9 2
1
<?php
2
3
namespace Yadahan\AuthenticationLog\Listeners;
4
5
use Illuminate\Auth\Events\OtherDeviceLogout;
6
use Illuminate\Http\Request;
7
use Illuminate\Support\Carbon;
8
use Yadahan\AuthenticationLog\AuthenticationLog;
9
10
class LogSuccessfulOtherDeviceLogout
11
{
12
    /**
13
     * The request.
14
     *
15
     * @var \Illuminate\Http\Request
16
     */
17
    public $request;
18
19
    /**
20
     * Create the event listener.
21
     *
22
     * @param  \Illuminate\Http\Request  $request
23
     * @return void
24
     */
25
    public function __construct(Request $request)
26
    {
27
        $this->request = $request;
28
    }
29
30
    /**
31
     * Handle the event.
32
     *
33
     * @param  Logout  $event
0 ignored issues
show
Bug introduced by
The type Yadahan\AuthenticationLog\Listeners\Logout was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
34
     * @return void
35
     */
36
    public function handle(OtherDeviceLogout $event)
37
    {
38
        if ($event->user) {
39
            $user = $event->user;
40
41
            $authenticationLog = $user->authentications()->whereNull('logout_at')->get()->skip(1);
0 ignored issues
show
Bug introduced by
The method authentications() does not exist on Illuminate\Contracts\Auth\Authenticatable. It seems like you code against a sub-type of Illuminate\Contracts\Auth\Authenticatable such as Illuminate\Foundation\Auth\User. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

41
            $authenticationLog = $user->/** @scrutinizer ignore-call */ authentications()->whereNull('logout_at')->get()->skip(1);
Loading history...
42
43
            $user->authentications()->whereIn('id', $authenticationLog->pluck('id'))->update([
44
                'logout_at' => Carbon::now(),
45
            ]);
46
        }
47
    }
48
}
49