Completed
Push — master ( 9c742a...1858b1 )
by Fèvre
14s
created

src/Event/Logs.php (1 issue)

Labels
Severity

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

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
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->data['user_id'],
52
            'username' => $event->data['username'],
53
            'user_ip' => $event->data['user_ip'],
54
            'user_agent' => $event->data['user_agent'],
55
            'action' => $event->data['action']
56
        ];
57
58
        $entity = $this->UsersLogs->newEntity($data);
59
        $this->UsersLogs->save($entity);
60
61
        return true;
62
    }
63
}
64