Passed
Push — master ( 30fec9...0ef1e1 )
by Burak
05:55
created

TelescopeServiceProvider::gate()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1.125

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 3
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 6
ccs 2
cts 4
cp 0.5
crap 1.125
rs 10
1
<?php
2
3
namespace App\Providers;
4
5
use Illuminate\Support\Facades\Gate;
6
use Laravel\Telescope\IncomingEntry;
7
use Laravel\Telescope\Telescope;
8
use Laravel\Telescope\TelescopeApplicationServiceProvider;
9
10
class TelescopeServiceProvider extends TelescopeApplicationServiceProvider
11
{
12
    /**
13
     * Register any application services.
14
     *
15
     * @return void
16
     */
17 31
    public function register()
18
    {
19
        // Telescope::night();
20
21 31
        $this->hideSensitiveRequestDetails();
22
23 31
        Telescope::filter(function (IncomingEntry $entry) {
24
            if ($this->app->environment('local')) {
25
                return true;
26
            }
27
28
            return $entry->isReportableException() ||
29
                   $entry->isFailedRequest() ||
30
                   $entry->isFailedJob() ||
31
                   $entry->isScheduledTask() ||
32
                   $entry->hasMonitoredTag();
33 31
        });
34 31
    }
35
36
    /**
37
     * Prevent sensitive request details from being logged by Telescope.
38
     *
39
     * @return void
40
     */
41 31
    protected function hideSensitiveRequestDetails()
42
    {
43 31
        if ($this->app->environment('local')) {
44
            return;
45
        }
46
47 31
        Telescope::hideRequestParameters(['_token']);
48
49 31
        Telescope::hideRequestHeaders([
50 31
            'cookie',
51
            'x-csrf-token',
52
            'x-xsrf-token',
53
        ]);
54 31
    }
55
56
    /**
57
     * Register the Telescope gate.
58
     *
59
     * This gate determines who can access Telescope in non-local environments.
60
     *
61
     * @return void
62
     */
63 31
    protected function gate()
64
    {
65 31
        Gate::define('viewTelescope', function ($user) {
66
            $mails = explode(',', config('telescope.mail_addresses'));
67
68
            return in_array($user->email, $mails ?? []);
69 31
        });
70 31
    }
71
}
72