Logs::userLog()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 17
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 17
rs 9.4285
cc 1
eloc 11
nc 1
nop 1
1
<?php
2
namespace App\Event;
3
4
use Cake\Event\Event;
5
use Cake\Event\EventListenerInterface;
6
use Cake\ORM\TableRegistry;
7
8
/**
9
 * Events descriptions.
10
 *
11
 * user.connection.manual.success : Triggered when the user login on the login page.
12
 * user.connection.manual.failed : Triggered when the user failed to login on the login page.
13
 * user.connection.auto : Triggered when the user is automated login with Cookies.
14
 * user.account.modify : Triggered when the user has modified his account.
15
 * user.email : Triggered when the user has changed his Email.
16
 * user.password.change : Triggered when the user has changed his password.
17
 * user.password.reset : Triggered when the user has asked a password reset.
18
 * user.password.reset.successful : Triggered when an user has successfully reset his password with the Email.
19
 * 2FA.enabled : Triggered when an user enbale the 2FA mode.
20
 * 2FA.disabled : Triggered when an user disable the 2FA mode.
21
 * 2FA.recovery_code.regenerate : Triggered when an user regenerate a new recovery code.
22
 * 2FA.recovery_code.used : Triggered when an user use his recovery code.
23
 */
24
25
class Logs implements EventListenerInterface
26
{
27
    /**
28
     * ImplementedEvents method.
29
     *
30
     * @return array
31
     */
32
    public function implementedEvents()
33
    {
34
        return [
35
            'Log.User' => 'userLog'
36
        ];
37
    }
38
39
    /**
40
     * An user has doing an important action, we log it.
41
     *
42
     * @param Event $event The event that was fired.
43
     *
44
     * @return bool
45
     */
46
    public function userLog(Event $event)
47
    {
48
        $this->UsersLogs = TableRegistry::get('UsersLogs');
0 ignored issues
show
Bug introduced by
The property UsersLogs does not exist. Did you maybe forget to declare it?

In PHP it is possible to write to properties without declaring them. For example, the following is perfectly valid PHP code:

class MyClass { }

$x = new MyClass();
$x->foo = true;

Generally, it is a good practice to explictly declare properties to avoid accidental typos and provide IDE auto-completion:

class MyClass {
    public $foo;
}

$x = new MyClass();
$x->foo = true;
Loading history...
49
50
        $data = [
51
            'user_id' => $event->getData('user_id'),
52
            'username' => $event->getData('username'),
53
            'user_ip' => $event->getData('user_ip'),
54
            'user_agent' => $event->getData('user_agent'),
55
            'action' => $event->getData('action')
56
        ];
57
58
        $entity = $this->UsersLogs->newEntity($data);
59
        $this->UsersLogs->save($entity);
60
61
        return true;
62
    }
63
}
64