From faa0d59340791ed5c29bb132ee72934045137eba Mon Sep 17 00:00:00 2001 From: James Cole Date: Wed, 31 Jul 2024 20:40:26 +0200 Subject: [PATCH] Fix https://github.com/firefly-iii/firefly-iii/issues/9103 --- .../Models/TransactionCurrency/UpdateController.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/Api/V1/Controllers/Models/TransactionCurrency/UpdateController.php b/app/Api/V1/Controllers/Models/TransactionCurrency/UpdateController.php index d7d2288c9a..531d9ed1f8 100644 --- a/app/Api/V1/Controllers/Models/TransactionCurrency/UpdateController.php +++ b/app/Api/V1/Controllers/Models/TransactionCurrency/UpdateController.php @@ -34,6 +34,7 @@ use FireflyIII\Support\Http\Api\TransactionFilter; use FireflyIII\Transformers\CurrencyTransformer; use FireflyIII\User; use Illuminate\Http\JsonResponse; +use Illuminate\Support\Facades\Log; use League\Fractal\Resource\Item; /** @@ -164,15 +165,22 @@ class UpdateController extends Controller public function update(UpdateRequest $request, TransactionCurrency $currency): JsonResponse { $data = $request->getAll(); + Log::debug(__METHOD__, $data); /** @var User $user */ $user = auth()->user(); + // safety catch on currency disablement. $set = $this->repository->get(); if (array_key_exists('enabled', $data) && false === $data['enabled'] && 1 === count($set) && $set->first()->id === $currency->id) { return response()->json([], 409); } + // second safety catch on currency disable. + if (array_key_exists('enabled', $data) && false === $data['enabled'] && $this->repository->currencyInUse($currency)) { + return response()->json([], 409); + } + $currency = $this->repository->update($currency, $data); app('preferences')->mark();