. */ declare(strict_types=1); namespace FireflyIII\Support\Binder; use FireflyIII\Repositories\User\UserRepositoryInterface; use Illuminate\Routing\Route; use Illuminate\Support\Collection; use Log; use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; /** * Class CLIToken */ class CLIToken implements BinderInterface { /** * @param string $value * @param Route $route * * @return mixed * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException */ public static function routeBinder(string $value, Route $route) { /** @var UserRepositoryInterface $repository */ $repository = app(UserRepositoryInterface::class); /** @var Collection $users */ $users = $repository->all(); foreach ($users as $user) { $accessToken = app('preferences')->getForUser($user, 'access_token', null); if ($accessToken->data === $value) { Log::info(sprintf('Recognized user #%d (%s) from his acccess token.', $user->id, $user->email)); return $value; } } throw new NotFoundHttpException; } }