Completed
Push — master ( db4c68...fa7f90 )
by ARCANEDEV
04:06
created

EventServiceProvider::getObserver()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
dl 0
loc 7
rs 9.4286
c 1
b 0
f 0
ccs 3
cts 3
cp 1
cc 1
eloc 3
nc 1
nop 1
crap 1
1
<?php namespace Arcanedev\LaravelAuth\Providers;
2
3
use Arcanedev\Support\Providers\EventServiceProvider as ServiceProvider;
4
use Arcanesoft\Contracts\Auth\Models;
5
use Illuminate\Contracts\Events\Dispatcher;
6
7
/**
8
 * Class     EventServiceProvider
9
 *
10
 * @package  Arcanedev\LaravelAuth\Providers
11
 * @author   ARCANEDEV <[email protected]>
12
 */
13
class EventServiceProvider extends ServiceProvider
14
{
15
    /* ------------------------------------------------------------------------------------------------
16
     |  Main Functions
17
     | ------------------------------------------------------------------------------------------------
18
     */
19
    /**
20
     * Register the application's event listeners.
21
     *
22
     * @param  \Illuminate\Contracts\Events\Dispatcher  $events
23
     */
24 260
    public function boot(Dispatcher $events)
25
    {
26 260
        parent::boot($events);
27
28 260
        $this->observeUserModel();
29 260
        $this->observeRoleModel();
30 260
        $this->observePermissionsGroupModel();
31 260
        $this->observePermissionModel();
32 260
    }
33
34 260
    private function observeUserModel()
35
    {
36 260
        $observer = $this->getObserver('users');
37
38 260
        $this->getModel(Models\User::class)->observe($observer);
39 260
    }
40
41 260
    private function observeRoleModel()
42
    {
43 260
        $observer = $this->getObserver('roles');
44
45 260
        $this->getModel(Models\Role::class)->observe($observer);
46 260
    }
47
48 260
    private function observePermissionsGroupModel()
49
    {
50 260
        $observer = $this->getObserver('permissions-groups');
51
52 260
        $this->getModel(Models\PermissionsGroup::class)->observe($observer);
53 260
    }
54
55 260
    private function observePermissionModel()
56
    {
57 260
        $observer = $this->getObserver('permissions');
58
59 260
        $this->getModel(Models\Permission::class)->observe($observer);
60 260
    }
61
62
    /* ------------------------------------------------------------------------------------------------
63
     |  Other Functions
64
     | ------------------------------------------------------------------------------------------------
65
     */
66
    /**
67
     * Get the concrete model.
68
     *
69
     * @param  string  $abstract
70
     *
71
     * @return \Illuminate\Database\Eloquent\Model
72
     */
73 260
    private function getModel($abstract)
74
    {
75 260
        return $this->app->make($abstract);
76
    }
77
78
    /**
79
     * Get the observer class.
80
     *
81
     * @param  string  $key
82
     *
83
     * @return string
84
     */
85 260
    private function getObserver($key)
86
    {
87
        /** @var  \Illuminate\Contracts\Config\Repository  $config */
88 260
        $config = $this->app['config'];
89
90 260
        return $config->get("laravel-auth.{$key}.observer");
91
    }
92
}
93