From 94c190668cbf15bf575e39854ae243e8de37fa43 Mon Sep 17 00:00:00 2001 From: James Cole Date: Sun, 24 Sep 2023 03:22:18 +0200 Subject: [PATCH] Fix https://github.com/firefly-iii/firefly-iii/issues/7992 --- .../Controllers/Autocomplete/AccountController.php | 9 +++++++-- app/Api/V2/Controllers/Model/Bill/SumController.php | 13 +++++++++---- app/Api/V2/Request/Chart/BalanceChartRequest.php | 2 ++ app/Support/Request/ConvertsDataTypes.php | 12 +++++++----- 4 files changed, 25 insertions(+), 11 deletions(-) diff --git a/app/Api/V2/Controllers/Autocomplete/AccountController.php b/app/Api/V2/Controllers/Autocomplete/AccountController.php index 7d06c0a5de..5e777b6893 100644 --- a/app/Api/V2/Controllers/Autocomplete/AccountController.php +++ b/app/Api/V2/Controllers/Autocomplete/AccountController.php @@ -32,6 +32,7 @@ use FireflyIII\Models\AccountType; use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Repositories\UserGroups\Account\AccountRepositoryInterface as AdminAccountRepositoryInterface; use FireflyIII\Support\Http\Api\AccountFilter; +use FireflyIII\Support\Http\Api\ValidatesUserGroupTrait; use Illuminate\Http\JsonResponse; /** @@ -40,6 +41,7 @@ use Illuminate\Http\JsonResponse; class AccountController extends Controller { use AccountFilter; + use ValidatesUserGroupTrait; private AdminAccountRepositoryInterface $adminRepository; private array $balanceTypes; @@ -56,6 +58,11 @@ class AccountController extends Controller $this->repository = app(AccountRepositoryInterface::class); $this->adminRepository = app(AdminAccountRepositoryInterface::class); + $userGroup = $this->validateUserGroup($request); + if (null !== $userGroup) { + $this->adminRepository->setUserGroup($userGroup); + } + return $next($request); } ); @@ -79,12 +86,10 @@ class AccountController extends Controller */ public function accounts(AutocompleteRequest $request): JsonResponse { - throw new FireflyException('uses old administration ID check, needs to be updated. 1'); $data = $request->getData(); $types = $data['types']; $query = $data['query']; $date = $this->parameters->get('date') ?? today(config('app.timezone')); - $this->adminRepository->setAdministrationId($data['administration_id']); $return = []; $result = $this->adminRepository->searchAccount((string)$query, $types, $data['limit']); diff --git a/app/Api/V2/Controllers/Model/Bill/SumController.php b/app/Api/V2/Controllers/Model/Bill/SumController.php index 41d0e49316..782cd940c6 100644 --- a/app/Api/V2/Controllers/Model/Bill/SumController.php +++ b/app/Api/V2/Controllers/Model/Bill/SumController.php @@ -28,6 +28,7 @@ use FireflyIII\Api\V2\Controllers\Controller; use FireflyIII\Api\V2\Request\Generic\DateRequest; use FireflyIII\Exceptions\FireflyException; use FireflyIII\Repositories\UserGroups\Bill\BillRepositoryInterface; +use FireflyIII\Support\Http\Api\ValidatesUserGroupTrait; use Illuminate\Http\JsonResponse; /** @@ -35,6 +36,8 @@ use Illuminate\Http\JsonResponse; */ class SumController extends Controller { + use ValidatesUserGroupTrait; + private BillRepositoryInterface $repository; /** @@ -47,6 +50,12 @@ class SumController extends Controller function ($request, $next) { $this->repository = app(BillRepositoryInterface::class); + $userGroup = $this->validateUserGroup($request); + if (null !== $userGroup) { + $this->repository->setUserGroup($userGroup); + } + + return $next($request); } ); @@ -64,8 +73,6 @@ class SumController extends Controller */ public function paid(DateRequest $request): JsonResponse { - throw new FireflyException('uses old administration ID check, needs to be updated.6'); - $this->repository->setAdministrationId(auth()->user()->user_group_id); $result = $this->repository->sumPaidInRange($this->parameters->get('start'), $this->parameters->get('end')); // convert to JSON response: @@ -84,8 +91,6 @@ class SumController extends Controller */ public function unpaid(DateRequest $request): JsonResponse { - throw new FireflyException('uses old administration ID check, needs to be updated.7'); - $this->repository->setAdministrationId(auth()->user()->user_group_id); $result = $this->repository->sumUnpaidInRange($this->parameters->get('start'), $this->parameters->get('end')); // convert to JSON response: diff --git a/app/Api/V2/Request/Chart/BalanceChartRequest.php b/app/Api/V2/Request/Chart/BalanceChartRequest.php index 4ce50da02e..b2e137fe35 100644 --- a/app/Api/V2/Request/Chart/BalanceChartRequest.php +++ b/app/Api/V2/Request/Chart/BalanceChartRequest.php @@ -25,6 +25,7 @@ declare(strict_types=1); namespace FireflyIII\Api\V2\Request\Chart; +use FireflyIII\Support\Http\Api\ValidatesUserGroupTrait; use FireflyIII\Support\Request\ChecksLogin; use FireflyIII\Support\Request\ConvertsDataTypes; use Illuminate\Foundation\Http\FormRequest; @@ -37,6 +38,7 @@ class BalanceChartRequest extends FormRequest { use ConvertsDataTypes; use ChecksLogin; + use ValidatesUserGroupTrait; /** * Get all data from the request. diff --git a/app/Support/Request/ConvertsDataTypes.php b/app/Support/Request/ConvertsDataTypes.php index bc88bebc63..89c7d4b70c 100644 --- a/app/Support/Request/ConvertsDataTypes.php +++ b/app/Support/Request/ConvertsDataTypes.php @@ -26,7 +26,6 @@ namespace FireflyIII\Support\Request; use Carbon\Carbon; use Carbon\Exceptions\InvalidDateException; use Carbon\Exceptions\InvalidFormatException; -use FireflyIII\Exceptions\FireflyException; use FireflyIII\Repositories\UserGroups\Account\AccountRepositoryInterface; use Illuminate\Support\Collection; use Illuminate\Support\Facades\Log; @@ -165,15 +164,18 @@ trait ConvertsDataTypes */ public function getAccountList(): Collection { - // fixed /** @var AccountRepositoryInterface $repository */ $repository = app(AccountRepositoryInterface::class); + if (method_exists($this, 'validateUserGroup')) { + $userGroup = $this->validateUserGroup($this); + if (null !== $userGroup) { + $repository->setUserGroup($userGroup); + } + } + // set administration ID // group ID - $administrationId = auth()->user()->getAdministrationId(); - throw new FireflyException('uses old administration ID check, needs to be updated.G'); - $repository->setAdministrationId($administrationId); $set = $this->get('accounts'); $collection = new Collection();