Kernel   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 132
Duplicated Lines 0 %

Coupling/Cohesion

Components 2
Dependencies 1

Importance

Changes 0
Metric Value
wmc 4
lcom 2
cbo 1
dl 0
loc 132
rs 10
c 0
b 0
f 0

4 Methods

Rating   Name   Duplication   Size   Complexity  
A disableMiddleware() 0 6 1
A enableMiddleware() 0 6 1
A disableRouteMiddleware() 0 6 1
A enableRouteMiddleware() 0 6 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Cortex\Foundation\Http;
6
7
use Illuminate\Foundation\Http\Kernel as HttpKernel;
8
9
class Kernel extends HttpKernel
10
{
11
    /**
12
     * {@inheritdoc}
13
     */
14
    protected $middleware = [
15
        \Cortex\Foundation\Http\Middleware\TrustProxies::class,
16
        \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
17
        \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
18
        \Cortex\Foundation\Http\Middleware\TrimStrings::class,
19
        \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
20
        \Cortex\Foundation\Http\Middleware\TrailingSlashEnforce::class,
21
        \Cortex\Foundation\Http\Middleware\TurbolinksLocation::class,
22
        \Cortex\Foundation\Http\Middleware\CrawlingRobots::class,
23
    ];
24
25
    /**
26
     * {@inheritdoc}
27
     */
28
    protected $middlewareGroups = [
29
        'web' => [
30
            \Cortex\Foundation\Http\Middleware\EncryptCookies::class,
31
            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
32
            \Illuminate\Session\Middleware\StartSession::class,
33
            //\Illuminate\Session\Middleware\AuthenticateSession::class,
34
            \Cortex\Foundation\Http\Middleware\LocalizationRedirect::class,
35
            \Cortex\Foundation\Http\Middleware\ForgetLocaleRouteParameter::class,
36
            \Illuminate\View\Middleware\ShareErrorsFromSession::class,
37
            \Cortex\Foundation\Http\Middleware\VerifyCsrfToken::class,
38
            \Illuminate\Routing\Middleware\SubstituteBindings::class,
39
            \Cortex\Foundation\Http\Middleware\NotificationMiddleware::class,
40
        ],
41
42
        'api' => [
43
            'throttle:60,1',
44
            'bindings',
45
        ],
46
    ];
47
48
    /**
49
     * {@inheritdoc}
50
     */
51
    protected $routeMiddleware = [
52
        'auth' => \Cortex\Auth\Http\Middleware\Authenticate::class,
53
        'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
54
        'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
55
        'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
56
        'can' => \Illuminate\Auth\Middleware\Authorize::class,
57
        'nohttpcache' => \Cortex\Foundation\Http\Middleware\NoHttpCache::class,
58
        'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
59
        'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
60
        'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
61
    ];
62
63
    /**
64
     * The priority-sorted list of middleware.
65
     *
66
     * Forces non-global middleware to always be in the given order.
67
     *
68
     * @var array
69
     */
70
    protected $middlewarePriority = [
71
        \Illuminate\Session\Middleware\StartSession::class,
72
        \Illuminate\View\Middleware\ShareErrorsFromSession::class,
73
        \Cortex\Auth\Http\Middleware\Authenticate::class,
74
        \Illuminate\Session\Middleware\AuthenticateSession::class,
75
        \Illuminate\Routing\Middleware\SubstituteBindings::class,
76
        \Illuminate\Auth\Middleware\Authorize::class,
77
    ];
78
79
    /**
80
     * Temporary store for disabled middleware.
81
     *
82
     * @var array
83
     */
84
    protected $disabledMiddleware = [];
85
86
    /**
87
     * Temporary store for disabled route middleware.
88
     *
89
     * @var array
90
     */
91
    protected $disabledRouteMiddleware = [];
92
93
    /**
94
     * Disable middleware.
95
     *
96
     * @return void
97
     */
98
    public function disableMiddleware(): void
99
    {
100
        $this->disabledMiddleware = $this->middleware;
101
102
        $this->middleware = [];
103
    }
104
105
    /**
106
     * Enable middleware.
107
     *
108
     * @return void
109
     */
110
    public function enableMiddleware(): void
111
    {
112
        $this->middleware = $this->disabledMiddleware;
113
114
        $this->disabledMiddleware = [];
115
    }
116
117
    /**
118
     * Disable route middleware.
119
     *
120
     * @return void
121
     */
122
    public function disableRouteMiddleware(): void
123
    {
124
        $this->disabledRouteMiddleware = $this->routeMiddleware;
125
126
        $this->routeMiddleware = [];
127
    }
128
129
    /**
130
     * Enable route middleware.
131
     *
132
     * @return void
133
     */
134
    public function enableRouteMiddleware(): void
135
    {
136
        $this->routeMiddleware = $this->disabledRouteMiddleware;
137
138
        $this->disabledRouteMiddleware = [];
139
    }
140
}
141