Completed
Pull Request — master (#9)
by ARCANEDEV
10:30
created

UserObserver::updating()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 2
Bugs 0 Features 0
Metric Value
c 2
b 0
f 0
dl 0
loc 4
rs 10
ccs 3
cts 3
cp 1
cc 1
eloc 2
nc 1
nop 1
crap 1
1
<?php namespace Arcanedev\LaravelAuth\Observers;
2
3
use Arcanedev\LaravelAuth\Bases\ModelObserver;
4
use Arcanedev\LaravelAuth\Services\UserConfirmator;
5
use Arcanesoft\Contracts\Auth\Models\User;
6
7
/**
8
 * Class     UserObserver
9
 *
10
 * @package  Arcanedev\LaravelAuth\Observers
11
 * @author   ARCANEDEV <[email protected]>
12
 */
13
class UserObserver extends ModelObserver
14
{
15
    /* ------------------------------------------------------------------------------------------------
16
     |  Model Events
17
     | ------------------------------------------------------------------------------------------------
18
     */
19
    /**
20
     * Eloquent 'creating' event method.
21
     *
22
     * @param  \Arcanedev\LaravelAuth\Models\User|User  $user
23
     *
24
     * @return mixed
25
     */
26 160
    public function creating(User $user)
27
    {
28 160
        if (UserConfirmator::isEnabled()) {
29 160
            $user->confirmation_code = UserConfirmator::generateCode();
0 ignored issues
show
Bug introduced by
Accessing confirmation_code on the interface Arcanesoft\Contracts\Auth\Models\User suggest that you code against a concrete implementation. How about adding an instanceof check?

If you access a property on an interface, you most likely code against a concrete implementation of the interface.

Available Fixes

  1. Adding an additional type check:

    interface SomeInterface { }
    class SomeClass implements SomeInterface {
        public $a;
    }
    
    function someFunction(SomeInterface $object) {
        if ($object instanceof SomeClass) {
            $a = $object->a;
        }
    }
    
  2. Changing the type hint:

    interface SomeInterface { }
    class SomeClass implements SomeInterface {
        public $a;
    }
    
    function someFunction(SomeClass $object) {
        $a = $object->a;
    }
    
Loading history...
30 120
        }
31
32 160
        $this->event->fire('auth.users.creating', compact('user'));
33 160
    }
34
35
    /**
36
     * Eloquent 'created' event method.
37
     *
38
     * @param  \Arcanedev\LaravelAuth\Models\User|User  $user
39
     *
40
     * @return mixed
41
     */
42 160
    public function created(User $user)
43
    {
44 160
        $this->event->fire('auth.users.created', compact('user'));
45 160
    }
46
47
    /**
48
     * Eloquent 'updating' event method.
49
     *
50
     * @param  \Arcanedev\LaravelAuth\Models\User|User  $user
51
     *
52
     * @return mixed
53
     */
54 40
    public function updating(User $user)
55
    {
56 40
        $this->event->fire('auth.users.updating', compact('user'));
57 40
    }
58
59
    /**
60
     * Eloquent 'updated' event method.
61
     *
62
     * @param  \Arcanedev\LaravelAuth\Models\User|User  $user
63
     *
64
     * @return mixed
65
     */
66 40
    public function updated(User $user)
67
    {
68 40
        $this->event->fire('auth.users.updated', compact('user'));
69 40
    }
70
71
    /**
72
     * Eloquent 'saving' event method.
73
     *
74
     * @param  \Arcanedev\LaravelAuth\Models\User|User  $user
75
     *
76
     * @return mixed
77
     */
78 160
    public function saving(User $user)
79
    {
80 160
        $this->event->fire('auth.users.saving', compact('user'));
81 160
    }
82
83
    /**
84
     * Eloquent 'saved' event method.
85
     *
86
     * @param  \Arcanedev\LaravelAuth\Models\User|User  $user
87
     *
88
     * @return mixed
89
     */
90 160
    public function saved(User $user)
91
    {
92 160
        $this->event->fire('auth.users.saved', compact('user'));
93 160
    }
94
95
    /**
96
     * Eloquent 'deleting' event method.
97
     *
98
     * @param  \Arcanedev\LaravelAuth\Models\User|User  $user
99
     *
100
     * @return mixed
101
     */
102 24
    public function deleting(User $user)
103
    {
104 24
        if ($user->isAdmin()) return false;
105
106 16
        if ($user->forceDeleting) {
0 ignored issues
show
Bug introduced by
Accessing forceDeleting on the interface Arcanesoft\Contracts\Auth\Models\User suggest that you code against a concrete implementation. How about adding an instanceof check?

If you access a property on an interface, you most likely code against a concrete implementation of the interface.

Available Fixes

  1. Adding an additional type check:

    interface SomeInterface { }
    class SomeClass implements SomeInterface {
        public $a;
    }
    
    function someFunction(SomeInterface $object) {
        if ($object instanceof SomeClass) {
            $a = $object->a;
        }
    }
    
  2. Changing the type hint:

    interface SomeInterface { }
    class SomeClass implements SomeInterface {
        public $a;
    }
    
    function someFunction(SomeClass $object) {
        $a = $object->a;
    }
    
Loading history...
107
            $user->roles()->detach();
108
        }
109
110 16
        $this->event->fire('auth.users.deleting', compact('user'));
111
112 16
        return true;
113
    }
114
115
    /**
116
     * Eloquent 'deleted' event method.
117
     *
118
     * @param  \Arcanedev\LaravelAuth\Models\User|User  $user
119
     *
120
     * @return mixed
121
     */
122 16
    public function deleted(User $user)
123
    {
124 16
        $this->event->fire('auth.users.deleted', compact('user'));
125 16
    }
126
127
    /**
128
     * Eloquent 'restoring' event method.
129
     *
130
     * @param  \Arcanedev\LaravelAuth\Models\User|User  $user
131
     *
132
     * @return mixed
133
     */
134 8
    public function restoring(User $user)
135
    {
136 8
        $this->event->fire('auth.users.restoring', compact('user'));
137 8
    }
138
139
    /**
140
     * Eloquent 'restored' event method.
141
     *
142
     * @param  \Arcanedev\LaravelAuth\Models\User|User  $user
143
     *
144
     * @return mixed
145
     */
146 8
    public function restored(User $user)
147
    {
148 8
        $this->event->fire('auth.users.restored', compact('user'));
149 8
    }
150
}
151