Compare commits

..

414 Commits

Author SHA1 Message Date
James Cole
b8573d03a4 Merge branch 'release/5.6.11' 2022-01-29 09:27:33 +01:00
James Cole
b104914076 Update packages and meta files for new release. 2022-01-29 09:26:49 +01:00
James Cole
1d30b58685 Fix a source string. 2022-01-29 09:14:16 +01:00
James Cole
ab9f26f850 Update packages and meta files for new release. 2022-01-28 21:19:05 +01:00
James Cole
9a944175ac Merge branch 'main' into develop 2022-01-28 20:58:59 +01:00
James Cole
0bcc3240b7 Add support for DSN 2022-01-28 20:58:08 +01:00
James Cole
1bf3608142 Catch errors in transaction API. 2022-01-28 20:49:37 +01:00
James Cole
9dc971550c Merge pull request #5645 from firefly-iii/dependabot/npm_and_yarn/frontend/node-fetch-2.6.7
Bump node-fetch from 2.6.6 to 2.6.7 in /frontend
2022-01-27 09:22:50 +00:00
James Cole
33c52513a3 Merge branch 'main' into develop 2022-01-27 09:46:07 +01:00
mergify[bot]
2408ff11f6 Merge pull request #5620 from firefly-iii/dependabot/npm_and_yarn/develop/vue/compiler-sfc-3.2.29
Bump @vue/compiler-sfc from 3.2.27 to 3.2.29
2022-01-27 08:35:49 +00:00
dependabot[bot]
3d130e5d99 Bump @vue/compiler-sfc from 3.2.27 to 3.2.29
Bumps [@vue/compiler-sfc](https://github.com/vuejs/core/tree/HEAD/packages/compiler-sfc) from 3.2.27 to 3.2.29.
- [Release notes](https://github.com/vuejs/core/releases)
- [Changelog](https://github.com/vuejs/core/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vuejs/core/commits/v3.2.29/packages/compiler-sfc)

---
updated-dependencies:
- dependency-name: "@vue/compiler-sfc"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-27 08:35:30 +00:00
dependabot[bot]
bc0355c5b1 Bump node-fetch from 2.6.6 to 2.6.7 in /frontend
Bumps [node-fetch](https://github.com/node-fetch/node-fetch) from 2.6.6 to 2.6.7.
- [Release notes](https://github.com/node-fetch/node-fetch/releases)
- [Commits](https://github.com/node-fetch/node-fetch/compare/v2.6.6...v2.6.7)

---
updated-dependencies:
- dependency-name: node-fetch
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-27 08:34:21 +00:00
James Cole
b90b13632e Merge pull request #5585 from firefly-iii/dependabot/npm_and_yarn/nanoid-3.2.0
Bump nanoid from 3.1.30 to 3.2.0
2022-01-27 08:33:46 +00:00
James Cole
bad57c907c Merge branch 'develop' of github.com:firefly-iii/firefly-iii into develop 2022-01-26 18:43:24 +01:00
James Cole
374793eb92 Add extra validation. 2022-01-26 18:43:14 +01:00
James Cole
8a6ae6105e Merge pull request #5631 from GeorgeHahn/dev/add-external-url-presence-filters
Attempt to add `external_url` filtering support
2022-01-26 18:37:26 +01:00
George Hahn
ecda8eebf2 Fix withoutExternalUrl query and add search modifiers
Co-authored-by: JC5 <james@firefly-iii.org>
2022-01-24 23:03:33 -07:00
mergify[bot]
f0a5257921 Merge pull request #5633 from firefly-iii/dependabot/composer/develop/phpunit/phpunit-9.5.13
Bump phpunit/phpunit from 9.5.12 to 9.5.13
2022-01-25 05:04:00 +00:00
dependabot[bot]
860a4bdc0a Bump phpunit/phpunit from 9.5.12 to 9.5.13
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.5.12 to 9.5.13.
- [Release notes](https://github.com/sebastianbergmann/phpunit/releases)
- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/master/ChangeLog-9.5.md)
- [Commits](https://github.com/sebastianbergmann/phpunit/compare/9.5.12...9.5.13)

---
updated-dependencies:
- dependency-name: phpunit/phpunit
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-25 05:03:56 +00:00
mergify[bot]
f6ddf72323 Merge pull request #5632 from firefly-iii/dependabot/composer/develop/barryvdh/laravel-ide-helper-2.12.1
Bump barryvdh/laravel-ide-helper from 2.12.0 to 2.12.1
2022-01-25 05:03:52 +00:00
dependabot[bot]
ec212bb98e Bump barryvdh/laravel-ide-helper from 2.12.0 to 2.12.1
Bumps [barryvdh/laravel-ide-helper](https://github.com/barryvdh/laravel-ide-helper) from 2.12.0 to 2.12.1.
- [Release notes](https://github.com/barryvdh/laravel-ide-helper/releases)
- [Changelog](https://github.com/barryvdh/laravel-ide-helper/blob/master/CHANGELOG.md)
- [Commits](https://github.com/barryvdh/laravel-ide-helper/compare/v2.12.0...v2.12.1)

---
updated-dependencies:
- dependency-name: barryvdh/laravel-ide-helper
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-25 05:03:47 +00:00
James Cole
fd7d37ac23 Merge branch 'main' into develop 2022-01-25 06:03:38 +01:00
James Cole
b4cd0d6bbc Update dependabot.yml 2022-01-25 06:03:12 +01:00
George Hahn
0a5908e4d8 Attempt to add external_url filtering support 2022-01-24 20:23:12 -07:00
James Cole
59f0631685 Add external url 2022-01-24 07:57:28 +01:00
James Cole
7718deb4a5 Fix missing external url field. 2022-01-24 07:50:33 +01:00
James Cole
75d52b7024 Catch https://github.com/firefly-iii/firefly-iii/issues/5610 2022-01-24 07:38:05 +01:00
James Cole
ecc72dd01b Code for https://github.com/firefly-iii/firefly-iii/issues/5610 2022-01-24 07:24:01 +01:00
mergify[bot]
6591512cf6 Merge pull request #5627 from firefly-iii/dependabot/npm_and_yarn/frontend/develop/jquery-ui-1.13.1
Bump jquery-ui from 1.13.0 to 1.13.1 in /frontend
2022-01-24 03:06:07 +00:00
mergify[bot]
4a0e97e36a Merge pull request #5626 from firefly-iii/dependabot/npm_and_yarn/frontend/develop/sass-1.49.0
Bump sass from 1.48.0 to 1.49.0 in /frontend
2022-01-24 03:05:45 +00:00
mergify[bot]
f90b2d9410 Merge pull request #5621 from firefly-iii/dependabot/npm_and_yarn/frontend/develop/webpack-5.67.0
Bump webpack from 5.66.0 to 5.67.0 in /frontend
2022-01-24 03:05:15 +00:00
mergify[bot]
582ba0ce5d Merge pull request #5624 from firefly-iii/dependabot/npm_and_yarn/frontend/develop/vue-i18n-8.27.0
Bump vue-i18n from 8.26.8 to 8.27.0 in /frontend
2022-01-24 03:04:58 +00:00
mergify[bot]
ce411ab9b0 Merge pull request #5623 from firefly-iii/dependabot/npm_and_yarn/develop/laravel-mix-6.0.41
Bump laravel-mix from 6.0.39 to 6.0.41
2022-01-24 03:04:47 +00:00
dependabot[bot]
d90468db3f Bump jquery-ui from 1.13.0 to 1.13.1 in /frontend
Bumps [jquery-ui](https://github.com/jquery/jquery-ui) from 1.13.0 to 1.13.1.
- [Release notes](https://github.com/jquery/jquery-ui/releases)
- [Commits](https://github.com/jquery/jquery-ui/compare/1.13.0...1.13.1)

---
updated-dependencies:
- dependency-name: jquery-ui
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-24 03:03:55 +00:00
mergify[bot]
3a621e6ff7 Merge pull request #5622 from firefly-iii/dependabot/npm_and_yarn/develop/vue-i18n-8.27.0
Bump vue-i18n from 8.26.8 to 8.27.0
2022-01-24 03:03:46 +00:00
dependabot[bot]
a7ffe66547 Bump sass from 1.48.0 to 1.49.0 in /frontend
Bumps [sass](https://github.com/sass/dart-sass) from 1.48.0 to 1.49.0.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.48.0...1.49.0)

---
updated-dependencies:
- dependency-name: sass
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-24 03:03:29 +00:00
dependabot[bot]
4a57f4d6dd Bump vue-i18n from 8.26.8 to 8.27.0 in /frontend
Bumps [vue-i18n](https://github.com/kazupon/vue-i18n) from 8.26.8 to 8.27.0.
- [Release notes](https://github.com/kazupon/vue-i18n/releases)
- [Changelog](https://github.com/kazupon/vue-i18n/blob/v8.x/CHANGELOG.md)
- [Commits](https://github.com/kazupon/vue-i18n/compare/v8.26.8...v8.27.0)

---
updated-dependencies:
- dependency-name: vue-i18n
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-24 03:02:56 +00:00
dependabot[bot]
5b72ffa575 Bump laravel-mix from 6.0.39 to 6.0.41
Bumps [laravel-mix](https://github.com/JeffreyWay/laravel-mix) from 6.0.39 to 6.0.41.
- [Release notes](https://github.com/JeffreyWay/laravel-mix/releases)
- [Changelog](https://github.com/laravel-mix/laravel-mix/blob/master/CHANGELOG.md)
- [Commits](https://github.com/JeffreyWay/laravel-mix/commits)

---
updated-dependencies:
- dependency-name: laravel-mix
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-24 03:02:46 +00:00
mergify[bot]
04a9e2cec2 Merge pull request #5619 from firefly-iii/dependabot/npm_and_yarn/develop/axios-0.25.0
Bump axios from 0.24.0 to 0.25.0
2022-01-24 03:02:29 +00:00
dependabot[bot]
17022c1174 Bump vue-i18n from 8.26.8 to 8.27.0
Bumps [vue-i18n](https://github.com/kazupon/vue-i18n) from 8.26.8 to 8.27.0.
- [Release notes](https://github.com/kazupon/vue-i18n/releases)
- [Changelog](https://github.com/kazupon/vue-i18n/blob/v8.x/CHANGELOG.md)
- [Commits](https://github.com/kazupon/vue-i18n/compare/v8.26.8...v8.27.0)

---
updated-dependencies:
- dependency-name: vue-i18n
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-24 03:02:26 +00:00
dependabot[bot]
59914a9d87 Bump webpack from 5.66.0 to 5.67.0 in /frontend
Bumps [webpack](https://github.com/webpack/webpack) from 5.66.0 to 5.67.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.66.0...v5.67.0)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-24 03:02:24 +00:00
dependabot[bot]
a7b9653de3 Bump axios from 0.24.0 to 0.25.0
Bumps [axios](https://github.com/axios/axios) from 0.24.0 to 0.25.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/master/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.24.0...v0.25.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-24 03:02:05 +00:00
mergify[bot]
c8dc065e24 Merge pull request #5618 from firefly-iii/dependabot/composer/develop/doctrine/dbal-3.3.0
Bump doctrine/dbal from 3.2.1 to 3.3.0
2022-01-24 03:01:47 +00:00
mergify[bot]
bac58ad0c2 Merge pull request #5617 from firefly-iii/dependabot/composer/develop/barryvdh/laravel-ide-helper-2.12.0
Bump barryvdh/laravel-ide-helper from 2.11.0 to 2.12.0
2022-01-24 03:01:41 +00:00
dependabot[bot]
6b2431b054 Bump doctrine/dbal from 3.2.1 to 3.3.0
Bumps [doctrine/dbal](https://github.com/doctrine/dbal) from 3.2.1 to 3.3.0.
- [Release notes](https://github.com/doctrine/dbal/releases)
- [Commits](https://github.com/doctrine/dbal/compare/3.2.1...3.3.0)

---
updated-dependencies:
- dependency-name: doctrine/dbal
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-24 03:01:40 +00:00
mergify[bot]
7e212ebd48 Merge pull request #5616 from firefly-iii/dependabot/composer/develop/phpunit/phpunit-9.5.12
Bump phpunit/phpunit from 9.5.11 to 9.5.12
2022-01-24 03:01:36 +00:00
dependabot[bot]
b3223b90da Bump barryvdh/laravel-ide-helper from 2.11.0 to 2.12.0
Bumps [barryvdh/laravel-ide-helper](https://github.com/barryvdh/laravel-ide-helper) from 2.11.0 to 2.12.0.
- [Release notes](https://github.com/barryvdh/laravel-ide-helper/releases)
- [Changelog](https://github.com/barryvdh/laravel-ide-helper/blob/master/CHANGELOG.md)
- [Commits](https://github.com/barryvdh/laravel-ide-helper/compare/v2.11.0...v2.12.0)

---
updated-dependencies:
- dependency-name: barryvdh/laravel-ide-helper
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-24 03:01:31 +00:00
mergify[bot]
6ea773cdd7 Merge pull request #5615 from firefly-iii/dependabot/composer/develop/mockery/mockery-1.5.0
Bump mockery/mockery from 1.4.4 to 1.5.0
2022-01-24 03:01:30 +00:00
mergify[bot]
997cddcb5a Merge pull request #5614 from firefly-iii/dependabot/composer/develop/laravel/framework-8.80.0
Bump laravel/framework from 8.79.0 to 8.80.0
2022-01-24 03:01:26 +00:00
dependabot[bot]
8228f76f5d Bump phpunit/phpunit from 9.5.11 to 9.5.12
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.5.11 to 9.5.12.
- [Release notes](https://github.com/sebastianbergmann/phpunit/releases)
- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/master/ChangeLog-9.5.md)
- [Commits](https://github.com/sebastianbergmann/phpunit/compare/9.5.11...9.5.12)

---
updated-dependencies:
- dependency-name: phpunit/phpunit
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-24 03:01:20 +00:00
mergify[bot]
b35ee9ccf4 Merge pull request #5613 from firefly-iii/dependabot/composer/develop/fakerphp/faker-1.18.0
Bump fakerphp/faker from 1.17.0 to 1.18.0
2022-01-24 03:01:18 +00:00
mergify[bot]
16942af52b Merge pull request #5612 from firefly-iii/dependabot/composer/develop/league/commonmark-2.2.0
Bump league/commonmark from 2.1.1 to 2.2.0
2022-01-24 03:01:13 +00:00
dependabot[bot]
b190ce3538 Bump mockery/mockery from 1.4.4 to 1.5.0
Bumps [mockery/mockery](https://github.com/mockery/mockery) from 1.4.4 to 1.5.0.
- [Release notes](https://github.com/mockery/mockery/releases)
- [Changelog](https://github.com/mockery/mockery/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mockery/mockery/compare/1.4.4...1.5.0)

---
updated-dependencies:
- dependency-name: mockery/mockery
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-24 03:01:11 +00:00
dependabot[bot]
9027915280 Bump laravel/framework from 8.79.0 to 8.80.0
Bumps [laravel/framework](https://github.com/laravel/framework) from 8.79.0 to 8.80.0.
- [Release notes](https://github.com/laravel/framework/releases)
- [Changelog](https://github.com/laravel/framework/blob/8.x/CHANGELOG-8.x.md)
- [Commits](https://github.com/laravel/framework/compare/v8.79.0...v8.80.0)

---
updated-dependencies:
- dependency-name: laravel/framework
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-24 03:01:02 +00:00
dependabot[bot]
19aaaef37e Bump fakerphp/faker from 1.17.0 to 1.18.0
Bumps [fakerphp/faker](https://github.com/FakerPHP/Faker) from 1.17.0 to 1.18.0.
- [Release notes](https://github.com/FakerPHP/Faker/releases)
- [Changelog](https://github.com/FakerPHP/Faker/blob/main/CHANGELOG.md)
- [Commits](https://github.com/FakerPHP/Faker/compare/v1.17.0...v1.18.0)

---
updated-dependencies:
- dependency-name: fakerphp/faker
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-24 03:00:45 +00:00
dependabot[bot]
a3bb90e160 Bump league/commonmark from 2.1.1 to 2.2.0
Bumps [league/commonmark](https://github.com/thephpleague/commonmark) from 2.1.1 to 2.2.0.
- [Release notes](https://github.com/thephpleague/commonmark/releases)
- [Changelog](https://github.com/thephpleague/commonmark/blob/2.2/CHANGELOG.md)
- [Commits](https://github.com/thephpleague/commonmark/compare/2.1.1...2.2.0)

---
updated-dependencies:
- dependency-name: league/commonmark
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-24 03:00:37 +00:00
dependabot[bot]
06bae0dd8b Bump nanoid from 3.1.30 to 3.2.0
Bumps [nanoid](https://github.com/ai/nanoid) from 3.1.30 to 3.2.0.
- [Release notes](https://github.com/ai/nanoid/releases)
- [Changelog](https://github.com/ai/nanoid/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ai/nanoid/compare/3.1.30...3.2.0)

---
updated-dependencies:
- dependency-name: nanoid
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-22 02:22:18 +00:00
James Cole
7d48ab5671 Merge branch 'main' into develop 2022-01-20 18:21:40 +01:00
James Cole
8588405aa1 New translations. 2022-01-20 18:20:12 +01:00
James Cole
8238ae7d0a Error handling for https://github.com/firefly-iii/firefly-iii/issues/5575 2022-01-20 06:23:42 +01:00
James Cole
78ebec01a4 Merge branch 'develop' of github.com:firefly-iii/firefly-iii into develop 2022-01-20 06:11:09 +01:00
James Cole
ac1137d7e8 More logging for validation. 2022-01-20 06:11:02 +01:00
James Cole
212e9b833b Update its_you_not_me.md 2022-01-19 09:57:59 +01:00
James Cole
52ad0ba352 Add new relic thing for the demo site. 2022-01-18 19:16:12 +01:00
mergify[bot]
318d86a1f5 Merge pull request #5556 from firefly-iii/dependabot/npm_and_yarn/frontend/develop/webpack-5.66.0
Bump webpack from 5.65.0 to 5.66.0 in /frontend
2022-01-17 03:03:33 +00:00
mergify[bot]
fbffba4c21 Merge pull request #5555 from firefly-iii/dependabot/npm_and_yarn/frontend/develop/sass-1.48.0
Bump sass from 1.47.0 to 1.48.0 in /frontend
2022-01-17 03:03:29 +00:00
mergify[bot]
c7f4e5423a Merge pull request #5551 from firefly-iii/dependabot/composer/develop/spatie/data-transfer-object-3.7.3
Bump spatie/data-transfer-object from 3.7.2 to 3.7.3
2022-01-17 03:03:24 +00:00
dependabot[bot]
5f282a9b7d Bump webpack from 5.65.0 to 5.66.0 in /frontend
Bumps [webpack](https://github.com/webpack/webpack) from 5.65.0 to 5.66.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.65.0...v5.66.0)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-17 03:03:21 +00:00
dependabot[bot]
7539ee3560 Bump sass from 1.47.0 to 1.48.0 in /frontend
Bumps [sass](https://github.com/sass/dart-sass) from 1.47.0 to 1.48.0.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.47.0...1.48.0)

---
updated-dependencies:
- dependency-name: sass
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-17 03:03:08 +00:00
dependabot[bot]
032389c6c0 Bump spatie/data-transfer-object from 3.7.2 to 3.7.3
Bumps [spatie/data-transfer-object](https://github.com/spatie/data-transfer-object) from 3.7.2 to 3.7.3.
- [Release notes](https://github.com/spatie/data-transfer-object/releases)
- [Changelog](https://github.com/spatie/data-transfer-object/blob/main/CHANGELOG.md)
- [Commits](https://github.com/spatie/data-transfer-object/compare/3.7.2...3.7.3)

---
updated-dependencies:
- dependency-name: spatie/data-transfer-object
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-17 03:03:02 +00:00
mergify[bot]
788ac54f86 Merge pull request #5550 from firefly-iii/dependabot/composer/develop/laravel/sanctum-2.14.0
Bump laravel/sanctum from 2.13.0 to 2.14.0
2022-01-17 03:02:33 +00:00
mergify[bot]
4e0fbc8532 Merge pull request #5553 from firefly-iii/dependabot/npm_and_yarn/develop/vue/compiler-sfc-3.2.27
Bump @vue/compiler-sfc from 3.2.26 to 3.2.27
2022-01-17 03:02:25 +00:00
dependabot[bot]
5764d9756c Bump laravel/sanctum from 2.13.0 to 2.14.0
Bumps [laravel/sanctum](https://github.com/laravel/sanctum) from 2.13.0 to 2.14.0.
- [Release notes](https://github.com/laravel/sanctum/releases)
- [Changelog](https://github.com/laravel/sanctum/blob/2.x/CHANGELOG.md)
- [Commits](https://github.com/laravel/sanctum/compare/v2.13.0...v2.14.0)

---
updated-dependencies:
- dependency-name: laravel/sanctum
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-17 03:02:05 +00:00
dependabot[bot]
85e79922ab Bump @vue/compiler-sfc from 3.2.26 to 3.2.27
Bumps [@vue/compiler-sfc](https://github.com/vuejs/vue-next/tree/HEAD/packages/compiler-sfc) from 3.2.26 to 3.2.27.
- [Release notes](https://github.com/vuejs/vue-next/releases)
- [Changelog](https://github.com/vuejs/vue-next/blob/master/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-next/commits/v3.2.27/packages/compiler-sfc)

---
updated-dependencies:
- dependency-name: "@vue/compiler-sfc"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-17 03:01:53 +00:00
mergify[bot]
6f3826a6ff Merge pull request #5552 from firefly-iii/dependabot/composer/develop/laravel/passport-10.3.0
Bump laravel/passport from 10.2.2 to 10.3.0
2022-01-17 03:01:43 +00:00
dependabot[bot]
c061b0b777 Bump laravel/passport from 10.2.2 to 10.3.0
Bumps [laravel/passport](https://github.com/laravel/passport) from 10.2.2 to 10.3.0.
- [Release notes](https://github.com/laravel/passport/releases)
- [Changelog](https://github.com/laravel/passport/blob/10.x/CHANGELOG.md)
- [Commits](https://github.com/laravel/passport/compare/v10.2.2...v10.3.0)

---
updated-dependencies:
- dependency-name: laravel/passport
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-17 03:01:37 +00:00
mergify[bot]
fc7bbfa8e2 Merge pull request #5549 from firefly-iii/dependabot/composer/develop/diglactic/laravel-breadcrumbs-7.1.1
Bump diglactic/laravel-breadcrumbs from 7.0.1 to 7.1.1
2022-01-17 03:01:32 +00:00
dependabot[bot]
0da20c7a1b Bump diglactic/laravel-breadcrumbs from 7.0.1 to 7.1.1
Bumps [diglactic/laravel-breadcrumbs](https://github.com/diglactic/laravel-breadcrumbs) from 7.0.1 to 7.1.1.
- [Release notes](https://github.com/diglactic/laravel-breadcrumbs/releases)
- [Commits](https://github.com/diglactic/laravel-breadcrumbs/compare/v7.0.1...v7.1.1)

---
updated-dependencies:
- dependency-name: diglactic/laravel-breadcrumbs
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-17 03:00:57 +00:00
James Cole
4e2d5fe166 Merge branch 'main' into develop 2022-01-14 05:44:26 +01:00
James Cole
70767678ba Fix https://github.com/firefly-iii/firefly-iii/discussions/5540 2022-01-14 05:44:09 +01:00
James Cole
7340e146f1 Merge pull request #5537 from firefly-iii/dependabot/npm_and_yarn/frontend/follow-redirects-1.14.7
Bump follow-redirects from 1.14.6 to 1.14.7 in /frontend
2022-01-13 13:59:11 +01:00
James Cole
583bc59d23 Merge pull request #5538 from firefly-iii/mergify/JC5/config-update
ci(Mergify): configuration update
2022-01-13 13:58:24 +01:00
James Cole
ff5b872fa3 ci(Mergify): configuration update
Signed-off-by: James Cole <james@firefly-iii.org>
2022-01-13 13:58:08 +01:00
dependabot[bot]
28517a8b78 Bump follow-redirects from 1.14.6 to 1.14.7 in /frontend
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.14.6 to 1.14.7.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.14.6...v1.14.7)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-13 12:52:52 +00:00
James Cole
34138d1533 Merge pull request #5536 from firefly-iii/dependabot/npm_and_yarn/follow-redirects-1.14.7
Bump follow-redirects from 1.14.6 to 1.14.7
2022-01-13 13:52:19 +01:00
dependabot[bot]
ccf589f093 Bump follow-redirects from 1.14.6 to 1.14.7
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.14.6 to 1.14.7.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.14.6...v1.14.7)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-13 12:50:28 +00:00
James Cole
3ee100e71e Fix https://github.com/firefly-iii/firefly-iii/issues/5422 2022-01-11 05:48:34 +01:00
James Cole
1e0547a02c Add message 2022-01-11 05:44:44 +01:00
James Cole
577e1f1b56 Merge branch 'develop' of github.com:firefly-iii/firefly-iii into develop 2022-01-11 05:44:37 +01:00
James Cole
a7d25125a7 Remove old header 2022-01-11 05:44:27 +01:00
mergify[bot]
dbb09ef5d1 Merge pull request #5514 from firefly-iii/dependabot/npm_and_yarn/frontend/develop/sass-1.47.0
Bump sass from 1.45.2 to 1.47.0 in /frontend
2022-01-10 03:03:49 +00:00
dependabot[bot]
d840c94a29 Bump sass from 1.45.2 to 1.47.0 in /frontend
Bumps [sass](https://github.com/sass/dart-sass) from 1.45.2 to 1.47.0.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.45.2...1.47.0)

---
updated-dependencies:
- dependency-name: sass
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-10 03:03:15 +00:00
James Cole
114980480e Merge branch 'release/5.6.10' 2022-01-09 08:30:18 +01:00
James Cole
95b1a821f3 Merge tag '5.6.10' into develop
5.6.10
2022-01-09 08:30:18 +01:00
James Cole
206397cc81 Add notice 2022-01-09 08:19:28 +01:00
James Cole
a6b1a6d0c2 Update packages. 2022-01-09 08:05:07 +01:00
James Cole
aba39a3b27 Update meta files for new release. 2022-01-09 08:02:02 +01:00
James Cole
b5f095dd91 Fix #5510 2022-01-09 07:15:30 +01:00
James Cole
a9e92d4fa6 Fix nullpointer. 2022-01-07 19:24:14 +01:00
James Cole
867a2eacd3 Add trim() 2022-01-07 16:17:38 +01:00
James Cole
accecf6a76 Fix #5503 2022-01-07 14:35:22 +01:00
James Cole
f12b3bc9b7 Add MXN 2022-01-07 07:23:10 +01:00
James Cole
a2ed755c9c Remove logging 2022-01-04 06:32:02 +01:00
James Cole
235639b728 Remove popup 2022-01-04 06:24:33 +01:00
James Cole
b1d5882fa6 Split IBAN display 2022-01-03 06:35:10 +01:00
James Cole
39e632d950 Empty opening balance means field should be empty. 2022-01-03 06:35:00 +01:00
James Cole
87ced85657 Make sure IBAN's have their spaces removed. 2022-01-03 06:34:42 +01:00
mergify[bot]
0c53a8db66 Merge pull request #5474 from firefly-iii/dependabot/composer/develop/league/commonmark-2.1.1
Bump league/commonmark from 2.1.0 to 2.1.1
2022-01-03 03:01:16 +00:00
dependabot[bot]
84dcbaf0e7 Bump league/commonmark from 2.1.0 to 2.1.1
Bumps [league/commonmark](https://github.com/thephpleague/commonmark) from 2.1.0 to 2.1.1.
- [Release notes](https://github.com/thephpleague/commonmark/releases)
- [Changelog](https://github.com/thephpleague/commonmark/blob/2.1/CHANGELOG.md)
- [Commits](https://github.com/thephpleague/commonmark/compare/2.1.0...2.1.1)

---
updated-dependencies:
- dependency-name: league/commonmark
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-03 03:00:43 +00:00
James Cole
047440eaea Remove empty headers 2022-01-02 09:23:41 +01:00
James Cole
217ad0234b Merge tag '5.6.9' into develop
5.6.9
2022-01-02 08:07:57 +01:00
James Cole
9795f46bea Merge branch 'release/5.6.9' 2022-01-02 08:07:56 +01:00
James Cole
10bc0098b9 Merge branch 'main' into develop 2022-01-02 08:07:25 +01:00
James Cole
7a900fd3d9 Update changelog. 2022-01-02 08:05:18 +01:00
James Cole
45cfb4e565 Make sure error is still visible. 2022-01-02 08:01:59 +01:00
James Cole
5320480767 Rebuild frontend(s) 2022-01-02 07:55:28 +01:00
James Cole
3e18e984fa Update translations 2022-01-02 07:52:12 +01:00
James Cole
fce759e98f Update meta files for new release. 2022-01-02 07:49:40 +01:00
James Cole
f4439778f1 Update packages to fix https://github.com/firefly-iii/firefly-iii/issues/5464 2022-01-02 07:37:53 +01:00
James Cole
11176fc212 Rebuild stuff and add warning. 2022-01-02 07:22:04 +01:00
James Cole
ffc71da2eb Fix https://github.com/firefly-iii/firefly-iii/discussions/5458 2021-12-31 06:13:05 +01:00
James Cole
246fa0d6e4 Fix date issue. 2021-12-28 20:42:50 +01:00
James Cole
3444146da3 Lock twigbrdige 2021-12-28 20:11:03 +01:00
James Cole
5c4a482f64 Update bug.yml 2021-12-28 08:54:04 +01:00
James Cole
01f84ea11d Update its_you_not_me.md 2021-12-27 11:29:03 +01:00
mergify[bot]
08402babbd Merge pull request #5435 from firefly-iii/dependabot/composer/develop/rcrowe/twigbridge-0.13.0
Bump rcrowe/twigbridge from 0.12.3 to 0.13.0
2021-12-27 03:04:47 +00:00
dependabot[bot]
7ef3dcbd23 Bump rcrowe/twigbridge from 0.12.3 to 0.13.0
Bumps [rcrowe/twigbridge](https://github.com/rcrowe/TwigBridge) from 0.12.3 to 0.13.0.
- [Release notes](https://github.com/rcrowe/TwigBridge/releases)
- [Changelog](https://github.com/rcrowe/TwigBridge/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rcrowe/TwigBridge/compare/v0.12.3...v0.13.0)

---
updated-dependencies:
- dependency-name: rcrowe/twigbridge
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-27 03:04:16 +00:00
mergify[bot]
8836fa205b Merge pull request #5437 from firefly-iii/dependabot/npm_and_yarn/frontend/develop/sass-1.45.1
Bump sass from 1.45.0 to 1.45.1 in /frontend
2021-12-27 03:03:35 +00:00
mergify[bot]
f544a278c5 Merge pull request #5436 from firefly-iii/dependabot/npm_and_yarn/frontend/develop/chart.js-3.7.0
Bump chart.js from 3.6.2 to 3.7.0 in /frontend
2021-12-27 03:03:31 +00:00
dependabot[bot]
4b8fd6adb9 Bump sass from 1.45.0 to 1.45.1 in /frontend
Bumps [sass](https://github.com/sass/dart-sass) from 1.45.0 to 1.45.1.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.45.0...1.45.1)

---
updated-dependencies:
- dependency-name: sass
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-27 03:03:18 +00:00
dependabot[bot]
1ac8a9b4ac Bump chart.js from 3.6.2 to 3.7.0 in /frontend
Bumps [chart.js](https://github.com/chartjs/Chart.js) from 3.6.2 to 3.7.0.
- [Release notes](https://github.com/chartjs/Chart.js/releases)
- [Commits](https://github.com/chartjs/Chart.js/compare/v3.6.2...v3.7.0)

---
updated-dependencies:
- dependency-name: chart.js
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-27 03:02:58 +00:00
mergify[bot]
08a8a69b34 Merge pull request #5434 from firefly-iii/dependabot/composer/develop/laravel/ui-3.4.1
Bump laravel/ui from 3.4.0 to 3.4.1
2021-12-27 03:01:31 +00:00
mergify[bot]
dbd668bda5 Merge pull request #5433 from firefly-iii/dependabot/composer/develop/laravel/framework-8.77.1
Bump laravel/framework from 8.76.2 to 8.77.1
2021-12-27 03:01:27 +00:00
dependabot[bot]
cc0760553b Bump laravel/ui from 3.4.0 to 3.4.1
Bumps [laravel/ui](https://github.com/laravel/ui) from 3.4.0 to 3.4.1.
- [Release notes](https://github.com/laravel/ui/releases)
- [Changelog](https://github.com/laravel/ui/blob/3.x/CHANGELOG.md)
- [Commits](https://github.com/laravel/ui/compare/v3.4.0...v3.4.1)

---
updated-dependencies:
- dependency-name: laravel/ui
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-27 03:01:24 +00:00
mergify[bot]
1142ff6b1f Merge pull request #5432 from firefly-iii/dependabot/composer/develop/phpunit/phpunit-9.5.11
Bump phpunit/phpunit from 9.5.10 to 9.5.11
2021-12-27 03:01:23 +00:00
dependabot[bot]
927da5d742 Bump laravel/framework from 8.76.2 to 8.77.1
Bumps [laravel/framework](https://github.com/laravel/framework) from 8.76.2 to 8.77.1.
- [Release notes](https://github.com/laravel/framework/releases)
- [Changelog](https://github.com/laravel/framework/blob/8.x/CHANGELOG-8.x.md)
- [Commits](https://github.com/laravel/framework/compare/v8.76.2...v8.77.1)

---
updated-dependencies:
- dependency-name: laravel/framework
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-27 03:01:09 +00:00
dependabot[bot]
9a734e48fe Bump phpunit/phpunit from 9.5.10 to 9.5.11
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.5.10 to 9.5.11.
- [Release notes](https://github.com/sebastianbergmann/phpunit/releases)
- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/master/ChangeLog-9.5.md)
- [Commits](https://github.com/sebastianbergmann/phpunit/compare/9.5.10...9.5.11)

---
updated-dependencies:
- dependency-name: phpunit/phpunit
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-27 03:00:50 +00:00
James Cole
345fe39b54 Merge branch 'main' into develop 2021-12-26 11:01:50 +01:00
James Cole
c7e9d62712 It's you, not me. 2021-12-26 11:01:40 +01:00
James Cole
5918095f11 Update its_you_not_me.md 2021-12-26 11:01:03 +01:00
James Cole
24612eb634 Create its_you_not_me.md 2021-12-26 10:52:05 +01:00
James Cole
f7125d6198 Add buildnr to debug form. 2021-12-24 10:51:08 +01:00
James Cole
47870cd50c Various changes. 2021-12-24 10:46:41 +01:00
James Cole
45fbf83971 Better catch for key restauration problems. 2021-12-21 16:35:28 +01:00
James Cole
6044cffef3 Merge branch 'release/5.6.8' 2021-12-19 08:48:02 +01:00
James Cole
4d933e1ef7 Merge tag '5.6.8' into develop
5.6.8
2021-12-19 08:48:02 +01:00
James Cole
181e088ad5 Meta files for new release. 2021-12-19 08:47:37 +01:00
James Cole
179b86c3ba Clean up various code. 2021-12-19 08:47:02 +01:00
James Cole
083c15b956 Merge branch 'release/5.6.7'
# Conflicts:
#	.github/mergify.yml
2021-12-19 08:19:05 +01:00
James Cole
7c780dd75c Remove logging 2021-12-19 07:16:20 +01:00
James Cole
d35d51c014 Update packages. 2021-12-19 07:05:31 +01:00
James Cole
14c6926360 rebuild for new release 2021-12-19 07:04:57 +01:00
James Cole
bedfcb5c5d Updated translations. 2021-12-19 06:59:10 +01:00
James Cole
19461020ef Various layout fixes. 2021-12-19 06:56:11 +01:00
James Cole
36ecf25804 Refactor account search. 2021-12-18 12:35:17 +01:00
James Cole
0229fc243a Add new transactions. 2021-12-17 20:13:07 +01:00
James Cole
a2f09b305c Possible fix for https://github.com/firefly-iii/firefly-iii/issues/5405 2021-12-17 17:27:29 +01:00
James Cole
32d7a0fd1b Fix some code quality things. 2021-12-17 17:27:01 +01:00
James Cole
5d3f95762e Update mergify.yml 2021-12-16 16:52:02 +01:00
mergify[bot]
4ca9ee6eec Merge pull request #5392 from firefly-iii/dependabot/npm_and_yarn/frontend/develop/sass-1.45.0
Bump sass from 1.44.0 to 1.45.0 in /frontend
2021-12-13 03:04:04 +00:00
dependabot[bot]
9026b0bfd7 Bump sass from 1.44.0 to 1.45.0 in /frontend
Bumps [sass](https://github.com/sass/dart-sass) from 1.44.0 to 1.45.0.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.44.0...1.45.0)

---
updated-dependencies:
- dependency-name: sass
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-13 03:03:30 +00:00
mergify[bot]
3d30a5938a Merge pull request #5391 from firefly-iii/dependabot/npm_and_yarn/frontend/develop/postcss-8.4.5
Bump postcss from 8.4.4 to 8.4.5 in /frontend
2021-12-13 03:03:24 +00:00
dependabot[bot]
bcb06779b9 Bump postcss from 8.4.4 to 8.4.5 in /frontend
Bumps [postcss](https://github.com/postcss/postcss) from 8.4.4 to 8.4.5.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.4...8.4.5)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-13 03:03:15 +00:00
mergify[bot]
26b70f37d6 Merge pull request #5390 from firefly-iii/dependabot/npm_and_yarn/develop/postcss-8.4.5
Bump postcss from 8.4.4 to 8.4.5
2021-12-13 03:02:47 +00:00
mergify[bot]
b20a354344 Merge pull request #5389 from firefly-iii/dependabot/npm_and_yarn/develop/vue/compiler-sfc-3.2.26
Bump @vue/compiler-sfc from 3.2.24 to 3.2.26
2021-12-13 03:02:43 +00:00
dependabot[bot]
753f518f77 Bump postcss from 8.4.4 to 8.4.5
Bumps [postcss](https://github.com/postcss/postcss) from 8.4.4 to 8.4.5.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.4...8.4.5)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-13 03:02:17 +00:00
dependabot[bot]
33d3019ffd Bump @vue/compiler-sfc from 3.2.24 to 3.2.26
Bumps [@vue/compiler-sfc](https://github.com/vuejs/vue-next/tree/HEAD/packages/compiler-sfc) from 3.2.24 to 3.2.26.
- [Release notes](https://github.com/vuejs/vue-next/releases)
- [Changelog](https://github.com/vuejs/vue-next/blob/master/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-next/commits/v3.2.26/packages/compiler-sfc)

---
updated-dependencies:
- dependency-name: "@vue/compiler-sfc"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-13 03:02:09 +00:00
James Cole
26e3157ae7 Merge tag '5.6.6' into develop
5.6.6

# Conflicts:
2021-12-10 19:26:48 +01:00
James Cole
b592528318 Merge branch 'release/5.6.6' 2021-12-10 19:26:29 +01:00
James Cole
936d55d7de Update changelog. 2021-12-10 18:04:49 +01:00
James Cole
6df45fccc5 Update packages. 2021-12-10 18:00:38 +01:00
James Cole
f43ebcce87 Rebuild frontend. 2021-12-10 16:58:30 +01:00
James Cole
23fc261a82 Rebuild v1 2021-12-10 16:55:10 +01:00
James Cole
344db19232 Update translations. 2021-12-10 16:44:36 +01:00
James Cole
5f777845a3 Update version. 2021-12-10 16:42:15 +01:00
James Cole
f32bdd6c76 Fix various issues and remove debug comments. 2021-12-10 16:42:02 +01:00
James Cole
219c3c11f9 Expand API 2021-12-10 16:40:22 +01:00
James Cole
b3b367fcb3 Fix https://github.com/firefly-iii/firefly-iii/issues/5296 2021-12-10 16:37:30 +01:00
James Cole
52a43e7f30 Fix https://github.com/firefly-iii/firefly-iii/issues/5327 2021-12-10 16:31:26 +01:00
James Cole
04f5098d06 Fix https://github.com/firefly-iii/firefly-iii/issues/5335 2021-12-10 16:27:12 +01:00
James Cole
9731503826 Fix https://github.com/firefly-iii/firefly-iii/issues/5352 2021-12-10 15:43:42 +01:00
James Cole
b431351a22 Fix https://github.com/firefly-iii/firefly-iii/issues/5108 2021-12-10 15:32:14 +01:00
James Cole
089097a41c Fix https://github.com/firefly-iii/firefly-iii/issues/5297 2021-12-10 15:08:23 +01:00
James Cole
4468fdd76b Fix https://github.com/firefly-iii/firefly-iii/issues/5375 2021-12-10 15:01:41 +01:00
James Cole
79c70c59e3 Fix #5371 in other places as well. 2021-12-07 06:15:27 +01:00
James Cole
c8ffc81527 Merge branch 'develop' of github.com:firefly-iii/firefly-iii into develop 2021-12-07 06:14:18 +01:00
James Cole
048db14a08 Merge pull request #5371 from weimdall/bugfix/auto_budget_value
Bugfix: Empty pre-filled value in auto-budgets
2021-12-07 05:12:52 +00:00
Julien Cassagne
a9ee07b19a Bugfix: Empty pre-filled value in auto-budgets
The auto-budget pre-filled is empty when the set amount is above
1000 (view /budgets/edit/X).

The root cause was the function 'number_format' returning a string that
cannot be casted to a float when the amount is above 1000, because of the
thousands separator.
2021-12-06 20:38:20 -05:00
mergify[bot]
e316d9ce6d Merge pull request #5366 from firefly-iii/dependabot/npm_and_yarn/frontend/develop/date-fns-2.27.0
Bump date-fns from 2.26.0 to 2.27.0 in /frontend
2021-12-06 03:04:01 +00:00
dependabot[bot]
6bf354cf93 Bump date-fns from 2.26.0 to 2.27.0 in /frontend
Bumps [date-fns](https://github.com/date-fns/date-fns) from 2.26.0 to 2.27.0.
- [Release notes](https://github.com/date-fns/date-fns/releases)
- [Changelog](https://github.com/date-fns/date-fns/blob/master/CHANGELOG.md)
- [Commits](https://github.com/date-fns/date-fns/compare/v2.26.0...v2.27.0)

---
updated-dependencies:
- dependency-name: date-fns
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-06 03:03:35 +00:00
mergify[bot]
384ebf9341 Merge pull request #5365 from firefly-iii/dependabot/npm_and_yarn/frontend/develop/chart.js-3.6.2
Bump chart.js from 3.6.0 to 3.6.2 in /frontend
2021-12-06 03:03:25 +00:00
mergify[bot]
b2c74ba86a Merge pull request #5364 from firefly-iii/dependabot/npm_and_yarn/frontend/develop/sass-1.44.0
Bump sass from 1.43.5 to 1.44.0 in /frontend
2021-12-06 03:03:21 +00:00
dependabot[bot]
0c915de314 Bump chart.js from 3.6.0 to 3.6.2 in /frontend
Bumps [chart.js](https://github.com/chartjs/Chart.js) from 3.6.0 to 3.6.2.
- [Release notes](https://github.com/chartjs/Chart.js/releases)
- [Commits](https://github.com/chartjs/Chart.js/compare/v3.6.0...v3.6.2)

---
updated-dependencies:
- dependency-name: chart.js
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-06 03:03:15 +00:00
dependabot[bot]
327e7efa89 Bump sass from 1.43.5 to 1.44.0 in /frontend
Bumps [sass](https://github.com/sass/dart-sass) from 1.43.5 to 1.44.0.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.43.5...1.44.0)

---
updated-dependencies:
- dependency-name: sass
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-06 03:02:48 +00:00
mergify[bot]
c361b6cc07 Merge pull request #5362 from firefly-iii/dependabot/composer/develop/laravel/ui-3.4.0
Bump laravel/ui from 3.3.3 to 3.4.0
2021-12-06 03:02:12 +00:00
dependabot[bot]
59948d6746 Bump laravel/ui from 3.3.3 to 3.4.0
Bumps [laravel/ui](https://github.com/laravel/ui) from 3.3.3 to 3.4.0.
- [Release notes](https://github.com/laravel/ui/releases)
- [Changelog](https://github.com/laravel/ui/blob/3.x/CHANGELOG.md)
- [Commits](https://github.com/laravel/ui/compare/v3.3.3...v3.4.0)

---
updated-dependencies:
- dependency-name: laravel/ui
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-06 03:01:53 +00:00
mergify[bot]
1d93cf41fd Merge pull request #5363 from firefly-iii/dependabot/composer/develop/fakerphp/faker-1.17.0
Bump fakerphp/faker from 1.16.0 to 1.17.0
2021-12-06 03:01:31 +00:00
dependabot[bot]
8bbbb05adc Bump fakerphp/faker from 1.16.0 to 1.17.0
Bumps [fakerphp/faker](https://github.com/FakerPHP/Faker) from 1.16.0 to 1.17.0.
- [Release notes](https://github.com/FakerPHP/Faker/releases)
- [Changelog](https://github.com/FakerPHP/Faker/blob/main/CHANGELOG.md)
- [Commits](https://github.com/FakerPHP/Faker/compare/v1.16.0...v1.17.0)

---
updated-dependencies:
- dependency-name: fakerphp/faker
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-06 03:01:24 +00:00
mergify[bot]
6e314b6a30 Merge pull request #5361 from firefly-iii/dependabot/composer/develop/laravel/framework-8.74.0
Bump laravel/framework from 8.73.2 to 8.74.0
2021-12-06 03:01:23 +00:00
mergify[bot]
499b2ca7ef Merge pull request #5360 from firefly-iii/dependabot/composer/develop/league/commonmark-2.1.0
Bump league/commonmark from 2.0.2 to 2.1.0
2021-12-06 03:01:20 +00:00
mergify[bot]
77823d3f33 Merge pull request #5359 from firefly-iii/dependabot/composer/develop/league/csv-9.7.4
Bump league/csv from 9.7.3 to 9.7.4
2021-12-06 03:01:17 +00:00
dependabot[bot]
88dfb954ca Bump laravel/framework from 8.73.2 to 8.74.0
Bumps [laravel/framework](https://github.com/laravel/framework) from 8.73.2 to 8.74.0.
- [Release notes](https://github.com/laravel/framework/releases)
- [Changelog](https://github.com/laravel/framework/blob/8.x/CHANGELOG-8.x.md)
- [Commits](https://github.com/laravel/framework/compare/v8.73.2...v8.74.0)

---
updated-dependencies:
- dependency-name: laravel/framework
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-06 03:01:06 +00:00
dependabot[bot]
ddc229f270 Bump league/commonmark from 2.0.2 to 2.1.0
Bumps [league/commonmark](https://github.com/thephpleague/commonmark) from 2.0.2 to 2.1.0.
- [Release notes](https://github.com/thephpleague/commonmark/releases)
- [Changelog](https://github.com/thephpleague/commonmark/blob/2.1/CHANGELOG.md)
- [Commits](https://github.com/thephpleague/commonmark/compare/2.0.2...2.1.0)

---
updated-dependencies:
- dependency-name: league/commonmark
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-06 03:00:51 +00:00
dependabot[bot]
8af8cc2c9a Bump league/csv from 9.7.3 to 9.7.4
Bumps [league/csv](https://github.com/thephpleague/csv) from 9.7.3 to 9.7.4.
- [Release notes](https://github.com/thephpleague/csv/releases)
- [Changelog](https://github.com/thephpleague/csv/blob/master/CHANGELOG.md)
- [Commits](https://github.com/thephpleague/csv/compare/9.7.3...9.7.4)

---
updated-dependencies:
- dependency-name: league/csv
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-06 03:00:42 +00:00
James Cole
775492b391 Minor fixes. 2021-12-03 18:39:45 +01:00
James Cole
1419176094 Validate key existence more strictly. 2021-12-02 18:14:43 +01:00
James Cole
aa0ca5fdcf Flush cache after transaction destruction. 2021-12-01 16:57:55 +01:00
mergify[bot]
0d61a3ad5d Merge pull request #5333 from firefly-iii/dependabot/npm_and_yarn/frontend/develop/postcss-8.4.4
Bump postcss from 8.4.1 to 8.4.4 in /frontend
2021-11-29 03:03:54 +00:00
mergify[bot]
bdbb3d9ad1 Merge pull request #5332 from firefly-iii/dependabot/npm_and_yarn/frontend/develop/webpack-5.64.4
Bump webpack from 5.64.3 to 5.64.4 in /frontend
2021-11-29 03:03:48 +00:00
dependabot[bot]
fc73bddd43 Bump postcss from 8.4.1 to 8.4.4 in /frontend
Bumps [postcss](https://github.com/postcss/postcss) from 8.4.1 to 8.4.4.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.1...8.4.4)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-29 03:03:31 +00:00
dependabot[bot]
7515578ba7 Bump webpack from 5.64.3 to 5.64.4 in /frontend
Bumps [webpack](https://github.com/webpack/webpack) from 5.64.3 to 5.64.4.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.64.3...v5.64.4)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-29 03:03:13 +00:00
mergify[bot]
84b9841886 Merge pull request #5331 from firefly-iii/dependabot/npm_and_yarn/develop/postcss-8.4.4
Bump postcss from 8.4.1 to 8.4.4
2021-11-29 03:02:23 +00:00
dependabot[bot]
6b66476927 Bump postcss from 8.4.1 to 8.4.4
Bumps [postcss](https://github.com/postcss/postcss) from 8.4.1 to 8.4.4.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.1...8.4.4)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-29 03:02:18 +00:00
mergify[bot]
7357f19f81 Merge pull request #5330 from firefly-iii/dependabot/npm_and_yarn/develop/vue/compiler-sfc-3.2.23
Bump @vue/compiler-sfc from 3.2.22 to 3.2.23
2021-11-29 03:02:13 +00:00
dependabot[bot]
f29d8322d5 Bump @vue/compiler-sfc from 3.2.22 to 3.2.23
Bumps [@vue/compiler-sfc](https://github.com/vuejs/vue-next/tree/HEAD/packages/compiler-sfc) from 3.2.22 to 3.2.23.
- [Release notes](https://github.com/vuejs/vue-next/releases)
- [Changelog](https://github.com/vuejs/vue-next/blob/master/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-next/commits/v3.2.23/packages/compiler-sfc)

---
updated-dependencies:
- dependency-name: "@vue/compiler-sfc"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-29 03:02:07 +00:00
mergify[bot]
31a3f6f4d8 Merge pull request #5329 from firefly-iii/dependabot/composer/develop/doctrine/dbal-3.2.0
Bump doctrine/dbal from 3.1.4 to 3.2.0
2021-11-29 03:01:26 +00:00
dependabot[bot]
7432a0c5cb Bump doctrine/dbal from 3.1.4 to 3.2.0
Bumps [doctrine/dbal](https://github.com/doctrine/dbal) from 3.1.4 to 3.2.0.
- [Release notes](https://github.com/doctrine/dbal/releases)
- [Commits](https://github.com/doctrine/dbal/compare/3.1.4...3.2.0)

---
updated-dependencies:
- dependency-name: doctrine/dbal
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-29 03:00:48 +00:00
James Cole
f6d58191b2 Merge branch 'release/5.6.5'
# Conflicts:
#	routes/web.php
2021-11-26 06:41:09 +01:00
James Cole
89fbf0869a Fix some lines. 2021-11-26 06:40:14 +01:00
James Cole
b1e453438e Update meta files for new release. 2021-11-26 06:28:04 +01:00
James Cole
284c6033d3 Update meta files for new release. 2021-11-26 06:24:10 +01:00
James Cole
b85b32560c Fix https://github.com/firefly-iii/firefly-iii/issues/5325 2021-11-26 06:16:21 +01:00
James Cole
35bc92bb49 Update meta files for new release. 2021-11-25 07:16:05 +01:00
James Cole
243a5217e7 Fix redirect. 2021-11-25 06:26:38 +01:00
James Cole
b2eeeed0af Fix #5245 2021-11-24 20:27:57 +01:00
James Cole
afd4700758 Switch things. 2021-11-24 20:20:47 +01:00
James Cole
03a1601bf3 Fix. 2021-11-24 20:04:39 +01:00
James Cole
edfff4ec57 Fix. 2021-11-24 20:03:28 +01:00
James Cole
7b5bc3a25e Revert "Fix CSRF issues"
This reverts commit 518b4ba5a7.
2021-11-24 19:23:57 +01:00
James Cole
d98ca0bb44 Merge branch 'main' into develop 2021-11-24 19:23:45 +01:00
James Cole
518b4ba5a7 Fix CSRF issues 2021-11-24 19:22:07 +01:00
mergify[bot]
9c1f781be3 Merge pull request #5310 from firefly-iii/dependabot/npm_and_yarn/frontend/develop/webpack-5.64.2
Bump webpack from 5.64.0 to 5.64.2 in /frontend
2021-11-22 05:42:08 +00:00
mergify[bot]
fa7c1b3ec8 Merge pull request #5309 from firefly-iii/dependabot/npm_and_yarn/frontend/develop/date-fns-2.26.0
Bump date-fns from 2.25.0 to 2.26.0 in /frontend
2021-11-22 05:42:02 +00:00
mergify[bot]
89acb9b6f3 Merge pull request #5308 from firefly-iii/dependabot/npm_and_yarn/develop/vue/compiler-sfc-3.2.22
Bump @vue/compiler-sfc from 3.2.21 to 3.2.22
2021-11-22 05:41:55 +00:00
mergify[bot]
45971f8f26 Merge pull request #5305 from firefly-iii/dependabot/composer/develop/league/csv-9.7.3
Bump league/csv from 9.7.2 to 9.7.3
2021-11-22 05:41:47 +00:00
mergify[bot]
21f12b87a0 Merge pull request #5304 from firefly-iii/dependabot/composer/develop/doctrine/dbal-3.1.4
Bump doctrine/dbal from 3.1.3 to 3.1.4
2021-11-22 05:41:43 +00:00
mergify[bot]
d264333ab8 Merge pull request #5306 from firefly-iii/dependabot/composer/develop/laravel/ui-3.3.3
Bump laravel/ui from 3.3.2 to 3.3.3
2021-11-22 05:41:37 +00:00
James Cole
0f9c1b9427 Remove mergify file 2021-11-22 06:40:23 +01:00
James Cole
c273f309d4 Add mergify 2021-11-22 06:34:03 +01:00
James Cole
17fd2f9909 Remove config 2021-11-22 06:33:28 +01:00
dependabot[bot]
0436701f29 Bump webpack from 5.64.0 to 5.64.2 in /frontend
Bumps [webpack](https://github.com/webpack/webpack) from 5.64.0 to 5.64.2.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.64.0...v5.64.2)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-22 03:03:26 +00:00
dependabot[bot]
840632b34e Bump date-fns from 2.25.0 to 2.26.0 in /frontend
Bumps [date-fns](https://github.com/date-fns/date-fns) from 2.25.0 to 2.26.0.
- [Release notes](https://github.com/date-fns/date-fns/releases)
- [Changelog](https://github.com/date-fns/date-fns/blob/master/CHANGELOG.md)
- [Commits](https://github.com/date-fns/date-fns/compare/v2.25.0...v2.26.0)

---
updated-dependencies:
- dependency-name: date-fns
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-22 03:03:13 +00:00
dependabot[bot]
764481690c Bump @vue/compiler-sfc from 3.2.21 to 3.2.22
Bumps [@vue/compiler-sfc](https://github.com/vuejs/vue-next/tree/HEAD/packages/compiler-sfc) from 3.2.21 to 3.2.22.
- [Release notes](https://github.com/vuejs/vue-next/releases)
- [Changelog](https://github.com/vuejs/vue-next/blob/master/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-next/commits/v3.2.22/packages/compiler-sfc)

---
updated-dependencies:
- dependency-name: "@vue/compiler-sfc"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-22 03:02:08 +00:00
dependabot[bot]
66b9d7421b Bump laravel/ui from 3.3.2 to 3.3.3
Bumps [laravel/ui](https://github.com/laravel/ui) from 3.3.2 to 3.3.3.
- [Release notes](https://github.com/laravel/ui/releases)
- [Changelog](https://github.com/laravel/ui/blob/3.x/CHANGELOG.md)
- [Commits](https://github.com/laravel/ui/compare/v3.3.2...v3.3.3)

---
updated-dependencies:
- dependency-name: laravel/ui
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-22 03:01:06 +00:00
dependabot[bot]
a02c1557ac Bump league/csv from 9.7.2 to 9.7.3
Bumps [league/csv](https://github.com/thephpleague/csv) from 9.7.2 to 9.7.3.
- [Release notes](https://github.com/thephpleague/csv/releases)
- [Changelog](https://github.com/thephpleague/csv/blob/master/CHANGELOG.md)
- [Commits](https://github.com/thephpleague/csv/compare/9.7.2...9.7.3)

---
updated-dependencies:
- dependency-name: league/csv
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-22 03:00:54 +00:00
dependabot[bot]
ff8af87179 Bump doctrine/dbal from 3.1.3 to 3.1.4
Bumps [doctrine/dbal](https://github.com/doctrine/dbal) from 3.1.3 to 3.1.4.
- [Release notes](https://github.com/doctrine/dbal/releases)
- [Commits](https://github.com/doctrine/dbal/compare/3.1.3...3.1.4)

---
updated-dependencies:
- dependency-name: doctrine/dbal
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-22 03:00:47 +00:00
James Cole
9c8b31fdbb Add log messages and catch exception 2021-11-19 15:47:19 +01:00
James Cole
bda1413da4 Merge pull request #5294 from firefly-iii/dependabot/composer/doctrine/dbal-3.1.4
Bump doctrine/dbal from 3.1.3 to 3.1.4
2021-11-16 18:37:28 +01:00
dependabot[bot]
f1cc8a10f5 Bump doctrine/dbal from 3.1.3 to 3.1.4
Bumps [doctrine/dbal](https://github.com/doctrine/dbal) from 3.1.3 to 3.1.4.
- [Release notes](https://github.com/doctrine/dbal/releases)
- [Commits](https://github.com/doctrine/dbal/compare/3.1.3...3.1.4)

---
updated-dependencies:
- dependency-name: doctrine/dbal
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-16 17:28:40 +00:00
James Cole
babf462bcf Fix https://github.com/firefly-iii/firefly-iii/issues/5288 2021-11-15 23:16:30 +01:00
James Cole
dba24d2dee Merge pull request #5280 from StillLoading/develop
Drop default case. OpenLDAP is already the default (see #5279)
2021-11-13 18:39:00 +01:00
StillLoading
42066cfca2 Drop default case. OpenLDAP is already the default (see #5279) 2021-11-13 17:31:35 +01:00
James Cole
32e550c8e0 Merge pull request #5279 from StillLoading/develop
Develop
2021-11-13 17:17:29 +01:00
StillLoading
4f2c94a5a8 Merge branch 'develop' of github.com:StillLoading/firefly-iii into develop 2021-11-13 17:05:21 +01:00
StillLoading
95076bdb6a change LdapModel selection and add FreeIPA as choice 2021-11-13 17:00:22 +01:00
James Cole
547caadeb2 Fix #5231 as suggested. 2021-11-13 15:38:11 +01:00
James Cole
2469e1e811 Merge branch 'release/5.6.4' 2021-11-13 11:11:53 +01:00
James Cole
ded267c9ac Merge tag '5.6.4' into develop
5.6.4
2021-11-13 11:11:53 +01:00
James Cole
2c9733e739 Update meta files for new release. 2021-11-13 11:11:32 +01:00
James Cole
72fd263ddf Update version 2021-11-13 11:05:57 +01:00
James Cole
8b84a4b336 Add changelog. 2021-11-13 11:04:42 +01:00
James Cole
3caf1f2d36 Add return statement 2021-11-13 11:00:42 +01:00
James Cole
16391fe99c Fix #5276 2021-11-13 10:54:04 +01:00
James Cole
6d3c858cbe Merge tag '5.6.3' into develop
5.6.3
2021-11-12 20:27:12 +01:00
James Cole
7afe9fac0a Merge branch 'release/5.6.3' 2021-11-12 20:27:11 +01:00
James Cole
e6a2c10a19 Merge branch 'main' into develop 2021-11-12 20:26:10 +01:00
James Cole
cc9867bcc4 Update meta files for new release. 2021-11-12 20:24:52 +01:00
James Cole
ba7ae19533 Update meta data for new release. 2021-11-12 20:07:09 +01:00
James Cole
47fa9e3956 Fix huntr.dev logout issue. 2021-11-09 18:46:49 +01:00
James Cole
0b739b0e3f Merge pull request #5262 from firefly-iii/mergify/JC5/config-update
ci(Mergify): configuration update
2021-11-08 07:24:40 +01:00
James Cole
221e912645 ci(Mergify): configuration update
Signed-off-by: James Cole <james@firefly-iii.org>
2021-11-08 07:24:04 +01:00
James Cole
81f4e92231 Merge pull request #5253 from firefly-iii/dependabot/composer/develop/laravel/ui-3.3.2 2021-11-08 06:13:26 +01:00
dependabot[bot]
4fef85d5d0 Bump laravel/ui from 3.3.0 to 3.3.2
Bumps [laravel/ui](https://github.com/laravel/ui) from 3.3.0 to 3.3.2.
- [Release notes](https://github.com/laravel/ui/releases)
- [Changelog](https://github.com/laravel/ui/blob/3.x/CHANGELOG.md)
- [Commits](https://github.com/laravel/ui/compare/v3.3.0...v3.3.2)

---
updated-dependencies:
- dependency-name: laravel/ui
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-08 05:12:25 +00:00
James Cole
04a6b09861 Merge pull request #5252 from firefly-iii/dependabot/composer/develop/laravel/passport-10.2.0 2021-11-08 06:11:55 +01:00
James Cole
e31842d768 Merge pull request #5251 from firefly-iii/dependabot/composer/develop/laravel/framework-8.69.0 2021-11-08 06:11:41 +01:00
James Cole
e99efae839 Merge pull request #5257 from firefly-iii/dependabot/npm_and_yarn/frontend/develop/webpack-5.62.1 2021-11-08 06:11:31 +01:00
James Cole
36f91aa11b Merge pull request #5254 from firefly-iii/dependabot/npm_and_yarn/develop/uiv-1.4.1 2021-11-08 06:11:22 +01:00
James Cole
140658c1a3 Merge pull request #5256 from firefly-iii/dependabot/npm_and_yarn/develop/vue-i18n-8.26.7 2021-11-08 06:11:12 +01:00
James Cole
38be52d12f Merge pull request #5255 from firefly-iii/dependabot/npm_and_yarn/develop/vue/compiler-sfc-3.2.21 2021-11-08 06:11:02 +01:00
James Cole
a7fd8069c2 Merge pull request #5259 from firefly-iii/dependabot/npm_and_yarn/frontend/develop/vue-i18n-8.26.7 2021-11-08 06:10:51 +01:00
James Cole
2df57bf684 Merge pull request #5258 from firefly-iii/dependabot/npm_and_yarn/frontend/develop/uiv-1.4.1 2021-11-08 06:10:38 +01:00
James Cole
4a6cac96f6 Merge pull request #5260 from firefly-iii/dependabot/npm_and_yarn/frontend/develop/laravel-mix-6.0.38 2021-11-08 06:10:24 +01:00
dependabot[bot]
0e6eb89cea Bump laravel-mix from 6.0.37 to 6.0.38 in /frontend
Bumps [laravel-mix](https://github.com/JeffreyWay/laravel-mix) from 6.0.37 to 6.0.38.
- [Release notes](https://github.com/JeffreyWay/laravel-mix/releases)
- [Changelog](https://github.com/laravel-mix/laravel-mix/blob/master/CHANGELOG.md)
- [Commits](https://github.com/JeffreyWay/laravel-mix/compare/v6.0.37...v6.0.38)

---
updated-dependencies:
- dependency-name: laravel-mix
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-08 03:03:50 +00:00
dependabot[bot]
0c883259d9 Bump vue-i18n from 8.26.5 to 8.26.7 in /frontend
Bumps [vue-i18n](https://github.com/kazupon/vue-i18n) from 8.26.5 to 8.26.7.
- [Release notes](https://github.com/kazupon/vue-i18n/releases)
- [Changelog](https://github.com/kazupon/vue-i18n/blob/v8.x/CHANGELOG.md)
- [Commits](https://github.com/kazupon/vue-i18n/compare/v8.26.5...v8.26.7)

---
updated-dependencies:
- dependency-name: vue-i18n
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-08 03:03:36 +00:00
dependabot[bot]
13bd98b842 Bump uiv from 1.4.0 to 1.4.1 in /frontend
Bumps [uiv](https://github.com/uiv-lib/uiv) from 1.4.0 to 1.4.1.
- [Release notes](https://github.com/uiv-lib/uiv/releases)
- [Commits](https://github.com/uiv-lib/uiv/compare/v1.4.0...v1.4.1)

---
updated-dependencies:
- dependency-name: uiv
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-08 03:03:12 +00:00
dependabot[bot]
c641046aa5 Bump webpack from 5.61.0 to 5.62.1 in /frontend
Bumps [webpack](https://github.com/webpack/webpack) from 5.61.0 to 5.62.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.61.0...v5.62.1)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-08 03:02:58 +00:00
dependabot[bot]
05bddbb40e Bump vue-i18n from 8.26.5 to 8.26.7
Bumps [vue-i18n](https://github.com/kazupon/vue-i18n) from 8.26.5 to 8.26.7.
- [Release notes](https://github.com/kazupon/vue-i18n/releases)
- [Changelog](https://github.com/kazupon/vue-i18n/blob/v8.x/CHANGELOG.md)
- [Commits](https://github.com/kazupon/vue-i18n/compare/v8.26.5...v8.26.7)

---
updated-dependencies:
- dependency-name: vue-i18n
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-08 03:02:26 +00:00
dependabot[bot]
4de6d10e27 Bump @vue/compiler-sfc from 3.2.20 to 3.2.21
Bumps [@vue/compiler-sfc](https://github.com/vuejs/vue-next/tree/HEAD/packages/compiler-sfc) from 3.2.20 to 3.2.21.
- [Release notes](https://github.com/vuejs/vue-next/releases)
- [Changelog](https://github.com/vuejs/vue-next/blob/master/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-next/commits/v3.2.21/packages/compiler-sfc)

---
updated-dependencies:
- dependency-name: "@vue/compiler-sfc"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-08 03:02:18 +00:00
dependabot[bot]
253ed7b2bd Bump uiv from 1.4.0 to 1.4.1
Bumps [uiv](https://github.com/uiv-lib/uiv) from 1.4.0 to 1.4.1.
- [Release notes](https://github.com/uiv-lib/uiv/releases)
- [Commits](https://github.com/uiv-lib/uiv/compare/v1.4.0...v1.4.1)

---
updated-dependencies:
- dependency-name: uiv
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-08 03:02:05 +00:00
dependabot[bot]
0d38741de7 Bump laravel/passport from 10.1.4 to 10.2.0
Bumps [laravel/passport](https://github.com/laravel/passport) from 10.1.4 to 10.2.0.
- [Release notes](https://github.com/laravel/passport/releases)
- [Changelog](https://github.com/laravel/passport/blob/10.x/CHANGELOG.md)
- [Commits](https://github.com/laravel/passport/compare/v10.1.4...v10.2.0)

---
updated-dependencies:
- dependency-name: laravel/passport
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-08 03:01:01 +00:00
dependabot[bot]
b5cef50dc7 Bump laravel/framework from 8.68.1 to 8.69.0
Bumps [laravel/framework](https://github.com/laravel/framework) from 8.68.1 to 8.69.0.
- [Release notes](https://github.com/laravel/framework/releases)
- [Changelog](https://github.com/laravel/framework/blob/8.x/CHANGELOG-8.x.md)
- [Commits](https://github.com/laravel/framework/compare/v8.68.1...v8.69.0)

---
updated-dependencies:
- dependency-name: laravel/framework
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-08 03:00:49 +00:00
James Cole
16ee3df31f Fix https://github.com/firefly-iii/firefly-iii/issues/5226 2021-11-05 07:48:22 +01:00
James Cole
341478db73 Simplify code for https://github.com/firefly-iii/firefly-iii/issues/5229 2021-11-05 07:34:58 +01:00
James Cole
ef1bf7c3e6 Catch null pointer 2021-11-04 20:16:35 +01:00
James Cole
ee5b64904d Merge branch 'develop' of github.com:firefly-iii/firefly-iii into develop 2021-11-01 06:40:18 +01:00
James Cole
0ff3b95f89 Merge pull request #5220 from firefly-iii/dependabot/composer/develop/psr/log-2.0.0
Bump psr/log from 1.1.4 to 2.0.0
2021-11-01 06:32:26 +01:00
James Cole
b70c904ec3 Merge pull request #5221 from firefly-iii/dependabot/npm_and_yarn/develop/axios-0.24.0
Bump axios from 0.23.0 to 0.24.0
2021-11-01 06:32:19 +01:00
dependabot[bot]
3e3465fb56 Bump axios from 0.23.0 to 0.24.0
Bumps [axios](https://github.com/axios/axios) from 0.23.0 to 0.24.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/master/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.23.0...v0.24.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-01 03:02:11 +00:00
dependabot[bot]
9e37a107ee Bump psr/log from 1.1.4 to 2.0.0
Bumps [psr/log](https://github.com/php-fig/log) from 1.1.4 to 2.0.0.
- [Release notes](https://github.com/php-fig/log/releases)
- [Commits](https://github.com/php-fig/log/compare/1.1.4...2.0.0)

---
updated-dependencies:
- dependency-name: psr/log
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-01 03:00:33 +00:00
James Cole
4de2512b34 Remove old files. 2021-10-31 17:50:25 +01:00
James Cole
90d4545a1f Fix https://github.com/firefly-iii/firefly-iii/issues/5218 2021-10-30 21:32:02 +02:00
James Cole
8561f3e177 Fix https://github.com/firefly-iii/firefly-iii/issues/5116 2021-10-30 17:26:05 +02:00
James Cole
51b5b3a846 Fix some v2 issues. 2021-10-30 17:06:40 +02:00
James Cole
1401282aa0 Fix #5200 2021-10-30 15:41:29 +02:00
James Cole
8b81526e54 Various improvs to the report generator. 2021-10-30 11:42:35 +02:00
James Cole
a16b6cb2b8 Slightly different info popup. 2021-10-30 10:48:16 +02:00
James Cole
7876030737 Fix https://github.com/firefly-iii/firefly-iii/issues/5178 2021-10-30 07:37:05 +02:00
James Cole
402d5748e4 Rename variable https://github.com/firefly-iii/firefly-iii/issues/5133 2021-10-30 06:53:21 +02:00
James Cole
280975b81a Improvements for https://github.com/firefly-iii/firefly-iii/issues/5133 2021-10-30 06:50:04 +02:00
James Cole
6f8778d87f Catch groups that are in use. 2021-10-26 06:25:41 +02:00
James Cole
fbf7578fb0 Make sure user group is deleted as well when empty. 2021-10-26 06:20:33 +02:00
James Cole
7dd560a2e3 Merge pull request #5201 from firefly-iii/dependabot/composer/develop/barryvdh/laravel-debugbar-3.6.4
Bump barryvdh/laravel-debugbar from 3.6.2 to 3.6.4
2021-10-25 06:59:04 +02:00
dependabot[bot]
0b2e1bc8e2 Bump barryvdh/laravel-debugbar from 3.6.2 to 3.6.4
Bumps [barryvdh/laravel-debugbar](https://github.com/barryvdh/laravel-debugbar) from 3.6.2 to 3.6.4.
- [Release notes](https://github.com/barryvdh/laravel-debugbar/releases)
- [Changelog](https://github.com/barryvdh/laravel-debugbar/blob/master/changelog.md)
- [Commits](https://github.com/barryvdh/laravel-debugbar/compare/v3.6.2...v3.6.4)

---
updated-dependencies:
- dependency-name: barryvdh/laravel-debugbar
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-25 04:45:02 +00:00
James Cole
baea455fde Merge pull request #5203 from firefly-iii/dependabot/composer/develop/laravel/passport-10.1.4 2021-10-25 06:45:00 +02:00
James Cole
eb303157ca Merge pull request #5206 from firefly-iii/dependabot/npm_and_yarn/frontend/develop/postcss-8.3.11 2021-10-25 06:44:50 +02:00
James Cole
733b0d183f Merge pull request #5207 from firefly-iii/dependabot/npm_and_yarn/frontend/develop/chart.js-3.6.0 2021-10-25 06:44:31 +02:00
James Cole
66233b7b00 Merge pull request #5208 from firefly-iii/dependabot/npm_and_yarn/frontend/develop/sass-1.43.3 2021-10-25 06:44:20 +02:00
James Cole
46a820fda5 Merge pull request #5205 from firefly-iii/dependabot/npm_and_yarn/develop/postcss-8.3.11 2021-10-25 06:44:13 +02:00
James Cole
0244989b94 Merge pull request #5209 from firefly-iii/dependabot/npm_and_yarn/frontend/develop/webpack-5.59.1 2021-10-25 06:44:00 +02:00
James Cole
990c369cab Merge pull request #5204 from firefly-iii/dependabot/composer/develop/guzzlehttp/guzzle-7.4.0 2021-10-25 06:43:51 +02:00
dependabot[bot]
af501952c2 Bump webpack from 5.58.2 to 5.59.1 in /frontend
Bumps [webpack](https://github.com/webpack/webpack) from 5.58.2 to 5.59.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.58.2...v5.59.1)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-25 03:03:18 +00:00
dependabot[bot]
d7ba71b1c0 Bump sass from 1.43.2 to 1.43.3 in /frontend
Bumps [sass](https://github.com/sass/dart-sass) from 1.43.2 to 1.43.3.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.43.2...1.43.3)

---
updated-dependencies:
- dependency-name: sass
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-25 03:02:59 +00:00
dependabot[bot]
b8df070d93 Bump chart.js from 3.5.1 to 3.6.0 in /frontend
Bumps [chart.js](https://github.com/chartjs/Chart.js) from 3.5.1 to 3.6.0.
- [Release notes](https://github.com/chartjs/Chart.js/releases)
- [Commits](https://github.com/chartjs/Chart.js/compare/v3.5.1...v3.6.0)

---
updated-dependencies:
- dependency-name: chart.js
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-25 03:02:48 +00:00
dependabot[bot]
c55c4e0e89 Bump postcss from 8.3.9 to 8.3.11 in /frontend
Bumps [postcss](https://github.com/postcss/postcss) from 8.3.9 to 8.3.11.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.3.9...8.3.11)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-25 03:02:35 +00:00
dependabot[bot]
4249336320 Bump postcss from 8.3.9 to 8.3.11
Bumps [postcss](https://github.com/postcss/postcss) from 8.3.9 to 8.3.11.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.3.9...8.3.11)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-25 03:01:56 +00:00
dependabot[bot]
903b9bfd08 Bump guzzlehttp/guzzle from 7.3.0 to 7.4.0
Bumps [guzzlehttp/guzzle](https://github.com/guzzle/guzzle) from 7.3.0 to 7.4.0.
- [Release notes](https://github.com/guzzle/guzzle/releases)
- [Changelog](https://github.com/guzzle/guzzle/blob/master/CHANGELOG.md)
- [Commits](https://github.com/guzzle/guzzle/compare/7.3.0...7.4.0)

---
updated-dependencies:
- dependency-name: guzzlehttp/guzzle
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-25 03:01:14 +00:00
dependabot[bot]
e32a4a84a8 Bump laravel/passport from 10.1.3 to 10.1.4
Bumps [laravel/passport](https://github.com/laravel/passport) from 10.1.3 to 10.1.4.
- [Release notes](https://github.com/laravel/passport/releases)
- [Changelog](https://github.com/laravel/passport/blob/10.x/CHANGELOG.md)
- [Commits](https://github.com/laravel/passport/compare/v10.1.3...v10.1.4)

---
updated-dependencies:
- dependency-name: laravel/passport
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-25 03:01:06 +00:00
James Cole
b42d8d1e30 Fix rescan 2021-10-24 07:32:08 +02:00
James Cole
e9e9a359c8 Disable options for other peoples clients. 2021-10-24 07:25:51 +02:00
James Cole
b3f424fa28 Switch to timezone, not UTC 2021-10-23 11:21:48 +02:00
James Cole
ba740322f4 Fix class not found. 2021-10-23 09:37:53 +02:00
James Cole
898a517ae9 Fix class not found. 2021-10-23 09:37:15 +02:00
James Cole
c2c8c42ef3 Catch CSRF issues 2021-10-23 09:29:07 +02:00
James Cole
4d9c4a415d Add exception description 2021-10-23 09:28:24 +02:00
James Cole
f4fe930430 Update code to reflect latest changes. 2021-10-23 08:32:33 +02:00
James Cole
04dfeaf488 Merge pull request #5196 from weimdall/bugfix/foreign_amount
Bugfix: Foreign Amount rounded on some pages
2021-10-23 07:00:36 +02:00
Julien Cassagne
797064a119 Bugfix: Foreign Amount rounded on some pages 2021-10-22 16:58:52 -04:00
James Cole
4d8d9cb87d Code for #5179 2021-10-19 06:32:10 +02:00
James Cole
d1ae2cffcb Merge pull request #5182 from firefly-iii/dependabot/npm_and_yarn/develop/laravel-mix-6.0.34
Bump laravel-mix from 6.0.32 to 6.0.34
2021-10-18 10:55:35 +02:00
James Cole
102412cdb9 Merge pull request #5184 from firefly-iii/dependabot/npm_and_yarn/frontend/develop/webpack-5.58.2
Bump webpack from 5.58.1 to 5.58.2 in /frontend
2021-10-18 10:55:16 +02:00
James Cole
f9ef5868cc Merge pull request #5185 from firefly-iii/dependabot/npm_and_yarn/frontend/develop/laravel-mix-6.0.34
Bump laravel-mix from 6.0.32 to 6.0.34 in /frontend
2021-10-18 10:54:50 +02:00
James Cole
d9b2112b19 Merge pull request #5183 from firefly-iii/dependabot/npm_and_yarn/frontend/develop/sass-loader-12.2.0
Bump sass-loader from 12.1.0 to 12.2.0 in /frontend
2021-10-18 10:54:27 +02:00
dependabot[bot]
5edcd97c78 Bump sass-loader from 12.1.0 to 12.2.0 in /frontend
Bumps [sass-loader](https://github.com/webpack-contrib/sass-loader) from 12.1.0 to 12.2.0.
- [Release notes](https://github.com/webpack-contrib/sass-loader/releases)
- [Changelog](https://github.com/webpack-contrib/sass-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/sass-loader/compare/v12.1.0...v12.2.0)

---
updated-dependencies:
- dependency-name: sass-loader
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-18 08:53:30 +00:00
James Cole
9227a3039e Merge pull request #5186 from firefly-iii/dependabot/npm_and_yarn/frontend/develop/sass-1.43.2
Bump sass from 1.42.1 to 1.43.2 in /frontend
2021-10-18 10:50:59 +02:00
dependabot[bot]
f97521c118 Bump sass from 1.42.1 to 1.43.2 in /frontend
Bumps [sass](https://github.com/sass/dart-sass) from 1.42.1 to 1.43.2.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.42.1...1.43.2)

---
updated-dependencies:
- dependency-name: sass
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-18 05:10:00 +00:00
James Cole
119870fe9a Merge pull request #5181 from firefly-iii/dependabot/npm_and_yarn/develop/axios-0.23.0
Bump axios from 0.22.0 to 0.23.0
2021-10-18 07:07:34 +02:00
James Cole
f4942e32ed Merge pull request #5180 from firefly-iii/dependabot/composer/develop/laravel/framework-8.64.0
Bump laravel/framework from 8.63.0 to 8.64.0
2021-10-18 07:07:09 +02:00
dependabot[bot]
0ef5c10749 Bump laravel-mix from 6.0.32 to 6.0.34 in /frontend
Bumps [laravel-mix](https://github.com/JeffreyWay/laravel-mix) from 6.0.32 to 6.0.34.
- [Release notes](https://github.com/JeffreyWay/laravel-mix/releases)
- [Changelog](https://github.com/laravel-mix/laravel-mix/blob/master/CHANGELOG.md)
- [Commits](https://github.com/JeffreyWay/laravel-mix/compare/v6.0.32...v6.0.34)

---
updated-dependencies:
- dependency-name: laravel-mix
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-18 03:03:50 +00:00
dependabot[bot]
d37fc311db Bump webpack from 5.58.1 to 5.58.2 in /frontend
Bumps [webpack](https://github.com/webpack/webpack) from 5.58.1 to 5.58.2.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.58.1...v5.58.2)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-18 03:03:35 +00:00
dependabot[bot]
7b05b78cf7 Bump laravel-mix from 6.0.32 to 6.0.34
Bumps [laravel-mix](https://github.com/JeffreyWay/laravel-mix) from 6.0.32 to 6.0.34.
- [Release notes](https://github.com/JeffreyWay/laravel-mix/releases)
- [Changelog](https://github.com/laravel-mix/laravel-mix/blob/master/CHANGELOG.md)
- [Commits](https://github.com/JeffreyWay/laravel-mix/compare/v6.0.32...v6.0.34)

---
updated-dependencies:
- dependency-name: laravel-mix
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-18 03:02:18 +00:00
dependabot[bot]
576a429426 Bump axios from 0.22.0 to 0.23.0
Bumps [axios](https://github.com/axios/axios) from 0.22.0 to 0.23.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/master/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.22.0...v0.23.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-18 03:02:08 +00:00
dependabot[bot]
47ef0c3a0b Bump laravel/framework from 8.63.0 to 8.64.0
Bumps [laravel/framework](https://github.com/laravel/framework) from 8.63.0 to 8.64.0.
- [Release notes](https://github.com/laravel/framework/releases)
- [Changelog](https://github.com/laravel/framework/blob/8.x/CHANGELOG-8.x.md)
- [Commits](https://github.com/laravel/framework/compare/v8.63.0...v8.64.0)

---
updated-dependencies:
- dependency-name: laravel/framework
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-18 03:00:47 +00:00
James Cole
66303f614b Fix login mail handing, #5173 2021-10-13 05:57:11 +02:00
James Cole
98358f7578 Drop some log lines. 2021-10-13 05:44:17 +02:00
James Cole
8486b846f2 Merge pull request #5172 from firefly-iii/dependabot/npm_and_yarn/frontend/develop/laravel-mix-6.0.32
Bump laravel-mix from 6.0.31 to 6.0.32 in /frontend
2021-10-11 06:22:03 +02:00
James Cole
6cb35137cb Merge pull request #5171 from firefly-iii/dependabot/npm_and_yarn/develop/laravel-mix-6.0.32
Bump laravel-mix from 6.0.31 to 6.0.32
2021-10-11 06:21:53 +02:00
dependabot[bot]
f6182412a0 Bump laravel-mix from 6.0.31 to 6.0.32 in /frontend
Bumps [laravel-mix](https://github.com/JeffreyWay/laravel-mix) from 6.0.31 to 6.0.32.
- [Release notes](https://github.com/JeffreyWay/laravel-mix/releases)
- [Changelog](https://github.com/laravel-mix/laravel-mix/blob/master/CHANGELOG.md)
- [Commits](https://github.com/JeffreyWay/laravel-mix/compare/v6.0.31...v6.0.32)

---
updated-dependencies:
- dependency-name: laravel-mix
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-11 03:02:51 +00:00
dependabot[bot]
a67c87101d Bump laravel-mix from 6.0.31 to 6.0.32
Bumps [laravel-mix](https://github.com/JeffreyWay/laravel-mix) from 6.0.31 to 6.0.32.
- [Release notes](https://github.com/JeffreyWay/laravel-mix/releases)
- [Changelog](https://github.com/laravel-mix/laravel-mix/blob/master/CHANGELOG.md)
- [Commits](https://github.com/JeffreyWay/laravel-mix/compare/v6.0.31...v6.0.32)

---
updated-dependencies:
- dependency-name: laravel-mix
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-11 03:01:59 +00:00
James Cole
84b32514df Merge tag '5.6.2' into develop
5.6.2
2021-10-09 15:03:10 +02:00
James Cole
df8b7158a7 Merge branch 'release/5.6.2' 2021-10-09 15:03:09 +02:00
James Cole
ee226d4618 Update meta files for new release. 2021-10-09 10:15:27 +02:00
James Cole
6e2324528c Update translations. 2021-10-09 10:10:06 +02:00
James Cole
344ae4399e Update changelog. 2021-10-09 10:07:18 +02:00
James Cole
f91353f2f5 Fix empty audit message. 2021-10-09 10:07:09 +02:00
James Cole
339ac7c996 Merge branch 'main' into develop 2021-10-09 08:47:07 +02:00
James Cole
d153a4d83e Less logging. 2021-10-09 08:35:56 +02:00
James Cole
dc8e41357d Merge pull request #5159 from firefly-iii/dependabot/composer/composer/composer-2.1.9 2021-10-06 04:33:36 +02:00
dependabot[bot]
20ec53b41a Bump composer/composer from 2.1.8 to 2.1.9
Bumps [composer/composer](https://github.com/composer/composer) from 2.1.8 to 2.1.9.
- [Release notes](https://github.com/composer/composer/releases)
- [Changelog](https://github.com/composer/composer/blob/master/CHANGELOG.md)
- [Commits](https://github.com/composer/composer/compare/2.1.8...2.1.9)

---
updated-dependencies:
- dependency-name: composer/composer
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-05 21:05:04 +00:00
James Cole
7bd9f55df8 Fix nullpointer. 2021-10-04 14:57:30 +02:00
James Cole
d5045b51c7 Merge pull request #5157 from firefly-iii/dependabot/composer/develop/filp/whoops-2.14.4
Bump filp/whoops from 2.14.3 to 2.14.4
2021-10-04 11:16:07 +02:00
James Cole
fc19a86e1f Merge pull request #5158 from firefly-iii/dependabot/npm_and_yarn/develop/axios-0.22.0
Bump axios from 0.21.4 to 0.22.0
2021-10-04 11:15:57 +02:00
dependabot[bot]
422de9c672 Bump axios from 0.21.4 to 0.22.0
Bumps [axios](https://github.com/axios/axios) from 0.21.4 to 0.22.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/master/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.21.4...v0.22.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-04 03:01:41 +00:00
dependabot[bot]
3d75d83a84 Bump filp/whoops from 2.14.3 to 2.14.4
Bumps [filp/whoops](https://github.com/filp/whoops) from 2.14.3 to 2.14.4.
- [Release notes](https://github.com/filp/whoops/releases)
- [Changelog](https://github.com/filp/whoops/blob/master/CHANGELOG.md)
- [Commits](https://github.com/filp/whoops/compare/2.14.3...2.14.4)

---
updated-dependencies:
- dependency-name: filp/whoops
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-04 03:00:38 +00:00
James Cole
0af2fd845d Fix Insufficient Granularity of Access Control 2021-10-03 18:18:44 +02:00
James Cole
e60444cf65 Add log for #5133 2021-10-03 15:31:36 +02:00
James Cole
10f8002da5 Fix logging scope. 2021-10-03 12:44:53 +02:00
James Cole
e331c10d7e Fix papertrail 2021-10-03 06:48:22 +02:00
James Cole
f4844e6252 Add driver 2021-10-03 06:45:38 +02:00
James Cole
76a07c84e9 Add level 2021-10-03 06:37:42 +02:00
James Cole
1c9dc9926a Add papertrail logging. 2021-10-03 06:26:25 +02:00
James Cole
aae80c348b Update packages 2021-10-03 06:06:56 +02:00
James Cole
ab6707b9d9 Fix previous url, also in Safari 2021-10-03 06:06:49 +02:00
James Cole
4e7a27dd65 Refer to steam method 2021-10-03 06:05:47 +02:00
James Cole
5d71baa4a1 Refer to steam method 2021-10-03 06:05:30 +02:00
James Cole
1e0e5d0fe9 Rename variable. 2021-10-03 06:05:11 +02:00
James Cole
0a89af3c83 catch logic exception 2021-10-02 18:46:26 +02:00
James Cole
0518c96567 Catch exception 2021-10-02 18:45:42 +02:00
James Cole
ad8a8ae612 Catch value error. 2021-10-02 18:43:30 +02:00
James Cole
b894bffad9 Update meta files and rebuild. 2021-10-02 16:58:33 +02:00
James Cole
68ad6b9913 Updating translations. 2021-10-02 16:57:59 +02:00
James Cole
1a1ff2dc44 Partial impl for #5142 2021-10-02 14:57:20 +02:00
James Cole
eaeb1f99c6 Fix #5143 2021-10-02 14:47:27 +02:00
James Cole
cc67583278 Group filter for #5133 2021-10-02 14:33:14 +02:00
James Cole
a14568c796 Small refactor in #5153 2021-10-02 14:23:34 +02:00
James Cole
b919a5705c Merge pull request #5153 from ajgon/feature/healthcheck
healthcheck endpoint
2021-10-02 14:19:17 +02:00
Igor Rzegocki
d1e6f4a136 healthcheck endpoint 2021-10-02 13:34:32 +02:00
James Cole
8662dfa4c0 Fix unsecure redirect code. 2021-10-02 13:28:56 +02:00
James Cole
4e84a5c40c Merge branch 'main' into develop 2021-10-02 13:04:06 +02:00
James Cole
2e3877f770 Refuse unsecure redirect urls 2021-10-02 12:50:21 +02:00
James Cole
437f939c57 Remove logging. 2021-10-02 12:50:06 +02:00
James Cole
a85b6420c1 Make sure temp file is closed (and thus deleted) 2021-10-01 11:33:45 +02:00
James Cole
3f1ec6a6d2 Fix markdown parser 2021-10-01 05:30:14 +02:00
James Cole
a694329998 Clean up referral URL catch 2021-10-01 05:30:05 +02:00
James Cole
b1b6ea9b11 Fix #5134 2021-10-01 05:04:03 +02:00
James Cole
d447f5f9d7 Fix #5144 2021-10-01 04:58:10 +02:00
James Cole
c4dbc2bc7f Fix #5145 2021-10-01 04:55:33 +02:00
James Cole
91eee69d9d Merge pull request #5138 from firefly-iii/dependabot/composer/lcobucci/jwt-4.1.5
Bump lcobucci/jwt from 4.1.4 to 4.1.5
2021-09-30 06:38:23 +02:00
dependabot[bot]
8152c4e75c Bump lcobucci/jwt from 4.1.4 to 4.1.5
Bumps [lcobucci/jwt](https://github.com/lcobucci/jwt) from 4.1.4 to 4.1.5.
- [Release notes](https://github.com/lcobucci/jwt/releases)
- [Commits](https://github.com/lcobucci/jwt/compare/4.1.4...4.1.5)

---
updated-dependencies:
- dependency-name: lcobucci/jwt
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-29 17:12:22 +00:00
James Cole
053dd50640 Merge pull request #5119 from firefly-iii/dependabot/composer/develop/ramsey/uuid-4.2.3
Bump ramsey/uuid from 4.2.2 to 4.2.3
2021-09-27 09:58:55 +02:00
James Cole
4d1dd28431 Merge pull request #5120 from firefly-iii/dependabot/npm_and_yarn/develop/vue/compiler-sfc-3.2.19
Bump @vue/compiler-sfc from 3.2.18 to 3.2.19
2021-09-27 09:58:47 +02:00
dependabot[bot]
04be7d6538 Bump @vue/compiler-sfc from 3.2.18 to 3.2.19
Bumps [@vue/compiler-sfc](https://github.com/vuejs/vue-next/tree/HEAD/packages/compiler-sfc) from 3.2.18 to 3.2.19.
- [Release notes](https://github.com/vuejs/vue-next/releases)
- [Changelog](https://github.com/vuejs/vue-next/blob/master/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-next/commits/v3.2.19/packages/compiler-sfc)

---
updated-dependencies:
- dependency-name: "@vue/compiler-sfc"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-27 03:02:16 +00:00
dependabot[bot]
195427e544 Bump ramsey/uuid from 4.2.2 to 4.2.3
Bumps [ramsey/uuid](https://github.com/ramsey/uuid) from 4.2.2 to 4.2.3.
- [Release notes](https://github.com/ramsey/uuid/releases)
- [Changelog](https://github.com/ramsey/uuid/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ramsey/uuid/compare/4.2.2...4.2.3)

---
updated-dependencies:
- dependency-name: ramsey/uuid
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-27 03:00:46 +00:00
James Cole
57bf78489b Add php8 code. 2021-09-25 16:25:03 +02:00
James Cole
5df04cb5ff Merge tag '5.6.1' into develop
5.6.1
2021-09-25 14:21:27 +02:00
404 changed files with 8783 additions and 6312 deletions

View File

@@ -37,9 +37,16 @@ TRUSTED_PROXIES=
# Several other options exist. You can use 'single' for one big fat error log (not recommended).
# Also available are 'syslog', 'errorlog' and 'stdout' which will log to the system itself.
# A rotating log option is 'daily', creates 5 files that (surprise) rotate.
# A cool option is 'papertrail' for cloud logging
# Default setting 'stack' will log to 'daily' and to 'stdout' at the same time.
LOG_CHANNEL=stack
#
# Used when logging to papertrail:
#
PAPERTRAIL_HOST=
PAPERTRAIL_PORT=
# Log level. You can set this from least severe to most severe:
# debug, info, notice, warning, error, critical, alert, emergency
# If you set it to debug your logs will grow large, and fast. If you set it to emergency probably
@@ -62,6 +69,8 @@ DB_PORT=3306
DB_DATABASE=firefly
DB_USERNAME=firefly
DB_PASSWORD=secret_firefly_password
# leave empty or omit when not using a socket connection
DB_SOCKET=
# MySQL supports SSL. You can configure it here.
# If you use Docker or similar, you can set these variables from a file by appending them with _FILE
@@ -82,6 +91,9 @@ PGSQL_SSL_CERT=null
PGSQL_SSL_KEY=null
PGSQL_SSL_CRL_FILE=null
# more PostgreSQL settings
PGSQL_SCHEMA=public
# If you're looking for performance improvements, you could install memcached or redis
CACHE_DRIVER=file
SESSION_DRIVER=file
@@ -170,6 +182,12 @@ MAP_DEFAULT_ZOOM=6
# https://docs.firefly-iii.org/advanced-installation/authentication
AUTHENTICATION_GUARD=web
#
# Your LDAP server may speak a dialect. You can choose between 'OpenLDAP' and 'ActiveDirectory'
# Anything else defaults to 'ActiveDirectory'
#
LDAP_DIALECT=OpenLDAP
#
# LDAP connection settings:
#
@@ -185,6 +203,15 @@ LDAP_PASSWORD=super_secret
LDAP_AUTH_FIELD=uid
#
# If you wish to only authenticate users from a specific group, use the base DN above.
#
# If you require extra/special filters please use the LDAP_EXTRA_FILTER with a valid DN.
#
# The extra filter will only be applied after the user is authenticated.
#
LDAP_EXTRA_FILTER=
#
# Remote user guard settings
#
@@ -280,6 +307,8 @@ FIREFLY_III_LAYOUT=v1
# It won't work. It doesn't do ANYTHING. Don't believe the lies you read online. I'm not joking.
# This configuration value WILL NOT HELP.
#
# Notable exception to this rule is Synology, which, according to some users, will use APP_URL to rewrite stuff.
#
# This variable is ONLY used in some of the emails Firefly III sends around. Nowhere else.
# So when configuring anything WEB related this variable doesn't do anything. Nothing
#

View File

@@ -1,7 +0,0 @@
pull_request_rules:
- name: PR on main is never approved.
conditions:
- base=main
actions:
close:
message: Please reopen this PR on the `develop` branch. Thank you.

View File

@@ -14,8 +14,9 @@ body:
label: I've found a bug and checked that ...
description: Make sure that your request fulfills all of the following requirements. If one requirement cannot be satisfied, explain in detail why.
options:
- label: ... the documentation does not mention anything about my problem
- label: ... [the documentation](https://docs.firefly-iii.org/) does not mention anything about my problem
- label: ... there are no open or closed issues that are related to my problem
- label: ... it's [definitely me, not you](https://github.com/firefly-iii/firefly-iii/blob/main/.github/its_you_not_me.md)
- type: textarea
attributes:

View File

@@ -19,11 +19,3 @@ updates:
schedule:
interval: "weekly"
# yarn / JS updates for new frontend
- package-ecosystem: "npm"
directory: "/frontend"
target-branch: develop
versioning-strategy: increase
labels: ["bug"]
schedule:
interval: "weekly"

15
.github/its_you_not_me.md vendored Normal file
View File

@@ -0,0 +1,15 @@
# It's not you, it's me
Sometimes bugs reported to Firefly III are configuration and system problems on the user side.
If you run into one of the following problems, there's a good chance it's not a Firefly III issue, but a configuration issue.
- ⚠️ Can't connect to the database when starting Firefly III
- ⚠️ Errors with missing app keys or encryption problems
- ⚠️ Can't login due to 419 errors
- ⚠️ Any 500 error when starting Firefly III
- ⚠️ Any white page when starting Firefly III
- ⚠️ Time-out when starting Firefly III for the first time
- ⚠️ Firefly III does not work behind your reverse proxy
If you run into an issue like this, please start a [discussion](https://github.com/firefly-iii/firefly-iii/discussions) or chat on [Gitter.im](https://gitter.im/firefly-iii/firefly-iii). There's a good chance it's not a bug but something we can fix rather quickly :+1:

14
.github/mergify.yml vendored Normal file
View File

@@ -0,0 +1,14 @@
pull_request_rules:
- name: Security update by dependabot
conditions:
- author~=^dependabot(|-preview)\[bot\]$
actions:
merge:
method: merge
- name: Close all on main
conditions:
- base=main
- -author~=^dependabot(|-preview)\[bot\]$
actions:
close:
message: Please do not open PR's on the `main` branch, but on the `develop` branch only. Thank you!

4
.github/stale.yml vendored
View File

@@ -1,11 +1,11 @@
# Configuration for probot-stale - https://github.com/probot/stale
# Number of days of inactivity before an Issue or Pull Request becomes stale
daysUntilStale: 7
daysUntilStale: 14
# Number of days of inactivity before a stale Issue or Pull Request is closed.
# Set to false to disable. If disabled, issues still need to be closed manually, but will remain marked as stale.
daysUntilClose: 7
daysUntilClose: 14
# Issues or Pull Requests with these labels will never be considered stale. Set to `[]` to disable
# - "[Status] Maybe Later"

21
.github/workflows/build.yml vendored Normal file
View File

@@ -0,0 +1,21 @@
name: Sonarcloud CI
on:
push:
branches:
- main
- develop
pull_request:
types: [opened, synchronize, reopened]
jobs:
sonarcloud:
name: SonarCloud
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
- name: SonarCloud Scan
uses: SonarSource/sonarcloud-github-action@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}

3
.gitignore vendored
View File

@@ -15,4 +15,5 @@ yarn-error.log
public/google*.html
report.html
composer.phar
app.js.map
app.js.map
frontend-v3

View File

@@ -1,58 +0,0 @@
---
build:
nodes:
analysis:
project_setup:
override: true
tests:
override:
- php-scrutinizer-run
checks:
javascript: true
php:
align_assignments: true
avoid_fixme_comments: true
avoid_multiple_statements_on_same_line: true
avoid_perl_style_comments: true
avoid_todo_comments: true
duplication: false
encourage_single_quotes: true
newline_at_end_of_file: true
no_goto: true
no_long_variable_names:
maximum: "20"
no_short_method_names:
minimum: "3"
no_short_variable_names:
minimum: "3"
optional_parameters_at_the_end: true
parameter_doc_comments: true
remove_extra_empty_lines: true
return_doc_comment_if_not_inferrable: true
return_doc_comments: true
uppercase_constants: true
use_self_instead_of_fqcn: true
coding_style:
php:
spaces:
around_operators:
concatenation: true
other:
after_type_cast: false
filter:
excluded_paths:
- database/migrations/*
- bootstrap/*
- config/*
- docker/*
- public/js/lib/*
- public/lib/adminlte/js/*
- public/lib/bootstrap/js/*
- resources/*
- routes/*
- storage/*
paths:
- app/*
- public/js/ff/*
tools:
external_code_coverage: false

View File

@@ -1,20 +0,0 @@
language: php
php:
- '7.4'
dist: xenial
os: linux
cache:
directories:
- "/home/travis/.config"
- "/home/travis/build/firefly-iii/firefly-iii/vendor"
branches:
only:
- develop
before_script:
- phpenv config-rm xdebug.ini || return 0
script:
- "./.ci/phpstan.sh"
- "./.ci/phpunit.sh"

View File

@@ -75,6 +75,7 @@ class DestroyController extends Controller
$this->repository->destroyGroup($transactionGroup);
// trigger just after destruction
event(new DestroyedTransactionGroup($transactionGroup));
app('preferences')->mark();
return response()->json([], 204);
}

View File

@@ -54,7 +54,7 @@ class AutocompleteRequest extends FormRequest
return [
'types' => $array,
'query' => $this->string('query'),
'date' => $this->date('date'),
'date' => $this->getCarbonDate('date'),
'limit' => $limit,
];
}

View File

@@ -45,8 +45,8 @@ class DateRequest extends FormRequest
public function getAll(): array
{
return [
'start' => $this->date('start'),
'end' => $this->date('end'),
'start' => $this->getCarbonDate('start'),
'end' => $this->getCarbonDate('end'),
];
}

View File

@@ -41,8 +41,8 @@ class ExportRequest extends FormRequest
public function getAll(): array
{
$result = [
'start' => $this->date('start') ?? Carbon::now()->subYear(),
'end' => $this->date('end') ?? Carbon::now(),
'start' => $this->getCarbonDate('start') ?? Carbon::now()->subYear(),
'end' => $this->getCarbonDate('end') ?? Carbon::now(),
'type' => $this->string('type'),
];
$parts = explode(',', $this->string('accounts'));

View File

@@ -58,8 +58,8 @@ class GenericRequest extends FormRequest
public function getAll(): array
{
return [
'start' => $this->date('start'),
'end' => $this->date('end'),
'start' => $this->getCarbonDate('start'),
'end' => $this->getCarbonDate('end'),
];
}
@@ -204,7 +204,7 @@ class GenericRequest extends FormRequest
*/
public function getEnd(): Carbon
{
$date = $this->date('end');
$date = $this->getCarbonDate('end');
$date->endOfDay();
return $date;
@@ -251,7 +251,7 @@ class GenericRequest extends FormRequest
*/
public function getStart(): Carbon
{
$date = $this->date('start');
$date = $this->getCarbonDate('start');
$date->startOfDay();
return $date;

View File

@@ -70,7 +70,7 @@ class StoreRequest extends FormRequest
'account_number' => $this->string('account_number'),
'account_role' => $this->string('account_role'),
'opening_balance' => $this->string('opening_balance'),
'opening_balance_date' => $this->date('opening_balance_date'),
'opening_balance_date' => $this->getCarbonDate('opening_balance_date'),
'cc_type' => $this->string('credit_card_type'),
'cc_monthly_payment_date' => $this->string('monthly_payment_date'),
'notes' => $this->stringWithNewlines('notes'),
@@ -82,7 +82,7 @@ class StoreRequest extends FormRequest
if ('liability' === $data['account_type_name'] || 'liabilities' === $data['account_type_name']) {
$data['opening_balance'] = app('steam')->negative($this->string('liability_amount'));
$data['opening_balance_date'] = $this->date('liability_start_date');
$data['opening_balance_date'] = $this->getCarbonDate('liability_start_date');
$data['account_type_name'] = $this->string('liability_type');
$data['liability_direction'] = $this->string('liability_direction');
$data['account_type_id'] = null;

View File

@@ -44,8 +44,8 @@ class StoreRequest extends FormRequest
public function getAll(): array
{
return [
'start' => $this->date('start'),
'end' => $this->date('end'),
'start' => $this->getCarbonDate('start'),
'end' => $this->getCarbonDate('end'),
'amount' => $this->string('amount'),
'currency_id' => $this->integer('currency_id'),
'currency_code' => $this->string('currency_code'),

View File

@@ -51,8 +51,8 @@ class StoreRequest extends FormRequest
$data['account_id'] = $this->integer('account_id');
$data['targetamount'] = $this->string('target_amount');
$data['current_amount'] = $this->string('current_amount');
$data['startdate'] = $this->date('start_date');
$data['targetdate'] = $this->date('target_date');
$data['startdate'] = $this->getCarbonDate('start_date');
$data['targetdate'] = $this->getCarbonDate('target_date');
$data['notes'] = $this->stringWithNewlines('notes');
$data['object_group_id'] = $this->integer('object_group_id');
$data['object_group_title'] = $this->string('object_group_title');

View File

@@ -53,6 +53,7 @@ class UpdateRequest extends FormRequest
'strict' => ['strict', 'boolean'],
'stop_processing' => ['stop_processing', 'boolean'],
'active' => ['active', 'boolean'],
'order' => ['order', 'integer'],
];
$return = $this->getAllData($fields);
@@ -150,6 +151,7 @@ class UpdateRequest extends FormRequest
'strict' => [new IsBoolean],
'stop_processing' => [new IsBoolean],
'active' => [new IsBoolean],
'order' => 'numeric|between:1,1337',
];
}

View File

@@ -47,7 +47,7 @@ class StoreRequest extends FormRequest
{
$data = [
'tag' => $this->string('tag'),
'date' => $this->date('date'),
'date' => $this->getCarbonDate('date'),
'description' => $this->string('description'),
'has_location' => true,
];

View File

@@ -137,7 +137,7 @@ class StoreRequest extends FormRequest
'original_source' => sprintf('ff3-v%s|api-v%s', config('firefly.version'), config('firefly.api_version')),
'recurrence_id' => $this->integerFromValue($object['recurrence_id']),
'bunq_payment_id' => $this->clearString((string)$object['bunq_payment_id'], false),
'external_uri' => $this->clearString((string)$object['external_uri'], false),
'external_url' => $this->clearString((string)$object['external_url'], false),
'sepa_cc' => $this->clearString((string)$object['sepa_cc'], false),
'sepa_ct_op' => $this->clearString((string)$object['sepa_ct_op'], false),
@@ -211,7 +211,7 @@ class StoreRequest extends FormRequest
// budget, category, bill and piggy
'transactions.*.budget_id' => ['mustExist:budgets,id', new BelongsUser],
'transactions.*.budget_name' => ['between:1,255', 'nullable', new BelongsUser],
'transactions.*.category_id' => ['mustExist:categories,id', new BelongsUser],
'transactions.*.category_id' => ['mustExist:categories,id', new BelongsUser,'nullable'],
'transactions.*.category_name' => 'between:1,255|nullable',
'transactions.*.bill_id' => ['numeric', 'nullable', 'mustExist:bills,id', new BelongsUser],
'transactions.*.bill_name' => ['between:1,255', 'nullable', new BelongsUser],
@@ -228,7 +228,7 @@ class StoreRequest extends FormRequest
'transactions.*.external_id' => 'min:1,max:255|nullable',
'transactions.*.recurrence_id' => 'min:1,max:255|nullable',
'transactions.*.bunq_payment_id' => 'min:1,max:255|nullable',
'transactions.*.external_uri' => 'min:1,max:255|nullable|url',
'transactions.*.external_url' => 'min:1,max:255|nullable|url',
// SEPA fields:
'transactions.*.sepa_cc' => 'min:1,max:255|nullable',

View File

@@ -113,7 +113,7 @@ class UpdateRequest extends FormRequest
'sepa_ep',
'sepa_ci',
'sepa_batch_id',
'external_uri',
'external_url',
];
$this->booleanFields = [
'reconciled',
@@ -284,72 +284,76 @@ class UpdateRequest extends FormRequest
{
return [
// basic fields for group:
'group_title' => 'between:1,1000',
'apply_rules' => [new IsBoolean],
'group_title' => 'between:1,1000',
'apply_rules' => [new IsBoolean],
// transaction rules (in array for splits):
'transactions.*.type' => 'in:withdrawal,deposit,transfer,opening-balance,reconciliation',
'transactions.*.date' => [new IsDateOrTime],
'transactions.*.order' => 'numeric|min:0',
'transactions.*.type' => 'in:withdrawal,deposit,transfer,opening-balance,reconciliation',
'transactions.*.date' => [new IsDateOrTime],
'transactions.*.order' => 'numeric|min:0',
// group id:
'transactions.*.transaction_journal_id' => ['numeric', 'exists:transaction_journals,id', new BelongsUser],
// currency info
'transactions.*.currency_id' => 'numeric|exists:transaction_currencies,id',
'transactions.*.currency_code' => 'min:3|max:3|exists:transaction_currencies,code',
'transactions.*.foreign_currency_id' => 'nullable|numeric|exists:transaction_currencies,id',
'transactions.*.foreign_currency_code' => 'nullable|min:3|max:3|exists:transaction_currencies,code',
'transactions.*.currency_id' => 'numeric|exists:transaction_currencies,id',
'transactions.*.currency_code' => 'min:3|max:3|exists:transaction_currencies,code',
'transactions.*.foreign_currency_id' => 'nullable|numeric|exists:transaction_currencies,id',
'transactions.*.foreign_currency_code' => 'nullable|min:3|max:3|exists:transaction_currencies,code',
// amount
'transactions.*.amount' => 'numeric|gt:0|max:100000000000',
'transactions.*.foreign_amount' => 'nullable|numeric|gte:0',
'transactions.*.amount' => 'numeric|gt:0|max:100000000000',
'transactions.*.foreign_amount' => 'nullable|numeric|gte:0',
// description
'transactions.*.description' => 'nullable|between:1,1000',
'transactions.*.description' => 'nullable|between:1,1000',
// source of transaction
'transactions.*.source_id' => ['numeric', 'nullable', new BelongsUser],
'transactions.*.source_name' => 'between:1,255|nullable',
'transactions.*.source_id' => ['numeric', 'nullable', new BelongsUser],
'transactions.*.source_name' => 'between:1,255|nullable',
// destination of transaction
'transactions.*.destination_id' => ['numeric', 'nullable', new BelongsUser],
'transactions.*.destination_name' => 'between:1,255|nullable',
'transactions.*.destination_id' => ['numeric', 'nullable', new BelongsUser],
'transactions.*.destination_name' => 'between:1,255|nullable',
// budget, category, bill and piggy
'transactions.*.budget_id' => ['mustExist:budgets,id', new BelongsUser],
'transactions.*.budget_name' => ['between:1,255', 'nullable', new BelongsUser],
'transactions.*.category_id' => ['mustExist:categories,id', new BelongsUser],
'transactions.*.category_name' => 'between:1,255|nullable',
'transactions.*.bill_id' => ['numeric', 'nullable', 'mustExist:bills,id', new BelongsUser],
'transactions.*.bill_name' => ['between:1,255', 'nullable', new BelongsUser],
'transactions.*.budget_id' => ['mustExist:budgets,id', new BelongsUser],
'transactions.*.budget_name' => ['between:1,255', 'nullable', new BelongsUser],
'transactions.*.category_id' => ['mustExist:categories,id', new BelongsUser],
'transactions.*.category_name' => 'between:1,255|nullable',
'transactions.*.bill_id' => ['numeric', 'nullable', 'mustExist:bills,id', new BelongsUser],
'transactions.*.bill_name' => ['between:1,255', 'nullable', new BelongsUser],
// other interesting fields
'transactions.*.reconciled' => [new IsBoolean],
'transactions.*.notes' => 'min:1,max:50000|nullable',
'transactions.*.tags' => 'between:0,255',
'transactions.*.reconciled' => [new IsBoolean],
'transactions.*.notes' => 'min:1,max:50000|nullable',
'transactions.*.tags' => 'between:0,255',
// meta info fields
'transactions.*.internal_reference' => 'min:1,max:255|nullable',
'transactions.*.external_id' => 'min:1,max:255|nullable',
'transactions.*.recurrence_id' => 'min:1,max:255|nullable',
'transactions.*.bunq_payment_id' => 'min:1,max:255|nullable',
'transactions.*.external_uri' => 'min:1,max:255|nullable|url',
'transactions.*.internal_reference' => 'min:1,max:255|nullable',
'transactions.*.external_id' => 'min:1,max:255|nullable',
'transactions.*.recurrence_id' => 'min:1,max:255|nullable',
'transactions.*.bunq_payment_id' => 'min:1,max:255|nullable',
'transactions.*.external_url' => 'min:1,max:255|nullable|url',
// SEPA fields:
'transactions.*.sepa_cc' => 'min:1,max:255|nullable',
'transactions.*.sepa_ct_op' => 'min:1,max:255|nullable',
'transactions.*.sepa_ct_id' => 'min:1,max:255|nullable',
'transactions.*.sepa_db' => 'min:1,max:255|nullable',
'transactions.*.sepa_country' => 'min:1,max:255|nullable',
'transactions.*.sepa_ep' => 'min:1,max:255|nullable',
'transactions.*.sepa_ci' => 'min:1,max:255|nullable',
'transactions.*.sepa_batch_id' => 'min:1,max:255|nullable',
'transactions.*.sepa_cc' => 'min:1,max:255|nullable',
'transactions.*.sepa_ct_op' => 'min:1,max:255|nullable',
'transactions.*.sepa_ct_id' => 'min:1,max:255|nullable',
'transactions.*.sepa_db' => 'min:1,max:255|nullable',
'transactions.*.sepa_country' => 'min:1,max:255|nullable',
'transactions.*.sepa_ep' => 'min:1,max:255|nullable',
'transactions.*.sepa_ci' => 'min:1,max:255|nullable',
'transactions.*.sepa_batch_id' => 'min:1,max:255|nullable',
// dates
'transactions.*.interest_date' => 'date|nullable',
'transactions.*.book_date' => 'date|nullable',
'transactions.*.process_date' => 'date|nullable',
'transactions.*.due_date' => 'date|nullable',
'transactions.*.payment_date' => 'date|nullable',
'transactions.*.invoice_date' => 'date|nullable',
'transactions.*.interest_date' => 'date|nullable',
'transactions.*.book_date' => 'date|nullable',
'transactions.*.process_date' => 'date|nullable',
'transactions.*.due_date' => 'date|nullable',
'transactions.*.payment_date' => 'date|nullable',
'transactions.*.invoice_date' => 'date|nullable',
];
}
@@ -375,6 +379,9 @@ class UpdateRequest extends FormRequest
// validate source/destination is equal, depending on the transaction journal type.
$this->validateEqualAccountsForUpdate($validator, $transactionGroup);
// a catch when users submit splits with no source or destination info at all.
$this->preventNoAccountInfo($validator,);
// validate that the currency fits the source and/or destination account.
// validate all account info
$this->validateAccountInformationUpdate($validator, $transactionGroup);

View File

@@ -62,7 +62,7 @@ class CronRequest extends FormRequest
$data['force'] = $this->boolean('force');
}
if ($this->has('date')) {
$data['date'] = $this->date('date');
$data['date'] = $this->getCarbonDate('date');
}
return $data;

View File

@@ -69,6 +69,7 @@ class CorrectDatabase extends Command
'firefly-iii:delete-empty-journals',
'firefly-iii:delete-empty-groups',
'firefly-iii:fix-account-types',
'firefly-iii:fix-ibans',
'firefly-iii:fix-account-order',
'firefly-iii:rename-meta-fields',
'firefly-iii:fix-ob-currencies',

View File

@@ -72,9 +72,7 @@ class CorrectOpeningBalanceCurrencies extends Command
$count = 0;
/** @var TransactionJournal $journal */
foreach ($set as $journal) {
Log::debug(sprintf('Going to fix journal #%d', $journal->id));
$count += $this->correctJournal($journal);
Log::debug(sprintf('Done, count is now %d', $count));
}
if ($count > 0) {
@@ -100,7 +98,6 @@ class CorrectOpeningBalanceCurrencies extends Command
*/
private function correctJournal(TransactionJournal $journal): int
{
Log::debug(sprintf('Going to correct journal #%d', $journal->id));
// get the asset account for this opening balance:
$account = $this->getAccount($journal);
if (null === $account) {
@@ -110,9 +107,7 @@ class CorrectOpeningBalanceCurrencies extends Command
return 0;
}
Log::debug(sprintf('Found "%s" #%d "%s".', $account->accountType->type, $account->id, $account->name));
$currency = $this->getCurrency($account);
Log::debug(sprintf('Found currency #%d (%s)', $currency->id, $currency->code));
// update journal and all transactions:
return $this->setCurrency($journal, $currency);
@@ -126,20 +121,14 @@ class CorrectOpeningBalanceCurrencies extends Command
private function getAccount(TransactionJournal $journal): ?Account
{
$transactions = $journal->transactions()->get();
Log::debug(sprintf('Found %d transactions for journal #%d.', $transactions->count(), $journal->id));
/** @var Transaction $transaction */
foreach ($transactions as $transaction) {
Log::debug(sprintf('Testing transaction #%d', $transaction->id));
/** @var Account $account */
$account = $transaction->account()->first();
if (null !== $account && AccountType::INITIAL_BALANCE !== $account->accountType()->first()->type) {
Log::debug(sprintf('Account of transaction #%d is opposite of IB account (%s).', $transaction->id, $account->accountType()->first()->type));
return $account;
}
}
Log::debug('Found no IB account in transactions of journal.');
return null;
}
@@ -165,10 +154,8 @@ class CorrectOpeningBalanceCurrencies extends Command
*/
private function setCurrency(TransactionJournal $journal, TransactionCurrency $currency): int
{
Log::debug('Now in setCurrency');
$count = 0;
if ((int)$journal->transaction_currency_id !== (int)$currency->id) {
Log::debug(sprintf('Currency ID of journal #%d was #%d, now set to #%d', $journal->id, $journal->transaction_currency_id, $currency->id));
$journal->transaction_currency_id = $currency->id;
$journal->save();
$count = 1;
@@ -177,15 +164,11 @@ class CorrectOpeningBalanceCurrencies extends Command
/** @var Transaction $transaction */
foreach ($journal->transactions as $transaction) {
if ((int)$transaction->transaction_currency_id !== (int)$currency->id) {
Log::debug(
sprintf('Currency ID of transaction #%d was #%d, now set to #%d', $transaction->id, $transaction->transaction_currency_id, $currency->id)
);
$transaction->transaction_currency_id = $currency->id;
$transaction->save();
$count = 1;
}
}
Log::debug(sprintf('Return %d', $count));
return $count;
}

View File

@@ -6,6 +6,7 @@ use Illuminate\Console\Command;
/**
* Class CorrectionSkeleton
* TODO DONT FORGET TO ADD THIS TO THE DOCKER BUILD
*/
class CorrectionSkeleton extends Command
{

View File

@@ -0,0 +1,51 @@
<?php
declare(strict_types=1);
namespace FireflyIII\Console\Commands\Correction;
use FireflyIII\Models\Account;
use Illuminate\Console\Command;
/**
* Class FixIbans
*/
class FixIbans extends Command
{
/**
* The console command description.
*
* @var string
*/
protected $description = 'Removes spaces from IBANs';
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'firefly-iii:fix-ibans';
/**
* Execute the console command.
*
* @return int
*/
public function handle(): int
{
$accounts = Account::whereNotNull('iban')->get();
/** @var Account $account */
foreach ($accounts as $account) {
$iban = $account->iban;
if (str_contains($iban, ' ')) {
$iban = app('steam')->filterSpaces((string)$account->iban);
if ('' !== $iban) {
$account->iban = $iban;
$account->save();
$this->line(sprintf('Removed spaces from IBAN of account #%d', $account->id));
}
}
}
return 0;
}
}

View File

@@ -63,6 +63,12 @@ class CreateDatabase extends Command
$exists = false;
$checked = false; // checked for existence of DB?
$dsn = sprintf('mysql:host=%s;port=%d;charset=utf8mb4', env('DB_HOST', 'localhost'), env('DB_PORT', '3306'));
if ('' !== env('DB_SOCKET', '')) {
$dsn = sprintf('mysql:unix_socket=%s;charset=utf8mb4', env('DB_SOCKET', ''));
}
$this->info(sprintf('DSN is %s', $dsn));
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,

View File

@@ -154,6 +154,7 @@ class ExportData extends Command
/**
* @return array
* @throws FireflyException
* @throws Exception
*/
private function parseOptions(): array
{
@@ -201,12 +202,17 @@ class ExportData extends Command
$error = true;
}
}
if(null === $this->option($field)) {
Log::info(sprintf('No date given in field "%s"', $field));
$error = true;
}
if (true === $error && 'start' === $field) {
$journal = $this->journalRepository->firstNull();
$date = null === $journal ? Carbon::now()->subYear() : $journal->date;
$date->startOfDay();
}
if (true === $error && 'end' === $field) {
$date = today(config('app.timezone'));
$date->endOfDay();

View File

@@ -6,6 +6,7 @@ use Illuminate\Console\Command;
/**
* Class ReportSkeleton
* TODO DONT FORGET TO ADD THIS TO THE DOCKER BUILD
*/
class ReportSkeleton extends Command
{

View File

@@ -74,8 +74,16 @@ class RestoreOAuthKeys extends Command
}
if ($this->keysInDatabase() && !$this->keysOnDrive()) {
Log::debug('Keys are in DB and keys are not on the drive. Restore.');
$this->restoreKeysFromDB();
$this->line('Restored OAuth keys from database.');
$result = $this->restoreKeysFromDB();
if(true === $result) {
$this->line('Restored OAuth keys from database.');
return;
}
Log::warning('Could not restore keys. Will create new ones.');
$this->generateKeys();
$this->storeKeysInDB();
$this->line('Generated and stored new keys.');
return;
}
@@ -124,8 +132,8 @@ class RestoreOAuthKeys extends Command
/**
*
*/
private function restoreKeysFromDB(): void
private function restoreKeysFromDB(): bool
{
OAuthKeys::restoreKeysFromDB();
return OAuthKeys::restoreKeysFromDB();
}
}

View File

@@ -98,6 +98,7 @@ class UpgradeDatabase extends Command
'firefly-iii:unify-group-accounts',
'firefly-iii:fix-transaction-types',
'firefly-iii:fix-frontpage-accounts',
'firefly-iii:fix-ibans',
// two report commands
'firefly-iii:report-empty-objects',
@@ -143,11 +144,6 @@ class UpgradeDatabase extends Command
$result = Artisan::output();
echo $result;
$this->line('Now installing OAuth2 keys...');
Artisan::call('passport:install');
$result = Artisan::output();
echo $result;
$this->line('Done!');
}
}

View File

@@ -5,7 +5,8 @@ namespace FireflyIII\Console\Commands\Upgrade;
use Illuminate\Console\Command;
/**
* Class UpgradeSkeleton
* Class UpgradeSkeleton.
* TODO DONT FORGET TO ADD THIS TO THE DOCKER BUILD
*/
class UpgradeSkeleton extends Command
{

View File

@@ -0,0 +1,46 @@
<?php
/*
* ActuallyLoggedIn.php
* Copyright (c) 2022 james@firefly-iii.org
*
* This file is part of Firefly III (https://github.com/firefly-iii).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
declare(strict_types=1);
namespace FireflyIII\Events;
use FireflyIII\User;
use Illuminate\Queue\SerializesModels;
/**
* Class ActuallyLoggedIn
*/
class ActuallyLoggedIn extends Event
{
use SerializesModels;
public User $user;
/**
* @param User $user
*/
public function __construct(User $user)
{
$this->user = $user;
}
}

View File

@@ -91,6 +91,7 @@ class GracefulNotFoundHandler extends ExceptionHandler
return redirect(route('currencies.index'));
case 'budgets.show':
case 'budgets.edit':
case 'budgets.show.limit':
$request->session()->reflash();
return redirect(route('budgets.index'));

View File

@@ -29,8 +29,11 @@ namespace FireflyIII\Exceptions;
use ErrorException;
use FireflyIII\Jobs\MailError;
use Illuminate\Auth\AuthenticationException;
use Illuminate\Contracts\Foundation\Application;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Routing\Redirector;
use Illuminate\Session\TokenMismatchException;
use Illuminate\Support\Arr;
use Illuminate\Validation\ValidationException as LaravelValidationException;
@@ -187,4 +190,43 @@ class Handler extends ExceptionHandler
)
);
}
/**
* Convert a validation exception into a response.
*
* @param Request $request
* @param LaravelValidationException $exception
*
* @return Application|RedirectResponse|Redirector
*/
protected function invalid($request, LaravelValidationException $exception): Application|RedirectResponse|Redirector
{
// protect against open redirect when submitting invalid forms.
$previous = app('steam')->getSafePreviousUrl();
$redirect = $this->getRedirectUrl($exception);
return redirect($redirect ?? $previous)
->withInput(Arr::except($request->input(), $this->dontFlash))
->withErrors($exception->errors(), $request->input('_error_bag', $exception->errorBag));
}
/**
* Only return the redirectTo property from the exception if it is a valid URL. Return NULL otherwise.
*
* @param LaravelValidationException $exception
*
* @return string|null
*/
private function getRedirectUrl(LaravelValidationException $exception): ?string
{
if (null === $exception->redirectTo) {
return null;
}
$safe = route('index');
$previous = $exception->redirectTo;
$previousHost = parse_url($previous, PHP_URL_HOST);
$safeHost = parse_url($safe, PHP_URL_HOST);
return null !== $previousHost && $previousHost === $safeHost ? $previous : $safe;
}
}

View File

@@ -342,7 +342,13 @@ class TransactionJournalFactory
}
if (null !== $result) {
Log::warning(sprintf('Found a duplicate in errorIfDuplicate because hash %s is not unique!', $hash));
throw new DuplicateTransactionException(sprintf('Duplicate of transaction #%d.', $result->transactionJournal->transaction_group_id));
$journal = $result->transactionJournal()->withTrashed()->first();
$group = $journal?->transactionGroup()->withTrashed()->first();
$groupId = $group?->id;
if (null === $group) {
$groupId = 0;
}
throw new DuplicateTransactionException(sprintf('Duplicate of transaction #%d.', $groupId));
}
}
@@ -359,19 +365,29 @@ class TransactionJournalFactory
$this->accountValidator->setTransactionType($transactionType);
// validate source account.
$sourceId = $data['source_id'] ? (int)$data['source_id'] : null;
$sourceName = $data['source_name'] ? (string)$data['source_name'] : null;
$validSource = $this->accountValidator->validateSource($sourceId, $sourceName, null);
$array = [
'id' => $data['source_id'] ? (int)$data['source_id'] : null,
'name' => $data['source_name'] ? (string)$data['source_name'] : null,
'iban' => $data['source_iban'] ? (string)$data['source_iban'] : null,
'number' => $data['source_number'] ? (string)$data['source_number'] : null,
];
$validSource = $this->accountValidator->validateSource($array);
// do something with result:
if (false === $validSource) {
throw new FireflyException(sprintf('Source: %s', $this->accountValidator->sourceError));
}
Log::debug('Source seems valid.');
// validate destination account
$destinationId = $data['destination_id'] ? (int)$data['destination_id'] : null;
$destinationName = $data['destination_name'] ? (string)$data['destination_name'] : null;
$validDestination = $this->accountValidator->validateDestination($destinationId, $destinationName, null);
$array = [
'id' => $data['destination_id'] ? (int)$data['destination_id'] : null,
'name' => $data['destination_name'] ? (string)$data['destination_name'] : null,
'iban' => $data['destination_iban'] ? (string)$data['destination_iban'] : null,
'number' => $data['destination_number'] ? (string)$data['destination_number'] : null,
];
$validDestination = $this->accountValidator->validateDestination($array);
// do something with result:
if (false === $validDestination) {
throw new FireflyException(sprintf('Destination: %s', $this->accountValidator->destError));

View File

@@ -123,7 +123,6 @@ class UpdatedGroupEventHandler
if (1 === $group->transactionJournals->count()) {
return;
}
Log::debug(sprintf('Correct inconsistent accounts in group #%d', $group->id));
// first journal:
/** @var TransactionJournal $first */
$first = $group->transactionJournals()
@@ -132,6 +131,12 @@ class UpdatedGroupEventHandler
->orderBy('transaction_journals.id', 'DESC')
->orderBy('transaction_journals.description', 'DESC')
->first();
if(null === $first) {
Log::warning(sprintf('Group #%d has no transaction journals.', $group->id));
return;
}
$all = $group->transactionJournals()->get()->pluck('id')->toArray();
/** @var Account $sourceAccount */
$sourceAccount = $first->transactions()->where('amount', '<', '0')->first()->account;

View File

@@ -25,6 +25,7 @@ namespace FireflyIII\Handlers\Events;
use Carbon\Carbon;
use Exception;
use FireflyIII\Events\ActuallyLoggedIn;
use FireflyIII\Events\DetectedNewIPAddress;
use FireflyIII\Events\RegisteredUser;
use FireflyIII\Events\RequestedNewPassword;
@@ -116,9 +117,24 @@ class UserEventHandler
*/
public function createGroupMembership(RegisteredUser $event): bool
{
$user = $event->user;
$user = $event->user;
$groupExists = true;
$groupTitle = $user->email;
$index = 1;
// create a new group.
$group = UserGroup::create(['title' => $user->email]);
while (true === $groupExists) {
$groupExists = UserGroup::where('title', $groupTitle)->count() > 0;
if(false === $groupExists) {
$group = UserGroup::create(['title' => $groupTitle]);
break;
}
$groupTitle = sprintf('%s-%d', $user->email, $index);
$index++;
if($index > 99) {
throw new FireflyException('Email address can no longer be used for registrations.');
}
}
$role = UserRole::where('title', UserRole::OWNER)->first();
if (null === $role) {
throw new FireflyException('The user role is unexpectedly empty. Did you run all migrations?');
@@ -317,12 +333,11 @@ class UserEventHandler
}
/**
* @param Login $event
*
* @throws FireflyException
* @param ActuallyLoggedIn $event
*/
public function storeUserIPAddress(Login $event): void
public function storeUserIPAddress(ActuallyLoggedIn $event): void
{
Log::debug('Now in storeUserIPAddress');
/** @var User $user */
$user = $event->user;
/** @var array $preference */

View File

@@ -171,11 +171,14 @@ class AttachmentHelper implements AttachmentHelperInterface
$allowedMime = config('firefly.allowedMimes');
if (!in_array($mime, $allowedMime, true)) {
Log::error(sprintf('Mime type %s is not allowed for API file upload.', $mime));
fclose($resource);
return false;
}
// is allowed? Save the file, without encryption.
$this->uploadDisk->put($attachment->fileName(), $content);
$parts = explode('/', $attachment->fileName());
$file = $parts[count($parts) - 1];
$this->uploadDisk->put($file, $content);
// update attachment.
$attachment->md5 = md5_file($path);

View File

@@ -212,6 +212,40 @@ trait MetaCollection
return $this;
}
/**
* @inheritDoc
*/
public function withoutExternalUrl(): GroupCollectorInterface
{
if (false === $this->hasJoinedMetaTables) {
$this->hasJoinedMetaTables = true;
$this->query->leftJoin('journal_meta', 'transaction_journals.id', '=', 'journal_meta.transaction_journal_id');
}
$this->query->where(function(Builder $q1) {
$q1->where(function(Builder $q2) {
$q2->where('journal_meta.name', '=', 'external_url');
$q2->whereNull('journal_meta.data');
})->orWhereNull('journal_meta.name');
});
return $this;
}
/**
* @inheritDoc
*/
public function withExternalUrl(): GroupCollectorInterface
{
if (false === $this->hasJoinedMetaTables) {
$this->hasJoinedMetaTables = true;
$this->query->leftJoin('journal_meta', 'transaction_journals.id', '=', 'journal_meta.transaction_journal_id');
}
$this->query->where('journal_meta.name', '=', 'external_url');
$this->query->whereNotNull('journal_meta.data');
return $this;
}
/**
* @inheritDoc
*/

View File

@@ -119,4 +119,61 @@ trait TimeCollection
return $this;
}
public function yearIs(string $year): GroupCollectorInterface
{
$this->query->whereYear('transaction_journals.date', '=', $year);
return $this;
}
public function monthIs(string $month): GroupCollectorInterface
{
$this->query->whereMonth('transaction_journals.date', '=', $month);
return $this;
}
public function dayIs(string $day): GroupCollectorInterface
{
$this->query->whereDay('transaction_journals.date', '=', $day);
return $this;
}
public function yearBefore(string $year): GroupCollectorInterface
{
$this->query->whereYear('transaction_journals.date', '<=', $year);
return $this;
}
public function monthBefore(string $month): GroupCollectorInterface
{
$this->query->whereMonth('transaction_journals.date', '<=', $month);
return $this;
}
public function dayBefore(string $day): GroupCollectorInterface
{
$this->query->whereDay('transaction_journals.date', '<=', $day);
return $this;
}
public function yearAfter(string $year): GroupCollectorInterface
{
$this->query->whereYear('transaction_journals.date', '>=', $year);
return $this;
}
public function monthAfter(string $month): GroupCollectorInterface
{
$this->query->whereMonth('transaction_journals.date', '>=', $month);
return $this;
}
public function dayAfter(string $day): GroupCollectorInterface
{
$this->query->whereDay('transaction_journals.date', '>=', $day);
return $this;
}
}

View File

@@ -559,6 +559,15 @@ class GroupCollector implements GroupCollectorInterface
echo '</pre>';
}
/**
*
*/
public function dumpQueryInLogs(): void
{
Log::debug($this->query->select($this->fields)->toSql()) ;
Log::debug('Bindings',$this->query->getBindings());
}
/**
* Convert a selected set of fields to arrays.
*

View File

@@ -305,6 +305,20 @@ interface GroupCollectorInterface
*/
public function setExternalId(string $externalId): GroupCollectorInterface;
/**
* Transactions without an external URL
*
* @return GroupCollectorInterface
*/
public function withoutExternalUrl(): GroupCollectorInterface;
/**
* Transactions with an external URL
*
* @return GroupCollectorInterface
*/
public function withExternalUrl(): GroupCollectorInterface;
/**
* Limit results to a specific foreign currency.
*
@@ -565,4 +579,15 @@ interface GroupCollectorInterface
*/
public function withoutTags(): GroupCollectorInterface;
public function yearIs(string $year): GroupCollectorInterface;
public function monthIs(string $month): GroupCollectorInterface;
public function dayIs(string $day): GroupCollectorInterface;
public function yearBefore(string $year): GroupCollectorInterface;
public function monthBefore(string $month): GroupCollectorInterface;
public function dayBefore(string $day): GroupCollectorInterface;
public function yearAfter(string $year): GroupCollectorInterface;
public function monthAfter(string $month): GroupCollectorInterface;
public function dayAfter(string $day): GroupCollectorInterface;
}

View File

@@ -88,7 +88,7 @@ class Help implements HelpInterface
$content = trim($res->getBody()->getContents());
} catch (Exception $e) { // @phpstan-ignore-line
Log::info($e->getMessage());
Log::info($e->getTraceAsString());
//Log::info($e->getTraceAsString());
}
Log::debug(sprintf('Status code is %d', $statusCode));

View File

@@ -79,7 +79,7 @@ class NetWorth implements NetWorthInterface
$netWorth = [];
$result = [];
Log::debug(sprintf('Now in getNetWorthByCurrency(%s)', $date->format('Y-m-d')));
//Log::debug(sprintf('Now in getNetWorthByCurrency(%s)', $date->format('Y-m-d')));
// get default currency
$default = app('amount')->getDefaultCurrencyByUser($this->user);
@@ -90,16 +90,16 @@ class NetWorth implements NetWorthInterface
// get the preferred currency for this account
/** @var Account $account */
foreach ($accounts as $account) {
Log::debug(sprintf('Now at account #%d: "%s"', $account->id, $account->name));
//Log::debug(sprintf('Now at account #%d: "%s"', $account->id, $account->name));
$currencyId = (int)$this->accountRepository->getMetaValue($account, 'currency_id');
$currencyId = 0 === $currencyId ? $default->id : $currencyId;
Log::debug(sprintf('Currency ID is #%d', $currencyId));
//Log::debug(sprintf('Currency ID is #%d', $currencyId));
// balance in array:
$balance = $balances[$account->id] ?? '0';
Log::debug(sprintf('Balance is %s', $balance));
//Log::debug(sprintf('Balance is %s', $balance));
// always subtract virtual balance.
$virtualBalance = (string)$account->virtual_balance;
@@ -107,14 +107,14 @@ class NetWorth implements NetWorthInterface
$balance = bcsub($balance, $virtualBalance);
}
Log::debug(sprintf('Balance corrected to %s because of virtual balance (%s)', $balance, $virtualBalance));
//Log::debug(sprintf('Balance corrected to %s because of virtual balance (%s)', $balance, $virtualBalance));
if (!array_key_exists($currencyId, $netWorth)) {
$netWorth[$currencyId] = '0';
}
$netWorth[$currencyId] = bcadd($balance, $netWorth[$currencyId]);
Log::debug(sprintf('Total net worth for currency #%d is %s', $currencyId, $netWorth[$currencyId]));
//Log::debug(sprintf('Total net worth for currency #%d is %s', $currencyId, $netWorth[$currencyId]));
}
ksort($netWorth);

View File

@@ -209,10 +209,10 @@ class PopupReport implements PopupReportInterface
$collector = app(GroupCollectorInterface::class);
// set report accounts + the request accounts:
$set = $attributes['accounts'] ?? new Collection;
$set->push($account);
//$set = $attributes['accounts'] ?? new Collection;
//$set->push($account);
$collector->setBothAccounts($set)
$collector->setDestinationAccounts(new Collection([$account]))
->setRange($attributes['startDate'], $attributes['endDate'])
->withAccountInformation()
->withBudgetInformation()
@@ -222,7 +222,6 @@ class PopupReport implements PopupReportInterface
if (null !== $currency) {
$collector->setCurrency($currency);
}
return $collector->getExtractedJournals();
}

View File

@@ -38,9 +38,16 @@ class Sha3SignatureGenerator implements SignatureGeneratorInterface
/**
* @inheritDoc
* @throws FireflyException
*/
public function generate(WebhookMessage $message): string
{
// webhook is deleted
if (null === $message->webhook) {
throw new FireflyException('Part of a deleted webhook.');
}
try {
$json = json_encode($message->message, JSON_THROW_ON_ERROR);
} catch (JsonException $e) {
@@ -48,7 +55,7 @@ class Sha3SignatureGenerator implements SignatureGeneratorInterface
Log::error(sprintf('JSON value: %s', $message->message));
Log::error($e->getMessage());
Log::error($e->getTraceAsString());
throw new FireflyException('Could not generate JSON for SHA3 hash.', $e);
throw new FireflyException('Could not generate JSON for SHA3 hash.', 0, $e);
}
// signature v1 is generated using the following structure:

View File

@@ -122,7 +122,7 @@ class EditController extends Controller
}
$request->session()->forget('accounts.edit.fromUpdate');
$openingBalanceAmount = app('steam')->positive((string)$repository->getOpeningBalanceAmount($account));
$openingBalanceAmount = (string)$repository->getOpeningBalanceAmount($account);
if ('0' === $openingBalanceAmount) {
$openingBalanceAmount = '';
}
@@ -143,9 +143,9 @@ class EditController extends Controller
'BIC' => $repository->getMetaValue($account, 'BIC'),
'opening_balance_date' => $openingBalanceDate,
'liability_type_id' => $account->account_type_id,
'opening_balance' => $openingBalanceAmount,
'opening_balance' => number_format((float)$openingBalanceAmount, $currency->decimal_places,'.',''),
'liability_direction' => $this->repository->getMetaValue($account, 'liability_direction'),
'virtual_balance' => $account->virtual_balance,
'virtual_balance' => number_format((float)$account->virtual_balance, $currency->decimal_places,'.',''),
'currency_id' => $currency->id,
'include_net_worth' => $includeNetWorth,
'interest' => $repository->getMetaValue($account, 'interest'),
@@ -153,6 +153,9 @@ class EditController extends Controller
'notes' => $this->repository->getNoteText($account),
'active' => $hasOldInput ? (bool)$request->old('active') : $account->active,
];
if('' === $openingBalanceAmount) {
$preFilled['opening_balance'] = '';
}
$request->session()->flash('preFilled', $preFilled);

View File

@@ -101,13 +101,15 @@ class IndexController extends Controller
$accounts->each(
function (Account $account) use ($activities, $startBalances, $endBalances) {
$account->lastActivityDate = $this->isInArray($activities, $account->id);
$account->lastActivityDate = $this->isInArrayDate($activities, $account->id);
$account->startBalance = $this->isInArray($startBalances, $account->id);
$account->endBalance = $this->isInArray($endBalances, $account->id);
$account->difference = bcsub($account->endBalance, $account->startBalance);
$account->interest = number_format((float)$this->repository->getMetaValue($account, 'interest'), 4, '.', '');
$account->interestPeriod = (string)trans(sprintf('firefly.interest_calc_%s', $this->repository->getMetaValue($account, 'interest_period')));
$account->accountTypeString = (string)trans(sprintf('firefly.account_type_%s', $account->accountType->type));
$account->current_debt = '0';
$account->iban = implode(' ', str_split((string)$account->iban, 4));
}
);
@@ -162,7 +164,7 @@ class IndexController extends Controller
$accounts->each(
function (Account $account) use ($activities, $startBalances, $endBalances) {
// See reference nr. 68
$account->lastActivityDate = $this->isInArray($activities, $account->id);
$account->lastActivityDate = $this->isInArrayDate($activities, $account->id);
$account->startBalance = $this->isInArray($startBalances, $account->id);
$account->endBalance = $this->isInArray($endBalances, $account->id);
$account->difference = bcsub($account->endBalance, $account->startBalance);
@@ -174,6 +176,7 @@ class IndexController extends Controller
$account->location = $this->repository->getLocation($account);
$account->liability_direction = $this->repository->getMetaValue($account, 'liability_direction');
$account->current_debt = $this->repository->getMetaValue($account, 'current_debt') ?? '-';
$account->iban = implode(' ', str_split((string)$account->iban, 4));
}
);
// make paginator:

View File

@@ -92,9 +92,12 @@ class ForgotPasswordController extends Controller
// We will send the password reset link to this user. Once we have attempted
// to send the link, we will examine the response then see the message we
// need to show to the user. Finally, we'll send out a proper response.
$this->broker()->sendResetLink($request->only('email'));
$result = $this->broker()->sendResetLink($request->only('email'));
if('passwords.throttled' === $result) {
Log::error(sprintf('Cowardly refuse to send a password reset message to user #%d because the reset button has been throttled.', $user->id));
}
// always send the same response:
// always send the same response to the user:
$response = trans('firefly.forgot_password_response');
return back()->with('status', trans($response));

View File

@@ -25,6 +25,7 @@ namespace FireflyIII\Http\Controllers\Auth;
use Adldap;
use Cookie;
use DB;
use FireflyIII\Events\ActuallyLoggedIn;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Http\Controllers\Controller;
use FireflyIII\Providers\RouteServiceProvider;
@@ -86,7 +87,7 @@ class LoginController extends Controller
*/
public function login(Request $request)
{
Log::channel('audit')->info(sprintf('User is trying to login using "%s"', $request->get('email')));
Log::channel('audit')->info(sprintf('User is trying to login using "%s"', $request->get($this->username())));
Log::info('User is trying to login.');
$guard = config('auth.defaults.guard');
@@ -119,6 +120,10 @@ class LoginController extends Controller
// if you just logged in, it can't be that you have a valid 2FA cookie.
// send a custom login event because laravel will also fire a login event if a "remember me"-cookie
// restores the event.
event(new ActuallyLoggedIn($this->guard()->user()));
return $this->sendLoginResponse($request);
}
Log::warning('Login attempt failed.');

View File

@@ -36,6 +36,7 @@ use Illuminate\Http\Request;
use Illuminate\Routing\Redirector;
use Illuminate\View\View;
use Log;
use ValueError;
/**
*
@@ -244,7 +245,14 @@ class AvailableBudgetController extends Controller
return redirect(route('budgets.index', [$start->format('Y-m-d'), $end->format('Y-m-d')]));
}
if (bccomp($amount, '0') <= 0) {
try {
if (bccomp($amount, '0') <= 0) {
session()->flash('error', trans('firefly.invalid_amount'));
return redirect(route('budgets.index', [$start->format('Y-m-d'), $end->format('Y-m-d')]));
}
} catch (ValueError $e) {
Log::error(sprintf('Value "%s" is not a number: %s', $amount, $e->getMessage()));
session()->flash('error', trans('firefly.invalid_amount'));
return redirect(route('budgets.index', [$start->format('Y-m-d'), $end->format('Y-m-d')]));

View File

@@ -181,7 +181,7 @@ class BudgetLimitController extends Controller
return response()->json($array);
}
return response()->json([]);
return redirect(route('budgets.index'));
}
/**

View File

@@ -102,7 +102,8 @@ class EditController extends Controller
'auto_budget_currency_id' => $hasOldInput ? (int)$request->old('auto_budget_currency_id') : $currency->id,
];
if ($autoBudget) {
$preFilled['auto_budget_amount'] = $hasOldInput ? $request->old('auto_budget_amount') : $autoBudget->amount;
$amount = $hasOldInput ? $request->old('auto_budget_amount') : $autoBudget->amount;
$preFilled['auto_budget_amount'] = number_format((float)$amount, $autoBudget->transactionCurrency->decimal_places, '.', '');
}
// put previous url in session if not redirect from store (not "return_to_edit").

View File

@@ -89,7 +89,7 @@ abstract class Controller extends BaseController
app('view')->share('FF_IS_BETA', $isBeta);
$this->middleware(
function ($request, $next) {
function ($request, $next): mixed {
$locale = app('steam')->getLocale();
// translations for specific strings:
$this->monthFormat = (string)trans('config.month', [], $locale);

View File

@@ -29,6 +29,7 @@ use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface;
use FireflyIII\Repositories\User\UserRepositoryInterface;
use FireflyIII\User;
use Illuminate\Contracts\View\Factory;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Pagination\LengthAwarePaginator;
@@ -210,10 +211,9 @@ class CurrencyController extends Controller
* @param Request $request
* @param TransactionCurrency $currency
*
* @return RedirectResponse|Redirector
* @throws FireflyException
*/
public function disableCurrency(Request $request)
public function disableCurrency(Request $request): JsonResponse
{
$currencyId = (int)$request->get('id');
if ($currencyId > 0) {
@@ -228,8 +228,7 @@ class CurrencyController extends Controller
$request->session()->flash('error', (string)trans('firefly.ask_site_owner', ['owner' => e(config('firefly.site_owner'))]));
Log::channel('audit')->info(sprintf('Tried to disable currency %s but is not site owner.', $currency->code));
return redirect(route('currencies.index'));
return response()->json([]);
}
@@ -240,8 +239,7 @@ class CurrencyController extends Controller
$request->session()->flash('error', $message);
Log::channel('audit')->info(sprintf('Tried to disable currency %s but is in use.', $currency->code));
return redirect(route('currencies.index'));
return response()->json([]);
}
$this->repository->disable($currency);
@@ -267,7 +265,7 @@ class CurrencyController extends Controller
}
}
return redirect(route('currencies.index'));
return response()->json([]);
}
/**

View File

@@ -144,6 +144,15 @@ class DebugController extends Controller
$bcscale = bcscale();
$layout = env('FIREFLY_III_LAYOUT');
$tz = env('TZ');
$buildNr = '(unknown)';
$buildDate = '(unknown)';
if (file_exists('/var/www/counter-main.txt')) {
$buildNr = trim(file_get_contents('/var/www/counter-main.txt'));
}
if (file_exists('/var/www/build-date-main.txt')) {
$buildDate = trim(file_get_contents('/var/www/build-date-main.txt'));
}
// expected + found DB version:
$expectedDBversion = config('firefly.db_version');
@@ -206,6 +215,8 @@ class DebugController extends Controller
'drivers',
'currentDriver',
'loginProvider',
'buildNr',
'buildDate',
'bcscale',
'layout',
'userAgent',

View File

@@ -102,6 +102,9 @@ class HomeController extends Controller
*/
public function index(AccountRepositoryInterface $repository): mixed
{
if ('v3' === config('firefly.layout')) {
die('Please set your layout to "v1".');
}
$types = config('firefly.accountTypesByIdentifier.asset');
$count = $repository->count($types);
Log::channel('audit')->info('User visits homepage.');

View File

@@ -83,14 +83,18 @@ class ReconcileController extends Controller
*
* @return JsonResponse
*/
public function overview(Request $request, Account $account, Carbon $start, Carbon $end): JsonResponse
public function overview(Request $request, Account $account = null, Carbon $start = null, Carbon $end = null): JsonResponse
{
$startBalance = $request->get('startBalance');
$endBalance = $request->get('endBalance');
$accountCurrency = $this->accountRepos->getAccountCurrency($account) ?? app('amount')->getDefaultCurrency();
$amount = '0';
$clearedAmount = '0';
$route = '';
if (null === $start && null === $end) {
throw new FireflyException('Invalid dates submitted.');
}
if ($end->lt($start)) {
[$start, $end] = [$end, $start];
}
@@ -220,8 +224,11 @@ class ReconcileController extends Controller
* @throws FireflyException
* @throws JsonException
*/
public function transactions(Account $account, Carbon $start, Carbon $end)
public function transactions(Account $account, Carbon $start = null, Carbon $end = null)
{
if (null === $start || null === $end) {
throw new FireflyException('Invalid dates submitted.');
}
if ($end->lt($start)) {
[$end, $start] = [$start, $end];
}

View File

@@ -28,6 +28,7 @@ use FireflyIII\Helpers\Attachments\AttachmentHelperInterface;
use FireflyIII\Http\Controllers\Controller;
use FireflyIII\Http\Requests\PiggyBankUpdateRequest;
use FireflyIII\Models\PiggyBank;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Repositories\PiggyBank\PiggyBankRepositoryInterface;
use Illuminate\Contracts\View\Factory;
use Illuminate\Http\RedirectResponse;
@@ -41,6 +42,7 @@ class EditController extends Controller
{
private AttachmentHelperInterface $attachments;
private PiggyBankRepositoryInterface $piggyRepos;
private AccountRepositoryInterface $accountRepository;
/**
* PiggyBankController constructor.
@@ -58,7 +60,7 @@ class EditController extends Controller
$this->attachments = app(AttachmentHelperInterface::class);
$this->piggyRepos = app(PiggyBankRepositoryInterface::class);
$this->accountRepository = app(AccountRepositoryInterface::class);
return $next($request);
}
);
@@ -81,10 +83,11 @@ class EditController extends Controller
// Flash some data to fill the form.
$targetDate = $piggyBank->targetdate?->format('Y-m-d');
$startDate = $piggyBank->startdate?->format('Y-m-d');
$currency = $this->accountRepository->getAccountCurrency($piggyBank->account);
$preFilled = ['name' => $piggyBank->name,
'account_id' => $piggyBank->account_id,
'targetamount' => $piggyBank->targetamount,
'targetamount' => number_format((float)$piggyBank->targetamount, $currency->decimal_places,'.',''),
'targetdate' => $targetDate,
'startdate' => $startDate,
'object_group' => $piggyBank->objectGroups->first() ? $piggyBank->objectGroups->first()->title : '',

View File

@@ -59,7 +59,6 @@ class ReportController extends Controller
'category-entry' => $this->categoryEntry($attributes),
'budget-entry' => $this->budgetEntry($attributes),
};
return response()->json(['html' => $html]);
}
}

View File

@@ -214,7 +214,7 @@ class PreferencesController extends Controller
'internal_reference' => array_key_exists('internal_reference', $setOptions),
'notes' => array_key_exists('notes', $setOptions),
'attachments' => array_key_exists('attachments', $setOptions),
'external_uri' => array_key_exists('external_uri', $setOptions),
'external_url' => array_key_exists('external_url', $setOptions),
'location' => array_key_exists('location', $setOptions),
'links' => array_key_exists('links', $setOptions),
];

View File

@@ -648,10 +648,9 @@ class CategoryController extends Controller
* @param Carbon $start
* @param Carbon $end
*
* @return mixed|string
* @throws JsonException
* @return string
*/
public function operations(Collection $accounts, Carbon $start, Carbon $end)
public function operations(Collection $accounts, Carbon $start, Carbon $end): string
{
// chart properties for cache:
$cache = new CacheProperties;
@@ -673,7 +672,7 @@ class CategoryController extends Controller
try {
$result = prefixView('reports.partials.categories', compact('report'))->render();
$result = (string)prefixView('reports.partials.categories', compact('report'))->render();
$cache->store($result);
} catch (Throwable $e) { // @phpstan-ignore-line
Log::error(sprintf('Could not render category::expenses: %s', $e->getMessage()));

View File

@@ -34,6 +34,7 @@ use FireflyIII\Support\Http\Controllers\ModelInformation;
use FireflyIII\Support\Http\Controllers\RuleManagement;
use FireflyIII\Support\Search\SearchInterface;
use Illuminate\Contracts\View\Factory;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Routing\Redirector;
@@ -237,15 +238,17 @@ class CreateController extends Controller
/**
* @param Rule $rule
*
* @return RedirectResponse
* @return JsonResponse
*/
public function duplicate(Rule $rule): RedirectResponse
public function duplicate(Request $request): JsonResponse
{
$newRule = $this->ruleRepos->duplicate($rule);
$ruleId = (int)$request->get('id');
$rule = $this->ruleRepos->find($ruleId);
if (null !== $rule) {
$this->ruleRepos->duplicate($rule);
}
session()->flash('success', trans('firefly.duplicated_rule', ['title' => $rule->title, 'newTitle' => $newRule->title]));
return redirect(route('rules.index'));
return new JsonResponse(['OK']);
}
/**

View File

@@ -28,6 +28,7 @@ use FireflyIII\Http\Requests\RuleGroupFormRequest;
use FireflyIII\Models\RuleGroup;
use FireflyIII\Repositories\RuleGroup\RuleGroupRepositoryInterface;
use Illuminate\Contracts\View\Factory;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Routing\Redirector;
@@ -62,24 +63,38 @@ class EditController extends Controller
}
/**
* Move a rule group down.
* Move a rule group in either direction.
*
* @param RuleGroup $ruleGroup
* @param Request $request
*
* @return RedirectResponse|Redirector
* @return JsonResponse
*/
public function down(RuleGroup $ruleGroup)
public function moveGroup(Request $request): JsonResponse
{
$maxOrder = $this->repository->maxOrder();
$order = (int)$ruleGroup->order;
if ($order < $maxOrder) {
$newOrder = $order + 1;
$this->repository->setOrder($ruleGroup, $newOrder);
$groupId = (int)$request->get('id');
$ruleGroup= $this->repository->find($groupId);
if(null !== $ruleGroup) {
$direction = $request->get('direction');
if('down' === $direction) {
$maxOrder = $this->repository->maxOrder();
$order = (int)$ruleGroup->order;
if ($order < $maxOrder) {
$newOrder = $order + 1;
$this->repository->setOrder($ruleGroup, $newOrder);
}
}
if('up' === $direction) {
$order = (int)$ruleGroup->order;
if ($order > 1) {
$newOrder = $order - 1;
$this->repository->setOrder($ruleGroup, $newOrder);
}
}
}
return redirect(route('rules.index'));
return new JsonResponse(['OK']);
}
/**
* Edit a rule group.
*
@@ -106,25 +121,6 @@ class EditController extends Controller
return prefixView('rules.rule-group.edit', compact('ruleGroup', 'subTitle'));
}
/**
* Move the rule group up.
*
* @param RuleGroup $ruleGroup
*
* @return RedirectResponse|Redirector
*
*/
public function up(RuleGroup $ruleGroup)
{
$order = (int)$ruleGroup->order;
if ($order > 1) {
$newOrder = $order - 1;
$this->repository->setOrder($ruleGroup, $newOrder);
}
return redirect(route('rules.index'));
}
/**
* Update the rule group.
*

View File

@@ -0,0 +1,44 @@
<?php
/*
* HealthcheckController.php
* Copyright (c) 2021 https://github.com/ajgon
*
* This file is part of Firefly III (https://github.com/firefly-iii).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
declare(strict_types=1);
namespace FireflyIII\Http\Controllers\System;
use FireflyIII\Http\Controllers\Controller;
use Illuminate\Http\Response;
/**
* Class HealthcheckController.
*/
class HealthcheckController extends Controller
{
/**
* Sends 'OK' info when app is alive
*
* @return Response
*/
public function check(): Response
{
return response('OK', 200);
}
}

View File

@@ -109,6 +109,7 @@ class InstallController extends Controller
'firefly-iii:unify-group-accounts' => [],
'firefly-iii:fix-transaction-types' => [],
'firefly-iii:fix-frontpage-accounts' => [],
'firefly-iii:fix-ibans' => [],
// final command to set latest version in DB
'firefly-iii:set-latest-version' => ['--james-is-cool' => true],

View File

@@ -336,8 +336,8 @@ class ConvertController extends Controller
$sourceName = '' === $sourceName ? null : (string)$sourceName;
$destinationId = '' === $destinationId || null === $destinationId ? null : (int)$destinationId;
$destinationName = '' === $destinationName ? null : (string)$destinationName;
$validSource = $validator->validateSource($sourceId, $sourceName, null);
$validDestination = $validator->validateDestination($destinationId, $destinationName, null);
$validSource = $validator->validateSource(['id' => $sourceId, 'name' => $sourceName,]);
$validDestination = $validator->validateDestination(['id' => $destinationId, 'name' => $destinationName,]);
if (false === $validSource) {
throw new FireflyException(sprintf(trans('firefly.convert_invalid_source'), $journal->id));

View File

@@ -26,7 +26,6 @@ namespace FireflyIII\Http\Controllers\Transaction;
use FireflyIII\Events\StoredTransactionGroup;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Http\Controllers\Controller;
use FireflyIII\Models\TransactionGroup;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Repositories\TransactionGroup\TransactionGroupRepositoryInterface;
use FireflyIII\Services\Internal\Update\GroupCloneService;
@@ -109,9 +108,9 @@ class CreateController extends Controller
$sourceId = (int)request()->get('source');
$destinationId = (int)request()->get('destination');
/** @var AccountRepositoryInterface $repository */
$repository = app(AccountRepositoryInterface::class);
$cash = $repository->getCashAccount();
/** @var AccountRepositoryInterface $accountRepository */
$accountRepository = app(AccountRepositoryInterface::class);
$cash = $accountRepository->getCashAccount();
$preFilled = session()->has('preFilled') ? session('preFilled') : [];
$subTitle = (string)trans(sprintf('breadcrumbs.create_%s', strtolower((string)$objectType)));
$subTitleIcon = 'fa-plus';
@@ -119,10 +118,10 @@ class CreateController extends Controller
$allowedOpposingTypes = config('firefly.allowed_opposing_types');
$accountToTypes = config('firefly.account_to_transaction');
$defaultCurrency = app('amount')->getDefaultCurrency();
$previousUri = $this->rememberPreviousUri('transactions.create.uri');
$parts = parse_url($previousUri);
$previousUrl = $this->rememberPreviousUri('transactions.create.uri');
$parts = parse_url($previousUrl);
$search = sprintf('?%s', $parts['query'] ?? '');
$previousUri = str_replace($search, '', $previousUri);
$previousUrl = str_replace($search, '', $previousUrl);
session()->put('preFilled', $preFilled);
@@ -134,7 +133,7 @@ class CreateController extends Controller
'objectType',
'subTitle',
'defaultCurrency',
'previousUri',
'previousUrl',
'optionalFields',
'preFilled',
'allowedOpposingTypes',

View File

@@ -84,7 +84,7 @@ class DeleteController extends Controller
}
$objectType = strtolower($journal->transaction_type_type ?? $journal->transactionType->type);
$subTitle = (string)trans('firefly.delete_' . $objectType, ['description' => $group->title ?? $journal->description]);
$previous = URL::previous(route('index'));
$previous = app('steam')->getSafePreviousUrl(route('index'));
// put previous url in session
Log::debug('Will try to remember previous URI');
$this->rememberPreviousUri('transactions.delete.uri');

View File

@@ -80,16 +80,16 @@ class EditController extends Controller
$defaultCurrency = app('amount')->getDefaultCurrency();
$cash = $repository->getCashAccount();
$previousUri = $this->rememberPreviousUri('transactions.edit.uri');
$parts = parse_url($previousUri);
$previousUrl = $this->rememberPreviousUri('transactions.edit.uri');
$parts = parse_url($previousUrl);
$search = sprintf('?%s', $parts['query'] ?? '');
$previousUri = str_replace($search, '', $previousUri);
$previousUrl = str_replace($search, '', $previousUrl);
return prefixView(
'transactions.edit',
compact(
'cash', 'allowedSourceDests', 'expectedSourceTypes', 'transactionGroup', 'allowedOpposingTypes', 'accountToTypes', 'defaultCurrency',
'previousUri'
'previousUrl'
)
);
}

View File

@@ -30,6 +30,7 @@ use FireflyIII\Repositories\Journal\JournalRepositoryInterface;
use FireflyIII\Repositories\LinkType\LinkTypeRepositoryInterface;
use Illuminate\Contracts\View\Factory;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Routing\Redirector;
use Illuminate\View\View;
use Log;
@@ -157,10 +158,11 @@ class LinkController extends Controller
*
* @return RedirectResponse|Redirector
*/
public function switchLink(TransactionJournalLink $link)
public function switchLink(Request $request)
{
$this->repository->switchLink($link);
$linkId = (int)$request->get('id');
$this->repository->switchLinkById($linkId);
return redirect(URL::previous());
return redirect(app('steam')->getSafePreviousUrl());
}
}

View File

@@ -146,7 +146,7 @@ class MassController extends Controller
// reverse amounts
foreach ($journals as $index => $journal) {
$journals[$index]['amount'] = app('steam')->positive($journal['amount']);
$journals[$index]['amount'] = number_format((float) app('steam')->positive($journal['amount']), $journal['currency_decimal_places'],'.','');
$journals[$index]['foreign_amount'] = null === $journal['foreign_amount'] ?
null : app('steam')->positive($journal['foreign_amount']);
}

View File

@@ -57,7 +57,7 @@ class SecureHeaders
"style-src 'unsafe-inline' 'self'",
"base-uri 'self'",
"font-src 'self' data:",
"connect-src 'self'",
sprintf("connect-src 'self' %s", $trackingScriptSrc),
sprintf("img-src data: 'strict-dynamic' 'self' *.tile.openstreetmap.org %s", $trackingScriptSrc),
"manifest-src 'self'",
];
@@ -94,7 +94,6 @@ class SecureHeaders
$response->header('X-XSS-Protection', '1; mode=block');
$response->header('X-Content-Type-Options', 'nosniff');
$response->header('Referrer-Policy', 'no-referrer');
$response->header('X-Download-Options', 'noopen');
$response->header('X-Permitted-Cross-Domain-Policies', 'none');
$response->header('X-Robots-Tag', 'none');
$response->header('Feature-Policy', implode('; ', $featurePolicies));
@@ -103,7 +102,7 @@ class SecureHeaders
}
/**
* Return part of a CSP header allowing scripts from Google.
* Return part of a CSP header allowing scripts from Matomo.
*
* @return string
*/

View File

@@ -25,6 +25,7 @@ namespace FireflyIII\Http\Middleware;
use Illuminate\Contracts\Session\Session;
use Illuminate\Http\Request;
use Illuminate\Session\Middleware\StartSession;
use Log;
/**
* Class StartFireflySession.
@@ -41,21 +42,15 @@ class StartFireflySession extends StartSession
*/
protected function storeCurrentUrl(Request $request, $session): void
{
$uri = $request->fullUrl();
$isScriptPage = strpos($uri, 'jscript');
$isDeletePage = strpos($uri, 'delete');
$isLoginPage = strpos($uri, '/login');
$isJsonPage = strpos($uri, '/json') || strpos($uri, 'serviceworker');
$isView = strpos($uri, '/attachments/view');
$url = $request->fullUrl();
$safeUrl = app('steam')->getSafeUrl($url, route('index'));
// also stop remembering "delete" URL's.
if (false === $isScriptPage && false === $isDeletePage
&& false === $isLoginPage
&& false === $isJsonPage
&& false === $isView
&& 'GET' === $request->method()
&& !$request->ajax()) {
$session->setPreviousUrl($uri);
if ($url !== $safeUrl) {
return;
}
if ('GET' === $request->method() && !$request->ajax()) {
$session->setPreviousUrl($safeUrl);
}
}
}

View File

@@ -32,9 +32,6 @@ use Illuminate\Contracts\Config\Repository;
*/
class TrustProxies extends Middleware
{
/** @var int The headers to check. */
//protected $headers = Request::HEADER_X_FORWARDED_ALL;
/**
* TrustProxies constructor.
*
@@ -42,11 +39,7 @@ class TrustProxies extends Middleware
*/
public function __construct(Repository $config)
{
$trustedProxies = (string)config('firefly.trusted_proxies');
$this->proxies = explode(',', $trustedProxies);
if ('**' === $trustedProxies) {
$this->proxies = '**';
}
$this->proxies = (string)config('firefly.trusted_proxies');
parent::__construct($config);
}
}

View File

@@ -55,7 +55,7 @@ class AccountFormRequest extends FormRequest
'account_number' => $this->string('account_number'),
'account_role' => $this->string('account_role'),
'opening_balance' => $this->string('opening_balance'),
'opening_balance_date' => $this->date('opening_balance_date'),
'opening_balance_date' => $this->getCarbonDate('opening_balance_date'),
'cc_type' => $this->string('cc_type'),
'cc_monthly_payment_date' => $this->string('cc_monthly_payment_date'),
'notes' => $this->stringWithNewlines('notes'),

View File

@@ -46,7 +46,7 @@ class BillStoreRequest extends FormRequest
'currency_id' => $this->integer('transaction_currency_id'),
'currency_code' => '',
'amount_max' => $this->string('amount_max'),
'date' => $this->date('date'),
'date' => $this->getCarbonDate('date'),
'repeat_freq' => $this->string('repeat_freq'),
'skip' => $this->integer('skip'),
'notes' => $this->stringWithNewlines('notes'),
@@ -69,7 +69,7 @@ class BillStoreRequest extends FormRequest
'transaction_currency_id' => 'required|exists:transaction_currencies,id',
'date' => 'required|date',
'repeat_freq' => 'required|in:weekly,monthly,quarterly,half-year,yearly',
'skip' => 'required|between:0,31',
'skip' => 'required|integer|gte:0|lte:31',
'active' => 'boolean',
];
}

View File

@@ -47,7 +47,7 @@ class BillUpdateRequest extends FormRequest
'currency_id' => $this->integer('transaction_currency_id'),
'currency_code' => '',
'amount_max' => $this->string('amount_max'),
'date' => $this->date('date'),
'date' => $this->getCarbonDate('date'),
'repeat_freq' => $this->string('repeat_freq'),
'skip' => $this->integer('skip'),
'notes' => $this->stringWithNewlines('notes'),
@@ -73,7 +73,7 @@ class BillUpdateRequest extends FormRequest
'transaction_currency_id' => 'required|exists:transaction_currencies,id',
'date' => 'required|date',
'repeat_freq' => 'required|in:weekly,monthly,quarterly,half-year,yearly',
'skip' => 'required|between:0,31',
'skip' => 'required|integer|gte:0|lte:31',
'active' => 'boolean',
];
}

View File

@@ -63,7 +63,7 @@ class BudgetFormStoreRequest extends FormRequest
return [
'name' => 'required|between:1,100|uniqueObjectForUser:budgets,name',
'active' => 'numeric|between:0,1',
'auto_budget_type' => 'numeric|between:0,2',
'auto_budget_type' => 'numeric|integer|gte:0|lte:2',
'auto_budget_currency_id' => 'exists:transaction_currencies,id',
'auto_budget_amount' => 'min:0|max:1000000000|required_if:auto_budget_type,1|required_if:auto_budget_type,2',
'auto_budget_period' => 'in:daily,weekly,monthly,quarterly,half_year,yearly',

View File

@@ -73,7 +73,7 @@ class BudgetFormUpdateRequest extends FormRequest
return [
'name' => $nameRule,
'active' => 'numeric|between:0,1',
'auto_budget_type' => 'numeric|between:0,2',
'auto_budget_type' => 'numeric|integer|gte:0|lte:31',
'auto_budget_currency_id' => 'exists:transaction_currencies,id',
'auto_budget_amount' => 'min:0|max:1000000000|required_if:auto_budget_type,1|required_if:auto_budget_type,2',
'auto_budget_period' => 'in:daily,weekly,monthly,quarterly,half_year,yearly',

View File

@@ -42,10 +42,10 @@ class PiggyBankStoreRequest extends FormRequest
{
return [
'name' => $this->string('name'),
'startdate' => $this->date('startdate'),
'startdate' => $this->getCarbonDate('startdate'),
'account_id' => $this->integer('account_id'),
'targetamount' => $this->string('targetamount'),
'targetdate' => $this->date('targetdate'),
'targetdate' => $this->getCarbonDate('targetdate'),
'notes' => $this->stringWithNewlines('notes'),
'object_group_title' => $this->string('object_group'),
];

View File

@@ -43,10 +43,10 @@ class PiggyBankUpdateRequest extends FormRequest
{
return [
'name' => $this->string('name'),
'startdate' => $this->date('startdate'),
'startdate' => $this->getCarbonDate('startdate'),
'account_id' => $this->integer('account_id'),
'targetamount' => $this->string('targetamount'),
'targetdate' => $this->date('targetdate'),
'targetdate' => $this->getCarbonDate('targetdate'),
'notes' => $this->stringWithNewlines('notes'),
'object_group_title' => $this->string('object_group'),
];

View File

@@ -48,8 +48,8 @@ class ReconciliationStoreRequest extends FormRequest
$transactions = [];
}
$data = [
'start' => $this->date('start'),
'end' => $this->date('end'),
'start' => $this->getCarbonDate('start'),
'end' => $this->getCarbonDate('end'),
'start_balance' => $this->string('startBalance'),
'end_balance' => $this->string('endBalance'),
'difference' => $this->string('difference'),

View File

@@ -59,8 +59,8 @@ class RecurrenceFormRequest extends FormRequest
'type' => $this->string('transaction_type'),
'title' => $this->string('title'),
'description' => $this->string('recurring_description'),
'first_date' => $this->date('first_date'),
'repeat_until' => $this->date('repeat_until'),
'first_date' => $this->getCarbonDate('first_date'),
'repeat_until' => $this->getCarbonDate('repeat_until'),
'nr_of_repetitions' => $this->integer('repetitions'),
'apply_rules' => $this->boolean('apply_rules'),
'active' => $this->boolean('active'),
@@ -192,7 +192,7 @@ class RecurrenceFormRequest extends FormRequest
'title' => 'required|between:1,255|uniqueObjectForUser:recurrences,title',
'first_date' => 'required|date|after:' . $today->format('Y-m-d'),
'repetition_type' => ['required', new ValidRecurrenceRepetitionValue, new ValidRecurrenceRepetitionType, 'between:1,20'],
'skip' => 'required|numeric|between:0,31',
'skip' => 'required|numeric|integer|gte:0|lte:31',
// optional for recurrence:
'recurring_description' => 'between:0,65000',
@@ -295,7 +295,7 @@ class RecurrenceFormRequest extends FormRequest
*/
public function validateAccountInformation(Validator $validator): void
{
Log::debug('Now in validateAccountInformation()');
Log::debug('Now in validateAccountInformation (RecurrenceFormRequest)()');
/** @var AccountValidator $accountValidator */
$accountValidator = app(AccountValidator::class);
$data = $validator->getData();
@@ -326,7 +326,7 @@ class RecurrenceFormRequest extends FormRequest
break;
}
// validate source account.
$validSource = $accountValidator->validateSource($sourceId, null, null);
$validSource = $accountValidator->validateSource(['id' => $sourceId,]);
// do something with result:
if (false === $validSource) {
@@ -338,7 +338,7 @@ class RecurrenceFormRequest extends FormRequest
}
// validate destination account
$validDestination = $accountValidator->validateDestination($destinationId, null, null);
$validDestination = $accountValidator->validateDestination(['id' => $destinationId,]);
// do something with result:
if (false === $validDestination) {
$message = (string)trans('validation.generic_invalid_destination');

View File

@@ -147,18 +147,24 @@ class ReportFormRequest extends FormRequest
$range = $this->get('daterange');
$parts = explode(' - ', (string)$range);
if (2 === count($parts)) {
try {
$date = new Carbon($parts[1]);
} catch (Exception $e) {
$error = sprintf('"%s" is not a valid date range: %s', $range, $e->getMessage());
Log::error($error);
throw new FireflyException($error, 0, $e);
$string = $parts[1];
// validate as date
// if regex for YYYY-MM-DD:
$pattern = '/^(19|20)\d\d-(0[1-9]|1[012])-(0[1-9]|[12][\d]|3[01])$/';
if (preg_match($pattern, $string)) {
try {
$date = new Carbon($parts[1]);
} catch (Exception $e) {
$error = sprintf('"%s" is not a valid date range: %s', $range, $e->getMessage());
Log::error($error);
throw new FireflyException($error, 0, $e);
}
return $date;
}
$error = sprintf('"%s" is not a valid date range: %s', $range, 'invalid format :(');
Log::error($error);
throw new FireflyException($error, 0);
}
return $date;
}
@@ -175,15 +181,23 @@ class ReportFormRequest extends FormRequest
$range = $this->get('daterange');
$parts = explode(' - ', (string)$range);
if (2 === count($parts)) {
try {
$date = new Carbon($parts[0]);
} catch (Exception $e) {
$error = sprintf('"%s" is not a valid date range: %s', $range, $e->getMessage());
Log::error($error);
throw new FireflyException($error, 0, $e);
$string = $parts[0];
// validate as date
// if regex for YYYY-MM-DD:
$pattern = '/^(19|20)\d\d-(0[1-9]|1[012])-(0[1-9]|[12][\d]|3[01])$/';
if (preg_match($pattern, $string)) {
try {
$date = new Carbon($parts[1]);
} catch (Exception $e) {
$error = sprintf('"%s" is not a valid date range: %s', $range, $e->getMessage());
Log::error($error);
throw new FireflyException($error, 0, $e);
}
return $date;
}
$error = sprintf('"%s" is not a valid date range: %s', $range, 'invalid format :(');
Log::error($error);
throw new FireflyException($error, 0);
}
return $date;

View File

@@ -45,7 +45,7 @@ class TagFormRequest extends FormRequest
{
$data = [
'tag' => $this->string('tag'),
'date' => $this->date('date'),
'date' => $this->getCarbonDate('date'),
'description' => $this->string('description'),
];

View File

@@ -431,7 +431,7 @@ class CreateRecurringTransactions implements ShouldQueue
'user' => $recurrence->user_id,
'currency_id' => (int)$transaction->transaction_currency_id,
'currency_code' => null,
'description' => $recurrence->recurrenceTransactions()->first()->description,
'description' => $transactions->first()->description,
'amount' => $transaction->amount,
'budget_id' => $this->repository->getBudget($transaction),
'budget_name' => null,
@@ -452,7 +452,7 @@ class CreateRecurringTransactions implements ShouldQueue
'tags' => $this->repository->getTags($transaction),
'piggy_bank_id' => $this->repository->getPiggyBank($transaction),
'piggy_bank_name' => null,
'bill_id' => null,
'bill_id' => $this->repository->getBillId($transaction),
'bill_name' => null,
'recurrence_total' => $total,
'recurrence_count' => $count,

View File

@@ -68,13 +68,13 @@ class MailError extends Job implements ShouldQueue
*/
public function handle()
{
$email = config('firefly.site_owner');
$email = (string) config('firefly.site_owner');
$args = $this->exception;
$args['loggedIn'] = $this->userData['id'] > 0;
$args['user'] = $this->userData;
$args['ip'] = $this->ipAddress;
$args['token'] = config('firefly.ipinfo_token');
if ($this->attempts() < 3) {
if ($this->attempts() < 3 && strlen($email) > 0) {
try {
Mail::send(
['emails.error-html', 'emails.error-text'],

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Jobs;
use Log;
use FireflyIII\Models\WebhookMessage;
use FireflyIII\Services\Webhook\WebhookSenderInterface;
use Illuminate\Bus\Queueable;
@@ -58,6 +59,7 @@ class SendWebhookMessage implements ShouldQueue
*/
public function handle(): void
{
Log::debug(sprintf('Now handling webhook message #%d', $this->message->id));
// send job!
$sender = app(WebhookSenderInterface::class);
$sender->setMessage($this->message);

View File

@@ -25,7 +25,7 @@ declare(strict_types=1);
namespace FireflyIII\Ldap;
use FireflyIII\User as DatabaseUser;
use LdapRecord\Models\OpenLDAP\User as LdapUser;
use LdapRecord\Models\Entry;
/**
* Class AttributeHandler
@@ -33,12 +33,12 @@ use LdapRecord\Models\OpenLDAP\User as LdapUser;
class AttributeHandler
{
/**
* @param LdapUser $ldap
* @param Entry $ldapUser
* @param DatabaseUser $database
*/
public function handle(LdapUser $ldap, DatabaseUser $database)
public function handle(Entry $ldapUser, DatabaseUser $database)
{
$database->email = $ldap->getFirstAttribute('mail');
$database->email = $ldapUser->getFirstAttribute('mail');
$database->save();
}
}

View File

@@ -0,0 +1,88 @@
<?php
/*
* UserDefinedRule.php
* Copyright (c) 2022 james@firefly-iii.org
*
* This file is part of Firefly III (https://github.com/firefly-iii).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
declare(strict_types=1);
namespace FireflyIII\Ldap\Rules;
use LdapRecord\Laravel\Auth\Rule;
use LdapRecord\Models\Attributes\DistinguishedName;
use LdapRecord\Query\ObjectNotFoundException;
use Log;
/**
* Class UserDefinedRule
*/
class UserDefinedRule extends Rule
{
/**
* Check if the rule passes validation.
*
* @return bool
* @throws ObjectNotFoundException
*/
public function isValid()
{
$extraFilter = config('ldap.extra_filter');
Log::debug(sprintf('UserDefinedRule with extra filter "%s"', $extraFilter));
if (empty($extraFilter)) {
Log::debug('Extra filter is empty, return true.');
return true;
}
Log::debug('Extra filter is not empty, continue.');
// group class:
// use ;
$openLDAP = class_exists(\LdapRecord\Models\OpenLDAP\Group::class) ? \LdapRecord\Models\OpenLDAP\Group::class : '';
$activeDirectory = class_exists(\LdapRecord\Models\ActiveDirectory\Group::class) ? \LdapRecord\Models\ActiveDirectory\Group::class : '';
$groupClass = config('ldap.dialect') === 'OpenLDAP' ? $openLDAP : $activeDirectory;
Log::debug(sprintf('Will use dialect group class "%s"', $groupClass));
// We've been given an invalid group filter. We will assume the
// developer is using some group ANR attribute, and attempt
// to check the user's membership with the resulting group.
if (!DistinguishedName::isValid($extraFilter)) {
Log::debug('UserDefinedRule: Is not valid DN');
return $this->user->groups()->recursive()->exists($groupClass::findByAnrOrFail($extraFilter));
}
$head = strtolower(DistinguishedName::make($extraFilter)->head());
Log::debug(sprintf('UserDefinedRule: Head is "%s"', $head));
// If the head of the DN we've been given is an OU, we will assume
// the developer is looking to filter users based on hierarchy.
// Otherwise, we'll attempt locating a group by the given
// group filter and checking the users group membership.
if ('ou' === $head) {
Log::debug('UserDefinedRule: Will return if user is a descendant of.');
return $this->user->isDescendantOf($extraFilter);
}
Log::debug('UserDefinedRule: Will return if user exists in group.');
return $this->user->groups()->recursive()->exists($groupClass::findOrFail($extraFilter));
}
}

View File

@@ -0,0 +1,49 @@
<?php
/*
* UserDefinedScope.php
* Copyright (c) 2022 james@firefly-iii.org
*
* This file is part of Firefly III (https://github.com/firefly-iii).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
declare(strict_types=1);
namespace FireflyIII\Ldap\Scopes;
use LdapRecord\Models\Model;
use LdapRecord\Models\Scope;
use LdapRecord\Query\Model\Builder;
use Log;
/**
* Class UserDefinedScope
*/
class UserDefinedScope implements Scope
{
/**
* Apply the scope to the given query.
*
* @param Builder $query
* @param Model $model
*
* @return void
*/
public function apply(Builder $query, Model $model)
{
}
}

View File

@@ -23,6 +23,7 @@ declare(strict_types=1);
namespace FireflyIII\Providers;
use Exception;
use FireflyIII\Events\ActuallyLoggedIn;
use FireflyIII\Events\AdminRequestedTestMessage;
use FireflyIII\Events\DestroyedTransactionGroup;
use FireflyIII\Events\DetectedNewIPAddress;
@@ -74,6 +75,8 @@ class EventServiceProvider extends ServiceProvider
Login::class => [
'FireflyIII\Handlers\Events\UserEventHandler@checkSingleUserIsAdmin',
'FireflyIII\Handlers\Events\UserEventHandler@demoUserBackToEnglish',
],
ActuallyLoggedIn::class => [
'FireflyIII\Handlers\Events\UserEventHandler@storeUserIPAddress',
],
DetectedNewIPAddress::class => [

View File

@@ -494,10 +494,8 @@ class AccountRepository implements AccountRepositoryInterface
public function getOpeningBalanceGroup(Account $account): ?TransactionGroup
{
$journal = $this->getOpeningBalance($account);
$group = null;
$group = $journal?->transactionGroup;
return $group;
return $journal?->transactionGroup;
}
/**
@@ -637,11 +635,9 @@ class AccountRepository implements AccountRepositoryInterface
*/
public function oldestJournalDate(Account $account): ?Carbon
{
$result = null;
$journal = $this->oldestJournal($account);
$result = $journal?->date;
return $result;
return $journal?->date;
}
/**

View File

@@ -251,7 +251,7 @@ class BillRepository implements BillRepositoryInterface
$journalIds = $set->pluck('id')->toArray();
$amount = (string)Transaction::whereIn('transaction_journal_id', $journalIds)->where('amount', '<', 0)->sum('amount');
$sum = bcadd($sum, $amount);
Log::debug(sprintf('Total > 0, so add to sum %f, which becomes %f', $amount, $sum));
//Log::debug(sprintf('Total > 0, so add to sum %f, which becomes %f', $amount, $sum));
}
}
@@ -281,7 +281,7 @@ class BillRepository implements BillRepositoryInterface
$amount = (string)Transaction::whereIn('transaction_journal_id', $journalIds)->where('amount', '<', 0)->sum('amount');
$return[$currencyId] = $return[$currencyId] ?? '0';
$return[$currencyId] = bcadd($amount, $return[$currencyId]);
Log::debug(sprintf('Total > 0, so add to sum %f, which becomes %f (currency %d)', $amount, $return[$currencyId], $currencyId));
//Log::debug(sprintf('Total > 0, so add to sum %f, which becomes %f (currency %d)', $amount, $return[$currencyId], $currencyId));
}
}
@@ -302,18 +302,18 @@ class BillRepository implements BillRepositoryInterface
$sum = '0';
/** @var Bill $bill */
foreach ($bills as $bill) {
Log::debug(sprintf('Now at bill #%d (%s)', $bill->id, $bill->name));
//Log::debug(sprintf('Now at bill #%d (%s)', $bill->id, $bill->name));
$dates = $this->getPayDatesInRange($bill, $start, $end);
$count = $bill->transactionJournals()->after($start)->before($end)->count();
$total = $dates->count() - $count;
Log::debug(sprintf('Dates = %d, journalCount = %d, total = %d', $dates->count(), $count, $total));
//Log::debug(sprintf('Dates = %d, journalCount = %d, total = %d', $dates->count(), $count, $total));
if ($total > 0) {
$average = bcdiv(bcadd($bill->amount_max, $bill->amount_min), '2');
$multi = bcmul($average, (string)$total);
$sum = bcadd($sum, $multi);
Log::debug(sprintf('Total > 0, so add to sum %f, which becomes %f', $multi, $sum));
//Log::debug(sprintf('Total > 0, so add to sum %f, which becomes %f', $multi, $sum));
}
}
@@ -334,20 +334,20 @@ class BillRepository implements BillRepositoryInterface
$return = [];
/** @var Bill $bill */
foreach ($bills as $bill) {
Log::debug(sprintf('Now at bill #%d (%s)', $bill->id, $bill->name));
//Log::debug(sprintf('Now at bill #%d (%s)', $bill->id, $bill->name));
$dates = $this->getPayDatesInRange($bill, $start, $end);
$count = $bill->transactionJournals()->after($start)->before($end)->count();
$total = $dates->count() - $count;
$currencyId = (int)$bill->transaction_currency_id;
Log::debug(sprintf('Dates = %d, journalCount = %d, total = %d', $dates->count(), $count, $total));
//Log::debug(sprintf('Dates = %d, journalCount = %d, total = %d', $dates->count(), $count, $total));
if ($total > 0) {
$average = bcdiv(bcadd($bill->amount_max, $bill->amount_min), '2');
$multi = bcmul($average, (string)$total);
$return[$currencyId] = $return[$currencyId] ?? '0';
$return[$currencyId] = bcadd($return[$currencyId], $multi);
Log::debug(sprintf('Total > 0, so add to sum %f, which becomes %f (for currency %d)', $multi, $return[$currencyId], $currencyId));
//Log::debug(sprintf('Total > 0, so add to sum %f, which becomes %f (for currency %d)', $multi, $return[$currencyId], $currencyId));
}
}
@@ -481,7 +481,7 @@ class BillRepository implements BillRepositoryInterface
//Log::debug(sprintf('First currentstart is %s', $currentStart->format('Y-m-d')));
while ($currentStart <= $end) {
Log::debug(sprintf('Currentstart is now %s.', $currentStart->format('Y-m-d')));
//Log::debug(sprintf('Currentstart is now %s.', $currentStart->format('Y-m-d')));
$nextExpectedMatch = $this->nextDateMatch($bill, $currentStart);
//Log::debug(sprintf('Next Date match after %s is %s', $currentStart->format('Y-m-d'), $nextExpectedMatch->format('Y-m-d')));
if ($nextExpectedMatch > $end) {// If nextExpectedMatch is after end, we continue

View File

@@ -35,8 +35,7 @@ use Illuminate\Support\Collection;
*/
class OperationsRepository implements OperationsRepositoryInterface
{
/** @var User */
private $user;
private User $user;
/**
* This method returns a list of all the withdrawal transaction journals (as arrays) set in that period
@@ -340,4 +339,136 @@ class OperationsRepository implements OperationsRepositoryInterface
{
return $this->user->categories()->get();
}
/**
* @inheritDoc
*/
public function listTransferredIn(Carbon $start, Carbon $end, Collection $accounts, ?Collection $categories = null): array
{
/** @var GroupCollectorInterface $collector */
$collector = app(GroupCollectorInterface::class);
$collector->setUser($this->user)->setRange($start, $end)->setTypes([TransactionType::TRANSFER])
->setDestinationAccounts($accounts)->excludeSourceAccounts($accounts);
if (null !== $categories && $categories->count() > 0) {
$collector->setCategories($categories);
}
if (null === $categories || (null !== $categories && 0 === $categories->count())) {
$collector->setCategories($this->getCategories());
}
$collector->withCategoryInformation()->withAccountInformation()->withBudgetInformation();
$journals = $collector->getExtractedJournals();
$array = [];
foreach ($journals as $journal) {
$currencyId = (int)$journal['currency_id'];
$categoryId = (int)$journal['category_id'];
$categoryName = (string)$journal['category_name'];
// catch "no category" entries.
if (0 === $categoryId) {
continue;
}
// info about the currency:
$array[$currencyId] = $array[$currencyId] ?? [
'categories' => [],
'currency_id' => $currencyId,
'currency_name' => $journal['currency_name'],
'currency_symbol' => $journal['currency_symbol'],
'currency_code' => $journal['currency_code'],
'currency_decimal_places' => $journal['currency_decimal_places'],
];
// info about the categories:
$array[$currencyId]['categories'][$categoryId] = $array[$currencyId]['categories'][$categoryId] ?? [
'id' => $categoryId,
'name' => $categoryName,
'transaction_journals' => [],
];
// add journal to array:
// only a subset of the fields.
$journalId = (int)$journal['transaction_journal_id'];
$array[$currencyId]['categories'][$categoryId]['transaction_journals'][$journalId] = [
'amount' => app('steam')->positive($journal['amount']),
'date' => $journal['date'],
'source_account_id' => $journal['source_account_id'],
'category_name' => $journal['category_name'],
'source_account_name' => $journal['source_account_name'],
'destination_account_id' => $journal['destination_account_id'],
'destination_account_name' => $journal['destination_account_name'],
'description' => $journal['description'],
'transaction_group_id' => $journal['transaction_group_id'],
];
}
return $array;
}
/**
* @inheritDoc
*/
public function listTransferredOut(Carbon $start, Carbon $end, Collection $accounts, ?Collection $categories = null): array
{
/** @var GroupCollectorInterface $collector */
$collector = app(GroupCollectorInterface::class);
$collector->setUser($this->user)->setRange($start, $end)->setTypes([TransactionType::TRANSFER])
->setSourceAccounts($accounts)->excludeDestinationAccounts($accounts);
if (null !== $categories && $categories->count() > 0) {
$collector->setCategories($categories);
}
if (null === $categories || (null !== $categories && 0 === $categories->count())) {
$collector->setCategories($this->getCategories());
}
$collector->withCategoryInformation()->withAccountInformation()->withBudgetInformation();
$journals = $collector->getExtractedJournals();
$array = [];
foreach ($journals as $journal) {
$currencyId = (int)$journal['currency_id'];
$categoryId = (int)$journal['category_id'];
$categoryName = (string)$journal['category_name'];
// catch "no category" entries.
if (0 === $categoryId) {
continue;
}
// info about the currency:
$array[$currencyId] = $array[$currencyId] ?? [
'categories' => [],
'currency_id' => $currencyId,
'currency_name' => $journal['currency_name'],
'currency_symbol' => $journal['currency_symbol'],
'currency_code' => $journal['currency_code'],
'currency_decimal_places' => $journal['currency_decimal_places'],
];
// info about the categories:
$array[$currencyId]['categories'][$categoryId] = $array[$currencyId]['categories'][$categoryId] ?? [
'id' => $categoryId,
'name' => $categoryName,
'transaction_journals' => [],
];
// add journal to array:
// only a subset of the fields.
$journalId = (int)$journal['transaction_journal_id'];
$array[$currencyId]['categories'][$categoryId]['transaction_journals'][$journalId] = [
'amount' => app('steam')->negative($journal['amount']),
'date' => $journal['date'],
'source_account_id' => $journal['source_account_id'],
'category_name' => $journal['category_name'],
'source_account_name' => $journal['source_account_name'],
'destination_account_id' => $journal['destination_account_id'],
'destination_account_name' => $journal['destination_account_name'],
'description' => $journal['description'],
'transaction_group_id' => $journal['transaction_group_id'],
];
}
return $array;
}
}

View File

@@ -47,6 +47,36 @@ interface OperationsRepositoryInterface
*/
public function listExpenses(Carbon $start, Carbon $end, ?Collection $accounts = null, ?Collection $categories = null): array;
/**
* This method returns a list of all the transfer transaction journals (as arrays) set in that period
* which have the specified category set to them, transferred INTO the listed accounts.
* It excludes any transfers between the listed accounts.
* It's grouped per currency, with as few details in the array as possible. Amounts are always negative.
*
* @param Carbon $start
* @param Carbon $end
* @param Collection $accounts
* @param Collection|null $categories
*
* @return array
*/
public function listTransferredIn(Carbon $start, Carbon $end, Collection $accounts, ?Collection $categories = null): array;
/**
* This method returns a list of all the transfer transaction journals (as arrays) set in that period
* which have the specified category set to them, transferred FROM the listed accounts.
* It excludes any transfers between the listed accounts.
* It's grouped per currency, with as few details in the array as possible. Amounts are always negative.
*
* @param Carbon $start
* @param Carbon $end
* @param Collection $accounts
* @param Collection|null $categories
*
* @return array
*/
public function listTransferredOut(Carbon $start, Carbon $end, Collection $accounts, ?Collection $categories = null): array;
/**
* This method returns a list of all the deposit transaction journals (as arrays) set in that period
* which have the specified category set to them. It's grouped per currency, with as few details in the array

Some files were not shown because too many files have changed in this diff Show More