Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
56.52% covered (warning)
56.52%
13 / 23
0.00% covered (danger)
0.00%
0 / 3
CRAP
0.00% covered (danger)
0.00%
0 / 1
TelescopeServiceProvider
56.52% covered (warning)
56.52%
13 / 23
0.00% covered (danger)
0.00%
0 / 3
15.66
0.00% covered (danger)
0.00%
0 / 1
 register
40.00% covered (danger)
40.00%
4 / 10
0.00% covered (danger)
0.00%
0 / 1
13.78
 hideSensitiveRequestDetails
87.50% covered (warning)
87.50%
7 / 8
0.00% covered (danger)
0.00%
0 / 1
2.01
 gate
40.00% covered (danger)
40.00%
2 / 5
0.00% covered (danger)
0.00%
0 / 1
1.22
1<?php
2
3namespace App\Providers;
4
5use Illuminate\Support\Facades\Gate;
6use Laravel\Telescope\IncomingEntry;
7use Laravel\Telescope\Telescope;
8use Laravel\Telescope\TelescopeApplicationServiceProvider;
9
10class TelescopeServiceProvider extends TelescopeApplicationServiceProvider
11{
12    /**
13     * Register any application services.
14     */
15    public function register(): void
16    {
17        // Telescope::night();
18
19        $this->hideSensitiveRequestDetails();
20
21        $isLocal = $this->app->environment('local');
22
23        Telescope::filter(function (IncomingEntry $entry) use ($isLocal) {
24            return $isLocal ||
25                   $entry->isReportableException() ||
26                   $entry->isFailedRequest() ||
27                   $entry->isFailedJob() ||
28                   $entry->isScheduledTask() ||
29                   $entry->hasMonitoredTag();
30        });
31    }
32
33    /**
34     * Prevent sensitive request details from being logged by Telescope.
35     */
36    protected function hideSensitiveRequestDetails(): void
37    {
38        if ($this->app->environment('local')) {
39            return;
40        }
41
42        Telescope::hideRequestParameters(['_token']);
43
44        Telescope::hideRequestHeaders([
45            'cookie',
46            'x-csrf-token',
47            'x-xsrf-token',
48        ]);
49    }
50
51    /**
52     * Register the Telescope gate.
53     *
54     * This gate determines who can access Telescope in non-local environments.
55     */
56    protected function gate(): void
57    {
58        Gate::define('viewTelescope', function ($user) {
59            return in_array($user->email, [
60                //
61            ]);
62        });
63    }
64}