Completed
Push — master ( 321b65...b2b8c6 )
by Freek
01:18
created

AddCspHeaders::getProfiles()   A

Complexity

Conditions 3
Paths 4

Size

Total Lines 22
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 22
rs 9.2
c 0
b 0
f 0
cc 3
eloc 11
nc 4
nop 0
1
<?php
2
3
namespace Spatie\Csp;
4
5
use Closure;
6
use Illuminate\Http\Request;
7
use Illuminate\Support\Collection;
8
9
class AddCspHeaders
10
{
11
    public function handle(Request $request, Closure $next)
12
    {
13
        $response = $next($request);
14
15
        $this
16
            ->getProfiles()
17
            ->filter->shouldBeApplied($request, $response)
18
            ->each->applyTo($response);
19
20
        return $response;
21
    }
22
23
    protected function getProfiles(): Collection
24
    {
25
        $profiles = collect();
26
27
        $profileClass = config('csp.profile');
28
29
        if (! empty($profileClass)) {
30
            $profiles->push(ProfileFactory::create($profileClass));
31
        }
32
33
        $reportOnlyProfileClass = config('csp.report_only_profile');
34
35
        if (! empty($reportOnlyProfileClass)) {
36
            $profile = ProfileFactory::create($reportOnlyProfileClass);
37
38
            $profile->reportOnly();
39
40
            $profiles->push($profile);
41
        }
42
43
        return $profiles;
44
    }
45
}
46