diff --git a/app/Api/V1/Controllers/Autocomplete/AccountController.php b/app/Api/V1/Controllers/Autocomplete/AccountController.php index 00961cacc1..a9dba92ca5 100644 --- a/app/Api/V1/Controllers/Autocomplete/AccountController.php +++ b/app/Api/V1/Controllers/Autocomplete/AccountController.php @@ -46,7 +46,7 @@ class AccountController extends Controller use AccountFilter; // this array only exists to test if the constructor will use it properly. - protected array $accepts = ['application/json', 'application/vnd.api+json']; + protected array $accepts = ['application/json', 'application/vnd.api+json']; protected array $acceptedRoles = [UserRoleEnum::READ_ONLY]; /** @var array */ diff --git a/app/Api/V1/Controllers/Autocomplete/BillController.php b/app/Api/V1/Controllers/Autocomplete/BillController.php index 6bdb8b7afe..5fea014b5c 100644 --- a/app/Api/V1/Controllers/Autocomplete/BillController.php +++ b/app/Api/V1/Controllers/Autocomplete/BillController.php @@ -29,7 +29,6 @@ use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteRequest; use FireflyIII\Enums\UserRoleEnum; use FireflyIII\Models\Bill; use FireflyIII\Repositories\Bill\BillRepositoryInterface; -use FireflyIII\User; use Illuminate\Http\JsonResponse; /** diff --git a/app/Api/V1/Controllers/Autocomplete/BudgetController.php b/app/Api/V1/Controllers/Autocomplete/BudgetController.php index ada51c325b..3fd273d329 100644 --- a/app/Api/V1/Controllers/Autocomplete/BudgetController.php +++ b/app/Api/V1/Controllers/Autocomplete/BudgetController.php @@ -29,7 +29,6 @@ use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteRequest; use FireflyIII\Enums\UserRoleEnum; use FireflyIII\Models\Budget; use FireflyIII\Repositories\Budget\BudgetRepositoryInterface; -use FireflyIII\User; use Illuminate\Http\JsonResponse; /** diff --git a/app/Api/V1/Controllers/Autocomplete/CategoryController.php b/app/Api/V1/Controllers/Autocomplete/CategoryController.php index 8211f2dd62..cf24f56776 100644 --- a/app/Api/V1/Controllers/Autocomplete/CategoryController.php +++ b/app/Api/V1/Controllers/Autocomplete/CategoryController.php @@ -29,7 +29,6 @@ use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteRequest; use FireflyIII\Enums\UserRoleEnum; use FireflyIII\Models\Category; use FireflyIII\Repositories\Category\CategoryRepositoryInterface; -use FireflyIII\User; use Illuminate\Http\JsonResponse; /** diff --git a/app/Api/V1/Controllers/Autocomplete/CurrencyController.php b/app/Api/V1/Controllers/Autocomplete/CurrencyController.php index bbde6f7477..427e03d5b9 100644 --- a/app/Api/V1/Controllers/Autocomplete/CurrencyController.php +++ b/app/Api/V1/Controllers/Autocomplete/CurrencyController.php @@ -30,7 +30,6 @@ use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteRequest; use FireflyIII\Enums\UserRoleEnum; use FireflyIII\Models\TransactionCurrency; use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface; -use FireflyIII\User; use Illuminate\Http\JsonResponse; /** diff --git a/app/Api/V1/Controllers/Autocomplete/ObjectGroupController.php b/app/Api/V1/Controllers/Autocomplete/ObjectGroupController.php index d50a71aeb3..0f4126f941 100644 --- a/app/Api/V1/Controllers/Autocomplete/ObjectGroupController.php +++ b/app/Api/V1/Controllers/Autocomplete/ObjectGroupController.php @@ -29,7 +29,6 @@ use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteRequest; use FireflyIII\Enums\UserRoleEnum; use FireflyIII\Models\ObjectGroup; use FireflyIII\Repositories\ObjectGroup\ObjectGroupRepositoryInterface; -use FireflyIII\User; use Illuminate\Http\JsonResponse; /** diff --git a/app/Api/V1/Controllers/Autocomplete/PiggyBankController.php b/app/Api/V1/Controllers/Autocomplete/PiggyBankController.php index 30737000fa..de08a181b5 100644 --- a/app/Api/V1/Controllers/Autocomplete/PiggyBankController.php +++ b/app/Api/V1/Controllers/Autocomplete/PiggyBankController.php @@ -30,7 +30,6 @@ use FireflyIII\Enums\UserRoleEnum; use FireflyIII\Models\PiggyBank; use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Repositories\PiggyBank\PiggyBankRepositoryInterface; -use FireflyIII\User; use Illuminate\Http\JsonResponse; /** diff --git a/app/Api/V1/Controllers/Autocomplete/TagController.php b/app/Api/V1/Controllers/Autocomplete/TagController.php index 027029bfb9..5ad94ea7f5 100644 --- a/app/Api/V1/Controllers/Autocomplete/TagController.php +++ b/app/Api/V1/Controllers/Autocomplete/TagController.php @@ -29,7 +29,6 @@ use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteRequest; use FireflyIII\Enums\UserRoleEnum; use FireflyIII\Models\Tag; use FireflyIII\Repositories\Tag\TagRepositoryInterface; -use FireflyIII\User; use Illuminate\Http\JsonResponse; /** diff --git a/app/Api/V1/Controllers/Autocomplete/TransactionController.php b/app/Api/V1/Controllers/Autocomplete/TransactionController.php index 8cb3d7a453..4321479d26 100644 --- a/app/Api/V1/Controllers/Autocomplete/TransactionController.php +++ b/app/Api/V1/Controllers/Autocomplete/TransactionController.php @@ -31,7 +31,6 @@ use FireflyIII\Enums\UserRoleEnum; use FireflyIII\Models\TransactionJournal; use FireflyIII\Repositories\Journal\JournalRepositoryInterface; use FireflyIII\Repositories\TransactionGroup\TransactionGroupRepositoryInterface; -use FireflyIII\User; use Illuminate\Http\JsonResponse; use Illuminate\Support\Collection; diff --git a/app/Api/V1/Controllers/Chart/AccountController.php b/app/Api/V1/Controllers/Chart/AccountController.php index 9a28d923eb..d617b3fd44 100644 --- a/app/Api/V1/Controllers/Chart/AccountController.php +++ b/app/Api/V1/Controllers/Chart/AccountController.php @@ -26,15 +26,11 @@ namespace FireflyIII\Api\V1\Controllers\Chart; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Chart\ChartRequest; -use FireflyIII\Enums\AccountTypeEnum; use FireflyIII\Enums\UserRoleEnum; use FireflyIII\Exceptions\FireflyException; use FireflyIII\Models\Account; -use FireflyIII\Models\Preference; use FireflyIII\Models\TransactionCurrency; use FireflyIII\Repositories\Account\AccountRepositoryInterface; -use FireflyIII\Support\Chart\ChartData; -use FireflyIII\Support\Facades\Preferences; use FireflyIII\Support\Facades\Steam; use FireflyIII\Support\Http\Api\ApiSupport; use FireflyIII\Support\Http\Api\CleansChartData; @@ -48,8 +44,8 @@ use Illuminate\Support\Facades\Log; class AccountController extends Controller { use ApiSupport; - use CollectsAccountsFromFilter; use CleansChartData; + use CollectsAccountsFromFilter; protected array $acceptedRoles = [UserRoleEnum::READ_ONLY]; @@ -102,17 +98,17 @@ class AccountController extends Controller private function renderAccountData(array $params, Account $account): void { Log::debug(sprintf('Now in %s(array, #%d)', __METHOD__, $account->id)); - $currency = $this->repository->getAccountCurrency($account); - $currentStart = clone $params['start']; - $range = Steam::finalAccountBalanceInRange($account, $params['start'], clone $params['end'], $this->convertToPrimary); + $currency = $this->repository->getAccountCurrency($account); + $currentStart = clone $params['start']; + $range = Steam::finalAccountBalanceInRange($account, $params['start'], clone $params['end'], $this->convertToPrimary); - $previous = array_values($range)[0]['balance']; - $pcPrevious = null; + $previous = array_values($range)[0]['balance']; + $pcPrevious = null; if (!$currency instanceof TransactionCurrency) { $currency = $this->primaryCurrency; } - $currentSet = [ + $currentSet = [ 'label' => $account->name, // the currency that belongs to the account. diff --git a/app/Api/V1/Controllers/Chart/BalanceController.php b/app/Api/V1/Controllers/Chart/BalanceController.php index eb05d934e1..1b5d1d610e 100644 --- a/app/Api/V1/Controllers/Chart/BalanceController.php +++ b/app/Api/V1/Controllers/Chart/BalanceController.php @@ -25,7 +25,7 @@ class BalanceController extends Controller { use CleansChartData; use CollectsAccountsFromFilter; - protected array $acceptedRoles = [UserRoleEnum::READ_ONLY]; + protected array $acceptedRoles = [UserRoleEnum::READ_ONLY]; private array $chartData = []; private GroupCollectorInterface $collector; diff --git a/app/Api/V1/Controllers/Controller.php b/app/Api/V1/Controllers/Controller.php index 57a6784a1f..196cca9290 100644 --- a/app/Api/V1/Controllers/Controller.php +++ b/app/Api/V1/Controllers/Controller.php @@ -62,9 +62,9 @@ abstract class Controller extends BaseController use ValidatesRequests; use ValidatesUserGroupTrait; - protected const string CONTENT_TYPE = 'application/vnd.api+json'; - protected const string JSON_CONTENT_TYPE = 'application/json'; - protected array $accepts = ['application/json', 'application/vnd.api+json']; + protected const string CONTENT_TYPE = 'application/vnd.api+json'; + protected const string JSON_CONTENT_TYPE = 'application/json'; + protected array $accepts = ['application/json', 'application/vnd.api+json']; /** @var array */ protected array $allowedSort; @@ -106,8 +106,8 @@ abstract class Controller extends BaseController */ private function getParameters(): ParameterBag { - $bag = new ParameterBag(); - $page = (int)request()->get('page'); + $bag = new ParameterBag(); + $page = (int)request()->get('page'); if ($page < 1) { $page = 1; } @@ -117,7 +117,7 @@ abstract class Controller extends BaseController $bag->set('page', $page); // some date fields: - $dates = ['start', 'end', 'date']; + $dates = ['start', 'end', 'date']; foreach ($dates as $field) { $date = null; @@ -128,7 +128,7 @@ abstract class Controller extends BaseController Log::error($e->getMessage()); Log::error($e->getTraceAsString()); } - $obj = null; + $obj = null; if (null !== $date) { try { $obj = Carbon::parse((string)$date); @@ -173,7 +173,7 @@ abstract class Controller extends BaseController && auth()->check()) { // set default for user: /** @var User $user */ - $user = auth()->user(); + $user = auth()->user(); /** @var Preference $pageSize */ $pageSize = (int)app('preferences')->getForUser($user, 'listPageSize', 50)->data; @@ -200,7 +200,7 @@ abstract class Controller extends BaseController if ('' === $param) { return $bag; } - $parts = explode(',', $param); + $parts = explode(',', $param); foreach ($parts as $part) { $part = trim($part); $direction = 'asc'; @@ -236,14 +236,14 @@ abstract class Controller extends BaseController $params[$key] = $value; } - return $return . http_build_query($params); + return $return.http_build_query($params); } final protected function getManager(): Manager { // create some objects: $manager = new Manager(); - $baseUrl = request()->getSchemeAndHttpHost() . '/api/v1'; + $baseUrl = request()->getSchemeAndHttpHost().'/api/v1'; $manager->setSerializer(new JsonApiSerializer($baseUrl)); return $manager; @@ -251,14 +251,14 @@ abstract class Controller extends BaseController final protected function jsonApiList(string $key, LengthAwarePaginator $paginator, AbstractTransformer $transformer): array { - $manager = new Manager(); - $baseUrl = sprintf('%s/api/v1/', request()->getSchemeAndHttpHost()); + $manager = new Manager(); + $baseUrl = sprintf('%s/api/v1/', request()->getSchemeAndHttpHost()); // TODO add stuff to path? $manager->setSerializer(new JsonApiSerializer($baseUrl)); - $objects = $paginator->getCollection(); + $objects = $paginator->getCollection(); // the transformer, at this point, needs to collect information that ALL items in the collection // require, like meta-data and stuff like that, and save it for later. @@ -279,8 +279,8 @@ abstract class Controller extends BaseController final protected function jsonApiObject(string $key, array|Model $object, AbstractTransformer $transformer): array { // create some objects: - $manager = new Manager(); - $baseUrl = sprintf('%s/api/v1', request()->getSchemeAndHttpHost()); + $manager = new Manager(); + $baseUrl = sprintf('%s/api/v1', request()->getSchemeAndHttpHost()); $manager->setSerializer(new JsonApiSerializer($baseUrl)); // $transformer->collectMetaData(new Collection([$object])); diff --git a/app/Api/V1/Controllers/Data/DestroyController.php b/app/Api/V1/Controllers/Data/DestroyController.php index e66c562665..87e791be7c 100644 --- a/app/Api/V1/Controllers/Data/DestroyController.php +++ b/app/Api/V1/Controllers/Data/DestroyController.php @@ -64,6 +64,7 @@ class DestroyController extends Controller $this->middleware( function ($request, $next) { $this->validateUserGroup($request); + return $next($request); } ); diff --git a/app/Api/V1/Controllers/Data/Export/ExportController.php b/app/Api/V1/Controllers/Data/Export/ExportController.php index a4316dfeb6..f65e23dfc0 100644 --- a/app/Api/V1/Controllers/Data/Export/ExportController.php +++ b/app/Api/V1/Controllers/Data/Export/ExportController.php @@ -61,7 +61,6 @@ class ExportController extends Controller } /** - * * @throws FireflyException * * @SuppressWarnings("PHPMD.UnusedFormalParameter") diff --git a/app/Api/V1/Controllers/Data/PurgeController.php b/app/Api/V1/Controllers/Data/PurgeController.php index 05b36f38e8..f1c69e8ec6 100644 --- a/app/Api/V1/Controllers/Data/PurgeController.php +++ b/app/Api/V1/Controllers/Data/PurgeController.php @@ -44,7 +44,6 @@ use Illuminate\Http\JsonResponse; */ class PurgeController extends Controller { - /** * TODO cleanup and use repositories. */ diff --git a/app/Api/V1/Controllers/Models/BudgetLimit/ShowController.php b/app/Api/V1/Controllers/Models/BudgetLimit/ShowController.php index a3e9c2a7e4..3b5c2c3569 100644 --- a/app/Api/V1/Controllers/Models/BudgetLimit/ShowController.php +++ b/app/Api/V1/Controllers/Models/BudgetLimit/ShowController.php @@ -84,7 +84,7 @@ class ShowController extends Controller $enrichment->setUser($admin); $enrichment->setStart($this->parameters->get('start')); $enrichment->setEnd($this->parameters->get('end')); - $budget = $enrichment->enrichSingle($budget); + $budget = $enrichment->enrichSingle($budget); $manager = $this->getManager(); diff --git a/app/Console/Commands/System/ResetsErrorMailLimit.php b/app/Console/Commands/System/ResetsErrorMailLimit.php index 4e98d40a05..9aba24fa79 100644 --- a/app/Console/Commands/System/ResetsErrorMailLimit.php +++ b/app/Console/Commands/System/ResetsErrorMailLimit.php @@ -1,5 +1,7 @@ friendlyInfo(sprintf('Created new limits file at "%s"', $file)); file_put_contents($file, json_encode($limits, JSON_PRETTY_PRINT)); + return CommandAlias::SUCCESS; } if (!is_writable($file)) { diff --git a/app/Support/Export/ExportDataGenerator.php b/app/Support/Export/ExportDataGenerator.php index d15ac20db7..ad0f0b4b71 100644 --- a/app/Support/Export/ExportDataGenerator.php +++ b/app/Support/Export/ExportDataGenerator.php @@ -913,6 +913,4 @@ class ExportDataGenerator { $this->userGroup = $userGroup; } - - } diff --git a/app/Support/Http/Api/ValidatesUserGroupTrait.php b/app/Support/Http/Api/ValidatesUserGroupTrait.php index 8e34de14af..c33be45a1e 100644 --- a/app/Support/Http/Api/ValidatesUserGroupTrait.php +++ b/app/Support/Http/Api/ValidatesUserGroupTrait.php @@ -39,7 +39,7 @@ use Illuminate\Support\Facades\Log; trait ValidatesUserGroupTrait { protected ?UserGroup $userGroup = null; - protected ?User $user = null; + protected ?User $user = null; /** * An "undocumented" filter @@ -102,7 +102,7 @@ trait ValidatesUserGroupTrait if ($user->hasRoleInGroupOrOwner($group, $role)) { Log::debug(sprintf('validateUserGroup: User has role "%s" in group #%d, return the group.', $role->value, $groupId)); $this->userGroup = $group; - $this->user = $user; + $this->user = $user; return $group; } diff --git a/app/Support/Repositories/UserGroup/UserGroupTrait.php b/app/Support/Repositories/UserGroup/UserGroupTrait.php index 4bcd345e34..52f78553fa 100644 --- a/app/Support/Repositories/UserGroup/UserGroupTrait.php +++ b/app/Support/Repositories/UserGroup/UserGroupTrait.php @@ -73,6 +73,7 @@ trait UserGroupTrait return; } $class = null === $user ? 'NULL' : $user::class; + throw new FireflyException(sprintf('Object is %s, not User.', $class)); } diff --git a/app/Transformers/CategoryTransformer.php b/app/Transformers/CategoryTransformer.php index 0891522887..36d25b2921 100644 --- a/app/Transformers/CategoryTransformer.php +++ b/app/Transformers/CategoryTransformer.php @@ -81,7 +81,7 @@ class CategoryTransformer extends AbstractTransformer private function beautify(?array $array): ?array { - if(null === $array) { + if (null === $array) { return null; } $return = []; diff --git a/composer.lock b/composer.lock index a6297fc8ce..013ff5e6ca 100644 --- a/composer.lock +++ b/composer.lock @@ -11876,16 +11876,16 @@ }, { "name": "rector/rector", - "version": "2.1.3", + "version": "2.1.4", "source": { "type": "git", "url": "https://github.com/rectorphp/rector.git", - "reference": "dd430c869fddf4965049c8fd6f5ee49f155cfddf" + "reference": "fe613c528819222f8686a9a037a315ef9d4915b3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rectorphp/rector/zipball/dd430c869fddf4965049c8fd6f5ee49f155cfddf", - "reference": "dd430c869fddf4965049c8fd6f5ee49f155cfddf", + "url": "https://api.github.com/repos/rectorphp/rector/zipball/fe613c528819222f8686a9a037a315ef9d4915b3", + "reference": "fe613c528819222f8686a9a037a315ef9d4915b3", "shasum": "" }, "require": { @@ -11924,7 +11924,7 @@ ], "support": { "issues": "https://github.com/rectorphp/rector/issues", - "source": "https://github.com/rectorphp/rector/tree/2.1.3" + "source": "https://github.com/rectorphp/rector/tree/2.1.4" }, "funding": [ { @@ -11932,7 +11932,7 @@ "type": "github" } ], - "time": "2025-08-13T11:43:04+00:00" + "time": "2025-08-15T14:41:36+00:00" }, { "name": "sebastian/cli-parser", diff --git a/config/firefly.php b/config/firefly.php index 998250e370..000cb30cb6 100644 --- a/config/firefly.php +++ b/config/firefly.php @@ -78,8 +78,8 @@ return [ 'running_balance_column' => env('USE_RUNNING_BALANCE', false), // see cer.php for exchange rates feature flag. ], - 'version' => '6.3.0-beta.2', - 'build_time' => 1755258109, + 'version' => 'develop/2025-08-16', + 'build_time' => 1755317476, 'api_version' => '2.1.0', // field is no longer used. 'db_version' => 26, diff --git a/package-lock.json b/package-lock.json index 336c6d0d6d..396653c719 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5700,9 +5700,9 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.202", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.202.tgz", - "integrity": "sha512-NxbYjRmiHcHXV1Ws3fWUW+SLb62isauajk45LUJ/HgIOkUA7jLZu/X2Iif+X9FBNK8QkF9Zb4Q2mcwXCcY30mg==", + "version": "1.5.203", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.203.tgz", + "integrity": "sha512-uz4i0vLhfm6dLZWbz/iH88KNDV+ivj5+2SA+utpgjKaj9Q0iDLuwk6Idhe9BTxciHudyx6IvTvijhkPvFGUQ0g==", "dev": true, "license": "ISC" },