/** * Setup user detection. * * @param \Bugsnag\Client $client * @param \Silex\Application $app * * @return void */ protected function setupUserDetection(Client $client, Application $app) { try { $tokens = $app['security.token_storage']; $checker = $app['security.authorization_checker']; } catch (InvalidArgumentException $e) { return; } $client->registerCallback(new CustomUser(function () use($tokens, $checker) { $token = $tokens->getToken(); if (!$token || !$checker->isGranted('IS_AUTHENTICATED_REMEMBERED')) { return; } $user = $token->getUser(); if ($user instanceof UserInterface) { return ['id' => $user->getUsername()]; } return ['id' => (string) $user]; })); }
/** * Setup the callbacks. * * @param \Bugsnag\Client $client * @param \Illuminate\Contracts\Container\Container $app * @param array $config * * @return void */ protected function setupCallbacks(Client $client, Container $app, array $config) { if (!isset($config['callbacks']) || $config['callbacks']) { $client->registerDefaultCallbacks(); $client->registerCallback(function (Report $report) use($app) { $tracker = $app->make(Tracker::class); if ($context = $tracker->context()) { $report->setContext($context); } if ($job = $tracker->get()) { $report->setMetaData(['job' => $job]); } }); } if (!isset($config['user']) || $config['user']) { $client->registerCallback(new CustomUser(function () use($app) { if ($user = $app->auth->user()) { return $user->toArray(); } })); } }