From d7531cacd2f8baab7eb96fb4258d60f0d8f4aea0 Mon Sep 17 00:00:00 2001 From: Kris Date: Tue, 30 Jan 2024 10:53:09 +0100 Subject: [PATCH] :ambulance: fix invalid oauth client on some clients (#2307) --- app/Http/Controllers/API/v1/Controller.php | 12 ++++++++++++ app/Http/Controllers/StatusController.php | 3 ++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/API/v1/Controller.php b/app/Http/Controllers/API/v1/Controller.php index e408bdf8e..8ba75beb3 100644 --- a/app/Http/Controllers/API/v1/Controller.php +++ b/app/Http/Controllers/API/v1/Controller.php @@ -2,7 +2,10 @@ namespace App\Http\Controllers\API\v1; +use App\Models\OAuthClient; use Illuminate\Http\JsonResponse; +use Illuminate\Support\Facades\Log; +use Throwable; /** * @OA\Info( @@ -120,4 +123,13 @@ public function sendError(array|string $error = null, int $code = 404, array $ad $response = $additional ? array_merge($response, ["meta" => $additional]) : $response; return response()->json($response, $code); } + + public static function getCurrentOAuthClient(): OAuthClient|null { + try { + return request()?->user()?->token()?->client; + } catch (Throwable $throwable) { + Log::debug('Could not get current OAuth Client: ' . $throwable->getMessage()); + return null; + } + } } diff --git a/app/Http/Controllers/StatusController.php b/app/Http/Controllers/StatusController.php index 0b0338477..fc6e89c4d 100644 --- a/app/Http/Controllers/StatusController.php +++ b/app/Http/Controllers/StatusController.php @@ -8,6 +8,7 @@ use App\Events\StatusUpdateEvent; use App\Exceptions\PermissionException; use App\Exceptions\StatusAlreadyLikedException; +use App\Http\Controllers\API\v1\Controller as APIController; use App\Http\Controllers\Backend\Support\LocationController; use App\Models\Event; use App\Models\Like; @@ -284,7 +285,7 @@ public static function createStatus( 'business' => $business, 'visibility' => $visibility, 'event_id' => $event?->id, - 'client_id' => request()?->user()?->token()?->client?->id, + 'client_id' => APIController::getCurrentOAuthClient()?->id, ]); } }