12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- <?php
- namespace App\Providers;
- use App\Models\AppSession;
- use Illuminate\Support\Facades\Gate;
- use Laravel\Telescope\IncomingEntry;
- use Laravel\Telescope\Telescope;
- use Laravel\Telescope\TelescopeApplicationServiceProvider;
- class TelescopeServiceProvider extends TelescopeApplicationServiceProvider
- {
- /**
- * Register any application services.
- *
- * @return void
- */
- public function register()
- {
- // Telescope::night();
- $this->hideSensitiveRequestDetails();
- Telescope::filter(function (IncomingEntry $entry) {
- if ($this->app->environment('local')) {
- return true;
- }
- return $entry->isReportableException() ||
- $entry->isFailedRequest() ||
- $entry->isFailedJob() ||
- $entry->isScheduledTask() ||
- $entry->hasMonitoredTag();
- });
- }
- /**
- * Prevent sensitive request details from being logged by Telescope.
- *
- * @return void
- */
- protected function hideSensitiveRequestDetails()
- {
- if ($this->app->environment('local')) {
- return;
- }
- Telescope::hideRequestParameters(['_token']);
- Telescope::hideRequestHeaders([
- 'cookie',
- 'x-csrf-token',
- 'x-xsrf-token',
- ]);
- }
- /**
- * Register the Telescope gate.
- *
- * This gate determines who can access Telescope in non-local environments.
- *
- * @return void
- */
- // protected function gate()
- // {
- // Gate::define('viewTelescope', function ($user) {
- // $sessionKey = request()->cookie('sessionKey');
- // $appSession = AppSession::where('session_key', $sessionKey)->where('is_active', true)->first();
- // $authenticated = $sessionKey && $appSession && $appSession->pro && $appSession->pro->pro_type == 'ADMIN';
- // if (!$authenticated) {
- // //return redirect('/');
- // return abort(403);
- // }
- // return false;
- //
- //
- // });
- // }
- //
- protected function authorization()
- {
- $this->gate();
- Telescope::auth(function ($request) {
- $sessionKey = request()->cookie('sessionKey');
- $appSession = AppSession::where('session_key', $sessionKey)->where('is_active', true)->first();
- $authenticated = $sessionKey && $appSession && $appSession->pro && $appSession->pro->pro_type == 'ADMIN';
- if (!$authenticated) {
- return abort(403);
- }
- return true;
- });
- }
- }
|