Completed
Push — master ( 2f3e26...827d9d )
by ARCANEDEV
03:16
created

PackagesServiceProvider::rebindModels()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 22
Code Lines 12

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 18
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 22
ccs 18
cts 18
cp 1
rs 9.2
cc 2
eloc 12
nc 2
nop 0
crap 2
1
<?php namespace Arcanesoft\Auth\Providers;
2
3
use Arcanedev\Gravatar\GravatarServiceProvider;
4
use Arcanedev\LaravelAuth\LaravelAuthServiceProvider;
5
use Arcanedev\Support\ServiceProvider;
6
7
/**
8
 * Class     PackagesServiceProvider
9
 *
10
 * @package  Arcanesoft\Auth\Providers
11
 * @author   ARCANEDEV <[email protected]>
12
 */
13
class PackagesServiceProvider extends ServiceProvider
14
{
15
    /* ------------------------------------------------------------------------------------------------
16
     |  Main Functions
17
     | ------------------------------------------------------------------------------------------------
18
     */
19
    /**
20
     * Register the service provider.
21
     */
22 24
    public function register()
23
    {
24 24
        $this->registerGravatarPackage();
25 24
        $this->registerLaravelAuthPackage();
26 24
    }
27
28
    /* ------------------------------------------------------------------------------------------------
29
     |  Gravatar Package
30
     | ------------------------------------------------------------------------------------------------
31
     */
32
    /**
33
     * Register the gravatar package.
34
     */
35 24
    private function registerGravatarPackage()
36
    {
37 24
        $this->app->register(GravatarServiceProvider::class);
38 24
    }
39
40
    /* ------------------------------------------------------------------------------------------------
41
     |  Auth Package
42
     | ------------------------------------------------------------------------------------------------
43
     */
44
    /**
45
     * Register the laravel auth package.
46
     */
47 24
    private function registerLaravelAuthPackage()
48
    {
49 24
        $this->app->register(LaravelAuthServiceProvider::class);
50
51 24
        $this->configLaravelAuthPackage();
52 24
        $this->rebindModels();
53 24
    }
54
55
    /**
56
     * Config the laravel auth package.
57
     */
58 24
    private function configLaravelAuthPackage()
59
    {
60
        /** @var \Illuminate\Config\Repository $config */
61 24
        $config      = $this->app['config'];
62 24
        $authConfigs = $config->get('arcanesoft.auth');
63
64 24
        $config->set('auth.model', \Arcanesoft\Auth\Models\User::class);
65 24
        $config->set('laravel-auth', array_except($authConfigs, ['route', 'hasher']));
66 24
    }
67
68
    /**
69
     * Rebind the auth models.
70
     */
71 24
    private function rebindModels()
72
    {
73
        $bindings = [
74
            [
75 18
                'abstract' => \Arcanesoft\Contracts\Auth\Models\User::class,
76 18
                'concrete' => \Arcanesoft\Auth\Models\User::class,
77 24
            ],[
78 18
                'abstract' => \Arcanesoft\Contracts\Auth\Models\Role::class,
79 18
                'concrete' => \Arcanesoft\Auth\Models\Role::class,
80 18
            ],[
81 18
                'abstract' => \Arcanesoft\Contracts\Auth\Models\Permission::class,
82 18
                'concrete' => \Arcanesoft\Auth\Models\Permission::class,
83 18
            ],[
84 18
                'abstract' => \Arcanesoft\Contracts\Auth\Models\PermissionsGroup::class,
85 18
                'concrete' => \Arcanesoft\Auth\Models\PermissionsGroup::class,
86 18
            ],
87 18
        ];
88
89 24
        foreach ($bindings as $binding) {
90 24
            $this->bind($binding['abstract'], $binding['concrete']);
91 18
        }
92 24
    }
93
}
94