mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-09-30 18:41:08 +00:00
Update various things. I know, great description.
This commit is contained in:
165
.ci/php-cs-fixer/composer.lock
generated
165
.ci/php-cs-fixer/composer.lock
generated
@@ -539,43 +539,46 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/console",
|
||||
"version": "v6.3.8",
|
||||
"version": "v7.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/console.git",
|
||||
"reference": "0d14a9f6d04d4ac38a8cea1171f4554e325dae92"
|
||||
"reference": "64e06788686633deb8d9a7c75ab31bcf4b233a26"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/console/zipball/0d14a9f6d04d4ac38a8cea1171f4554e325dae92",
|
||||
"reference": "0d14a9f6d04d4ac38a8cea1171f4554e325dae92",
|
||||
"url": "https://api.github.com/repos/symfony/console/zipball/64e06788686633deb8d9a7c75ab31bcf4b233a26",
|
||||
"reference": "64e06788686633deb8d9a7c75ab31bcf4b233a26",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=8.1",
|
||||
"symfony/deprecation-contracts": "^2.5|^3",
|
||||
"php": ">=8.2",
|
||||
"symfony/polyfill-mbstring": "~1.0",
|
||||
"symfony/service-contracts": "^2.5|^3",
|
||||
"symfony/string": "^5.4|^6.0"
|
||||
"symfony/string": "^6.4|^7.0"
|
||||
},
|
||||
"conflict": {
|
||||
"symfony/dependency-injection": "<5.4",
|
||||
"symfony/dotenv": "<5.4",
|
||||
"symfony/event-dispatcher": "<5.4",
|
||||
"symfony/lock": "<5.4",
|
||||
"symfony/process": "<5.4"
|
||||
"symfony/dependency-injection": "<6.4",
|
||||
"symfony/dotenv": "<6.4",
|
||||
"symfony/event-dispatcher": "<6.4",
|
||||
"symfony/lock": "<6.4",
|
||||
"symfony/process": "<6.4"
|
||||
},
|
||||
"provide": {
|
||||
"psr/log-implementation": "1.0|2.0|3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"psr/log": "^1|^2|^3",
|
||||
"symfony/config": "^5.4|^6.0",
|
||||
"symfony/dependency-injection": "^5.4|^6.0",
|
||||
"symfony/event-dispatcher": "^5.4|^6.0",
|
||||
"symfony/lock": "^5.4|^6.0",
|
||||
"symfony/process": "^5.4|^6.0",
|
||||
"symfony/var-dumper": "^5.4|^6.0"
|
||||
"symfony/config": "^6.4|^7.0",
|
||||
"symfony/dependency-injection": "^6.4|^7.0",
|
||||
"symfony/event-dispatcher": "^6.4|^7.0",
|
||||
"symfony/http-foundation": "^6.4|^7.0",
|
||||
"symfony/http-kernel": "^6.4|^7.0",
|
||||
"symfony/lock": "^6.4|^7.0",
|
||||
"symfony/messenger": "^6.4|^7.0",
|
||||
"symfony/process": "^6.4|^7.0",
|
||||
"symfony/stopwatch": "^6.4|^7.0",
|
||||
"symfony/var-dumper": "^6.4|^7.0"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
@@ -609,7 +612,7 @@
|
||||
"terminal"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/console/tree/v6.3.8"
|
||||
"source": "https://github.com/symfony/console/tree/v7.0.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -625,7 +628,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-10-31T08:09:35+00:00"
|
||||
"time": "2023-11-20T16:43:42+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/deprecation-contracts",
|
||||
@@ -696,24 +699,24 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/event-dispatcher",
|
||||
"version": "v6.3.2",
|
||||
"version": "v7.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/event-dispatcher.git",
|
||||
"reference": "adb01fe097a4ee930db9258a3cc906b5beb5cf2e"
|
||||
"reference": "c459b40ffe67c49af6fd392aac374c9edf8a027e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/adb01fe097a4ee930db9258a3cc906b5beb5cf2e",
|
||||
"reference": "adb01fe097a4ee930db9258a3cc906b5beb5cf2e",
|
||||
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/c459b40ffe67c49af6fd392aac374c9edf8a027e",
|
||||
"reference": "c459b40ffe67c49af6fd392aac374c9edf8a027e",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=8.1",
|
||||
"php": ">=8.2",
|
||||
"symfony/event-dispatcher-contracts": "^2.5|^3"
|
||||
},
|
||||
"conflict": {
|
||||
"symfony/dependency-injection": "<5.4",
|
||||
"symfony/dependency-injection": "<6.4",
|
||||
"symfony/service-contracts": "<2.5"
|
||||
},
|
||||
"provide": {
|
||||
@@ -722,13 +725,13 @@
|
||||
},
|
||||
"require-dev": {
|
||||
"psr/log": "^1|^2|^3",
|
||||
"symfony/config": "^5.4|^6.0",
|
||||
"symfony/dependency-injection": "^5.4|^6.0",
|
||||
"symfony/error-handler": "^5.4|^6.0",
|
||||
"symfony/expression-language": "^5.4|^6.0",
|
||||
"symfony/http-foundation": "^5.4|^6.0",
|
||||
"symfony/config": "^6.4|^7.0",
|
||||
"symfony/dependency-injection": "^6.4|^7.0",
|
||||
"symfony/error-handler": "^6.4|^7.0",
|
||||
"symfony/expression-language": "^6.4|^7.0",
|
||||
"symfony/http-foundation": "^6.4|^7.0",
|
||||
"symfony/service-contracts": "^2.5|^3",
|
||||
"symfony/stopwatch": "^5.4|^6.0"
|
||||
"symfony/stopwatch": "^6.4|^7.0"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
@@ -756,7 +759,7 @@
|
||||
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/event-dispatcher/tree/v6.3.2"
|
||||
"source": "https://github.com/symfony/event-dispatcher/tree/v7.0.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -772,7 +775,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-07-06T06:56:43+00:00"
|
||||
"time": "2023-07-27T16:29:09+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/event-dispatcher-contracts",
|
||||
@@ -852,20 +855,20 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/filesystem",
|
||||
"version": "v6.3.1",
|
||||
"version": "v7.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/filesystem.git",
|
||||
"reference": "edd36776956f2a6fcf577edb5b05eb0e3bdc52ae"
|
||||
"reference": "7da8ea2362a283771478c5f7729cfcb43a76b8b7"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/filesystem/zipball/edd36776956f2a6fcf577edb5b05eb0e3bdc52ae",
|
||||
"reference": "edd36776956f2a6fcf577edb5b05eb0e3bdc52ae",
|
||||
"url": "https://api.github.com/repos/symfony/filesystem/zipball/7da8ea2362a283771478c5f7729cfcb43a76b8b7",
|
||||
"reference": "7da8ea2362a283771478c5f7729cfcb43a76b8b7",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=8.1",
|
||||
"php": ">=8.2",
|
||||
"symfony/polyfill-ctype": "~1.8",
|
||||
"symfony/polyfill-mbstring": "~1.8"
|
||||
},
|
||||
@@ -895,7 +898,7 @@
|
||||
"description": "Provides basic utilities for the filesystem",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/filesystem/tree/v6.3.1"
|
||||
"source": "https://github.com/symfony/filesystem/tree/v7.0.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -911,27 +914,27 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-06-01T08:30:39+00:00"
|
||||
"time": "2023-07-27T06:33:22+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/finder",
|
||||
"version": "v6.3.5",
|
||||
"version": "v7.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/finder.git",
|
||||
"reference": "a1b31d88c0e998168ca7792f222cbecee47428c4"
|
||||
"reference": "6e5688d69f7cfc4ed4a511e96007e06c2d34ce56"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/finder/zipball/a1b31d88c0e998168ca7792f222cbecee47428c4",
|
||||
"reference": "a1b31d88c0e998168ca7792f222cbecee47428c4",
|
||||
"url": "https://api.github.com/repos/symfony/finder/zipball/6e5688d69f7cfc4ed4a511e96007e06c2d34ce56",
|
||||
"reference": "6e5688d69f7cfc4ed4a511e96007e06c2d34ce56",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=8.1"
|
||||
"php": ">=8.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/filesystem": "^6.0"
|
||||
"symfony/filesystem": "^6.4|^7.0"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
@@ -959,7 +962,7 @@
|
||||
"description": "Finds files and directories via an intuitive fluent interface",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/finder/tree/v6.3.5"
|
||||
"source": "https://github.com/symfony/finder/tree/v7.0.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -975,24 +978,24 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-09-26T12:56:25+00:00"
|
||||
"time": "2023-10-31T17:59:56+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/options-resolver",
|
||||
"version": "v6.3.0",
|
||||
"version": "v7.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/options-resolver.git",
|
||||
"reference": "a10f19f5198d589d5c33333cffe98dc9820332dd"
|
||||
"reference": "700ff4096e346f54cb628ea650767c8130f1001f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/options-resolver/zipball/a10f19f5198d589d5c33333cffe98dc9820332dd",
|
||||
"reference": "a10f19f5198d589d5c33333cffe98dc9820332dd",
|
||||
"url": "https://api.github.com/repos/symfony/options-resolver/zipball/700ff4096e346f54cb628ea650767c8130f1001f",
|
||||
"reference": "700ff4096e346f54cb628ea650767c8130f1001f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=8.1",
|
||||
"php": ">=8.2",
|
||||
"symfony/deprecation-contracts": "^2.5|^3"
|
||||
},
|
||||
"type": "library",
|
||||
@@ -1026,7 +1029,7 @@
|
||||
"options"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/options-resolver/tree/v6.3.0"
|
||||
"source": "https://github.com/symfony/options-resolver/tree/v7.0.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -1042,7 +1045,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-05-12T14:21:09+00:00"
|
||||
"time": "2023-08-08T10:20:21+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-ctype",
|
||||
@@ -1538,20 +1541,20 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/process",
|
||||
"version": "v6.3.4",
|
||||
"version": "v7.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/process.git",
|
||||
"reference": "0b5c29118f2e980d455d2e34a5659f4579847c54"
|
||||
"reference": "13bdb1670c7f510494e04fcb2bfa29af63db9c0d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/process/zipball/0b5c29118f2e980d455d2e34a5659f4579847c54",
|
||||
"reference": "0b5c29118f2e980d455d2e34a5659f4579847c54",
|
||||
"url": "https://api.github.com/repos/symfony/process/zipball/13bdb1670c7f510494e04fcb2bfa29af63db9c0d",
|
||||
"reference": "13bdb1670c7f510494e04fcb2bfa29af63db9c0d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=8.1"
|
||||
"php": ">=8.2"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
@@ -1579,7 +1582,7 @@
|
||||
"description": "Executes commands in sub-processes",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/process/tree/v6.3.4"
|
||||
"source": "https://github.com/symfony/process/tree/v7.0.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -1595,7 +1598,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-08-07T10:39:22+00:00"
|
||||
"time": "2023-11-20T16:43:42+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/service-contracts",
|
||||
@@ -1681,20 +1684,20 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/stopwatch",
|
||||
"version": "v6.3.0",
|
||||
"version": "v7.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/stopwatch.git",
|
||||
"reference": "fc47f1015ec80927ff64ba9094dfe8b9d48fe9f2"
|
||||
"reference": "7bbfa3dd564a0ce12eb4acaaa46823c740f9cb7a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/stopwatch/zipball/fc47f1015ec80927ff64ba9094dfe8b9d48fe9f2",
|
||||
"reference": "fc47f1015ec80927ff64ba9094dfe8b9d48fe9f2",
|
||||
"url": "https://api.github.com/repos/symfony/stopwatch/zipball/7bbfa3dd564a0ce12eb4acaaa46823c740f9cb7a",
|
||||
"reference": "7bbfa3dd564a0ce12eb4acaaa46823c740f9cb7a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=8.1",
|
||||
"php": ">=8.2",
|
||||
"symfony/service-contracts": "^2.5|^3"
|
||||
},
|
||||
"type": "library",
|
||||
@@ -1723,7 +1726,7 @@
|
||||
"description": "Provides a way to profile code",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/stopwatch/tree/v6.3.0"
|
||||
"source": "https://github.com/symfony/stopwatch/tree/v7.0.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -1739,24 +1742,24 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-02-16T10:14:28+00:00"
|
||||
"time": "2023-07-05T13:06:06+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/string",
|
||||
"version": "v6.3.8",
|
||||
"version": "v7.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/string.git",
|
||||
"reference": "13880a87790c76ef994c91e87efb96134522577a"
|
||||
"reference": "92bd2bfbba476d4a1838e5e12168bef2fd1e6620"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/string/zipball/13880a87790c76ef994c91e87efb96134522577a",
|
||||
"reference": "13880a87790c76ef994c91e87efb96134522577a",
|
||||
"url": "https://api.github.com/repos/symfony/string/zipball/92bd2bfbba476d4a1838e5e12168bef2fd1e6620",
|
||||
"reference": "92bd2bfbba476d4a1838e5e12168bef2fd1e6620",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=8.1",
|
||||
"php": ">=8.2",
|
||||
"symfony/polyfill-ctype": "~1.8",
|
||||
"symfony/polyfill-intl-grapheme": "~1.0",
|
||||
"symfony/polyfill-intl-normalizer": "~1.0",
|
||||
@@ -1766,11 +1769,11 @@
|
||||
"symfony/translation-contracts": "<2.5"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/error-handler": "^5.4|^6.0",
|
||||
"symfony/http-client": "^5.4|^6.0",
|
||||
"symfony/intl": "^6.2",
|
||||
"symfony/error-handler": "^6.4|^7.0",
|
||||
"symfony/http-client": "^6.4|^7.0",
|
||||
"symfony/intl": "^6.4|^7.0",
|
||||
"symfony/translation-contracts": "^2.5|^3.0",
|
||||
"symfony/var-exporter": "^5.4|^6.0"
|
||||
"symfony/var-exporter": "^6.4|^7.0"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
@@ -1809,7 +1812,7 @@
|
||||
"utf8"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/string/tree/v6.3.8"
|
||||
"source": "https://github.com/symfony/string/tree/v7.0.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -1825,7 +1828,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-11-09T08:28:21+00:00"
|
||||
"time": "2023-11-29T08:40:23+00:00"
|
||||
}
|
||||
],
|
||||
"packages-dev": [],
|
||||
|
106
.ci/phpmd/composer.lock
generated
106
.ci/phpmd/composer.lock
generated
@@ -146,23 +146,24 @@
|
||||
},
|
||||
{
|
||||
"name": "pdepend/pdepend",
|
||||
"version": "2.15.1",
|
||||
"version": "2.16.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/pdepend/pdepend.git",
|
||||
"reference": "d12f25bcdfb7754bea458a4a5cb159d55e9950d0"
|
||||
"reference": "8dfc0c46529e2073fa97986552f80646eedac562"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/pdepend/pdepend/zipball/d12f25bcdfb7754bea458a4a5cb159d55e9950d0",
|
||||
"reference": "d12f25bcdfb7754bea458a4a5cb159d55e9950d0",
|
||||
"url": "https://api.github.com/repos/pdepend/pdepend/zipball/8dfc0c46529e2073fa97986552f80646eedac562",
|
||||
"reference": "8dfc0c46529e2073fa97986552f80646eedac562",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.7",
|
||||
"symfony/config": "^2.3.0|^3|^4|^5|^6.0",
|
||||
"symfony/dependency-injection": "^2.3.0|^3|^4|^5|^6.0",
|
||||
"symfony/filesystem": "^2.3.0|^3|^4|^5|^6.0"
|
||||
"symfony/config": "^2.3.0|^3|^4|^5|^6.0|^7.0",
|
||||
"symfony/dependency-injection": "^2.3.0|^3|^4|^5|^6.0|^7.0",
|
||||
"symfony/filesystem": "^2.3.0|^3|^4|^5|^6.0|^7.0",
|
||||
"symfony/polyfill-mbstring": "^1.19"
|
||||
},
|
||||
"require-dev": {
|
||||
"easy-doc/easy-doc": "0.0.0|^1.2.3",
|
||||
@@ -197,7 +198,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/pdepend/pdepend/issues",
|
||||
"source": "https://github.com/pdepend/pdepend/tree/2.15.1"
|
||||
"source": "https://github.com/pdepend/pdepend/tree/2.16.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -205,7 +206,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-09-28T12:00:56+00:00"
|
||||
"time": "2023-11-29T08:52:35+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpmd/phpmd",
|
||||
@@ -396,34 +397,34 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/config",
|
||||
"version": "v6.3.8",
|
||||
"version": "v7.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/config.git",
|
||||
"reference": "b7a63887960359e5b59b15826fa9f9be10acbe88"
|
||||
"reference": "8789646600f4e7e451dde9e1dc81cfa429f3857a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/config/zipball/b7a63887960359e5b59b15826fa9f9be10acbe88",
|
||||
"reference": "b7a63887960359e5b59b15826fa9f9be10acbe88",
|
||||
"url": "https://api.github.com/repos/symfony/config/zipball/8789646600f4e7e451dde9e1dc81cfa429f3857a",
|
||||
"reference": "8789646600f4e7e451dde9e1dc81cfa429f3857a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=8.1",
|
||||
"php": ">=8.2",
|
||||
"symfony/deprecation-contracts": "^2.5|^3",
|
||||
"symfony/filesystem": "^5.4|^6.0",
|
||||
"symfony/filesystem": "^6.4|^7.0",
|
||||
"symfony/polyfill-ctype": "~1.8"
|
||||
},
|
||||
"conflict": {
|
||||
"symfony/finder": "<5.4",
|
||||
"symfony/finder": "<6.4",
|
||||
"symfony/service-contracts": "<2.5"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/event-dispatcher": "^5.4|^6.0",
|
||||
"symfony/finder": "^5.4|^6.0",
|
||||
"symfony/messenger": "^5.4|^6.0",
|
||||
"symfony/event-dispatcher": "^6.4|^7.0",
|
||||
"symfony/finder": "^6.4|^7.0",
|
||||
"symfony/messenger": "^6.4|^7.0",
|
||||
"symfony/service-contracts": "^2.5|^3",
|
||||
"symfony/yaml": "^5.4|^6.0"
|
||||
"symfony/yaml": "^6.4|^7.0"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
@@ -451,7 +452,7 @@
|
||||
"description": "Helps you find, load, combine, autofill and validate configuration values of any kind",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/config/tree/v6.3.8"
|
||||
"source": "https://github.com/symfony/config/tree/v7.0.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -467,44 +468,43 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-11-09T08:28:21+00:00"
|
||||
"time": "2023-11-09T08:30:23+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/dependency-injection",
|
||||
"version": "v6.3.8",
|
||||
"version": "v7.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/dependency-injection.git",
|
||||
"reference": "1f30f545c4151f611148fc19e28d54d39e0a00bc"
|
||||
"reference": "71c053f3284a57d611e11bd7d7f1a76de8514a07"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/dependency-injection/zipball/1f30f545c4151f611148fc19e28d54d39e0a00bc",
|
||||
"reference": "1f30f545c4151f611148fc19e28d54d39e0a00bc",
|
||||
"url": "https://api.github.com/repos/symfony/dependency-injection/zipball/71c053f3284a57d611e11bd7d7f1a76de8514a07",
|
||||
"reference": "71c053f3284a57d611e11bd7d7f1a76de8514a07",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=8.1",
|
||||
"php": ">=8.2",
|
||||
"psr/container": "^1.1|^2.0",
|
||||
"symfony/deprecation-contracts": "^2.5|^3",
|
||||
"symfony/service-contracts": "^2.5|^3.0",
|
||||
"symfony/var-exporter": "^6.2.10"
|
||||
"symfony/service-contracts": "^3.3",
|
||||
"symfony/var-exporter": "^6.4|^7.0"
|
||||
},
|
||||
"conflict": {
|
||||
"ext-psr": "<1.1|>=2",
|
||||
"symfony/config": "<6.1",
|
||||
"symfony/finder": "<5.4",
|
||||
"symfony/proxy-manager-bridge": "<6.3",
|
||||
"symfony/yaml": "<5.4"
|
||||
"symfony/config": "<6.4",
|
||||
"symfony/finder": "<6.4",
|
||||
"symfony/yaml": "<6.4"
|
||||
},
|
||||
"provide": {
|
||||
"psr/container-implementation": "1.1|2.0",
|
||||
"symfony/service-implementation": "1.1|2.0|3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/config": "^6.1",
|
||||
"symfony/expression-language": "^5.4|^6.0",
|
||||
"symfony/yaml": "^5.4|^6.0"
|
||||
"symfony/config": "^6.4|^7.0",
|
||||
"symfony/expression-language": "^6.4|^7.0",
|
||||
"symfony/yaml": "^6.4|^7.0"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
@@ -532,7 +532,7 @@
|
||||
"description": "Allows you to standardize and centralize the way objects are constructed in your application",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/dependency-injection/tree/v6.3.8"
|
||||
"source": "https://github.com/symfony/dependency-injection/tree/v7.0.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -548,7 +548,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-10-31T08:07:48+00:00"
|
||||
"time": "2023-11-15T15:38:56+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/deprecation-contracts",
|
||||
@@ -619,20 +619,20 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/filesystem",
|
||||
"version": "v6.3.1",
|
||||
"version": "v7.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/filesystem.git",
|
||||
"reference": "edd36776956f2a6fcf577edb5b05eb0e3bdc52ae"
|
||||
"reference": "7da8ea2362a283771478c5f7729cfcb43a76b8b7"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/filesystem/zipball/edd36776956f2a6fcf577edb5b05eb0e3bdc52ae",
|
||||
"reference": "edd36776956f2a6fcf577edb5b05eb0e3bdc52ae",
|
||||
"url": "https://api.github.com/repos/symfony/filesystem/zipball/7da8ea2362a283771478c5f7729cfcb43a76b8b7",
|
||||
"reference": "7da8ea2362a283771478c5f7729cfcb43a76b8b7",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=8.1",
|
||||
"php": ">=8.2",
|
||||
"symfony/polyfill-ctype": "~1.8",
|
||||
"symfony/polyfill-mbstring": "~1.8"
|
||||
},
|
||||
@@ -662,7 +662,7 @@
|
||||
"description": "Provides basic utilities for the filesystem",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/filesystem/tree/v6.3.1"
|
||||
"source": "https://github.com/symfony/filesystem/tree/v7.0.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -678,7 +678,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-06-01T08:30:39+00:00"
|
||||
"time": "2023-07-27T06:33:22+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-ctype",
|
||||
@@ -929,23 +929,23 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/var-exporter",
|
||||
"version": "v6.3.6",
|
||||
"version": "v7.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/var-exporter.git",
|
||||
"reference": "374d289c13cb989027274c86206ddc63b16a2441"
|
||||
"reference": "d97726e8d254a2d5512b2b4ba204735d84e7167d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/var-exporter/zipball/374d289c13cb989027274c86206ddc63b16a2441",
|
||||
"reference": "374d289c13cb989027274c86206ddc63b16a2441",
|
||||
"url": "https://api.github.com/repos/symfony/var-exporter/zipball/d97726e8d254a2d5512b2b4ba204735d84e7167d",
|
||||
"reference": "d97726e8d254a2d5512b2b4ba204735d84e7167d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=8.1"
|
||||
"php": ">=8.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/var-dumper": "^5.4|^6.0"
|
||||
"symfony/var-dumper": "^6.4|^7.0"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
@@ -983,7 +983,7 @@
|
||||
"serialize"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/var-exporter/tree/v6.3.6"
|
||||
"source": "https://github.com/symfony/var-exporter/tree/v7.0.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -999,7 +999,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-10-13T09:16:49+00:00"
|
||||
"time": "2023-11-29T08:40:23+00:00"
|
||||
}
|
||||
],
|
||||
"aliases": [],
|
||||
|
@@ -30,6 +30,7 @@ use FireflyIII\Api\V1\Requests\Data\DateRequest;
|
||||
use FireflyIII\Exceptions\FireflyException;
|
||||
use FireflyIII\Models\Account;
|
||||
use FireflyIII\Models\AccountType;
|
||||
use FireflyIII\Models\Preference;
|
||||
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
|
||||
use FireflyIII\Support\Http\Api\ApiSupport;
|
||||
use FireflyIII\User;
|
||||
@@ -90,6 +91,7 @@ class AccountController extends Controller
|
||||
|
||||
// user's preferences
|
||||
$defaultSet = $this->repository->getAccountsByType([AccountType::ASSET])->pluck('id')->toArray();
|
||||
/** @var Preference $frontPage */
|
||||
$frontPage = app('preferences')->get('frontPageAccounts', $defaultSet);
|
||||
$default = app('amount')->getDefaultCurrency();
|
||||
|
||||
|
@@ -27,6 +27,8 @@ namespace FireflyIII\Api\V1\Controllers;
|
||||
use Carbon\Carbon;
|
||||
use Carbon\Exceptions\InvalidDateException;
|
||||
use Carbon\Exceptions\InvalidFormatException;
|
||||
use FireflyIII\Models\Preference;
|
||||
use FireflyIII\User;
|
||||
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
|
||||
use Illuminate\Foundation\Bus\DispatchesJobs;
|
||||
use Illuminate\Foundation\Validation\ValidatesRequests;
|
||||
@@ -141,7 +143,10 @@ abstract class Controller extends BaseController
|
||||
'limit' === $integer && // @phpstan-ignore-line
|
||||
auth()->check()) {
|
||||
// set default for user:
|
||||
$pageSize = (int)app('preferences')->getForUser(auth()->user(), 'listPageSize', 50)->data;
|
||||
/** @var User $user */
|
||||
$user = auth()->user();
|
||||
/** @var Preference $pageSize */
|
||||
$pageSize = (int)app('preferences')->getForUser($user, 'listPageSize', 50)->data;
|
||||
$bag->set($integer, $pageSize);
|
||||
}
|
||||
}
|
||||
|
@@ -35,6 +35,7 @@ use FireflyIII\Models\RuleGroup;
|
||||
use FireflyIII\Models\Tag;
|
||||
use FireflyIII\Models\TransactionGroup;
|
||||
use FireflyIII\Models\TransactionJournal;
|
||||
use FireflyIII\User;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
|
||||
/**
|
||||
@@ -51,6 +52,7 @@ class PurgeController extends Controller
|
||||
*/
|
||||
public function purge(): JsonResponse
|
||||
{
|
||||
/** @var User $user */
|
||||
$user = auth()->user();
|
||||
|
||||
// some manual code, too lazy to call all repositories.
|
||||
|
@@ -82,75 +82,75 @@ class StoreRequest extends FormRequest
|
||||
foreach ($this->get('transactions') as $transaction) {
|
||||
$object = new NullArrayObject($transaction);
|
||||
$return[] = [
|
||||
'type' => $this->clearString($object['type'], false),
|
||||
'type' => $this->clearString($object['type']),
|
||||
'date' => $this->dateFromValue($object['date']),
|
||||
'order' => $this->integerFromValue((string)$object['order']),
|
||||
|
||||
'currency_id' => $this->integerFromValue((string)$object['currency_id']),
|
||||
'currency_code' => $this->clearString((string)$object['currency_code'], false),
|
||||
'currency_code' => $this->clearString((string)$object['currency_code']),
|
||||
|
||||
// foreign currency info:
|
||||
'foreign_currency_id' => $this->integerFromValue((string)$object['foreign_currency_id']),
|
||||
'foreign_currency_code' => $this->clearString((string)$object['foreign_currency_code'], false),
|
||||
'foreign_currency_code' => $this->clearString((string)$object['foreign_currency_code']),
|
||||
|
||||
// amount and foreign amount. Cannot be 0.
|
||||
'amount' => $this->clearString((string)$object['amount'], false),
|
||||
'foreign_amount' => $this->clearString((string)$object['foreign_amount'], false),
|
||||
'amount' => $this->clearString((string)$object['amount']),
|
||||
'foreign_amount' => $this->clearString((string)$object['foreign_amount']),
|
||||
|
||||
// description.
|
||||
'description' => $this->clearString($object['description'], false),
|
||||
|
||||
// source of transaction. If everything is null, assume cash account.
|
||||
'source_id' => $this->integerFromValue((string)$object['source_id']),
|
||||
'source_name' => $this->clearString((string)$object['source_name'], false),
|
||||
'source_iban' => $this->clearString((string)$object['source_iban'], false),
|
||||
'source_number' => $this->clearString((string)$object['source_number'], false),
|
||||
'source_bic' => $this->clearString((string)$object['source_bic'], false),
|
||||
'source_name' => $this->clearString((string)$object['source_name']),
|
||||
'source_iban' => $this->clearString((string)$object['source_iban']),
|
||||
'source_number' => $this->clearString((string)$object['source_number']),
|
||||
'source_bic' => $this->clearString((string)$object['source_bic']),
|
||||
|
||||
// destination of transaction. If everything is null, assume cash account.
|
||||
'destination_id' => $this->integerFromValue((string)$object['destination_id']),
|
||||
'destination_name' => $this->clearString((string)$object['destination_name'], false),
|
||||
'destination_iban' => $this->clearString((string)$object['destination_iban'], false),
|
||||
'destination_number' => $this->clearString((string)$object['destination_number'], false),
|
||||
'destination_bic' => $this->clearString((string)$object['destination_bic'], false),
|
||||
'destination_name' => $this->clearString((string)$object['destination_name']),
|
||||
'destination_iban' => $this->clearString((string)$object['destination_iban']),
|
||||
'destination_number' => $this->clearString((string)$object['destination_number']),
|
||||
'destination_bic' => $this->clearString((string)$object['destination_bic']),
|
||||
|
||||
// budget info
|
||||
'budget_id' => $this->integerFromValue((string)$object['budget_id']),
|
||||
'budget_name' => $this->clearString((string)$object['budget_name'], false),
|
||||
'budget_name' => $this->clearString((string)$object['budget_name']),
|
||||
|
||||
// category info
|
||||
'category_id' => $this->integerFromValue((string)$object['category_id']),
|
||||
'category_name' => $this->clearString((string)$object['category_name'], false),
|
||||
'category_name' => $this->clearString((string)$object['category_name']),
|
||||
|
||||
// journal bill reference. Optional. Will only work for withdrawals
|
||||
'bill_id' => $this->integerFromValue((string)$object['bill_id']),
|
||||
'bill_name' => $this->clearString((string)$object['bill_name'], false),
|
||||
'bill_name' => $this->clearString((string)$object['bill_name']),
|
||||
|
||||
// piggy bank reference. Optional. Will only work for transfers
|
||||
'piggy_bank_id' => $this->integerFromValue((string)$object['piggy_bank_id']),
|
||||
'piggy_bank_name' => $this->clearString((string)$object['piggy_bank_name'], false),
|
||||
'piggy_bank_name' => $this->clearString((string)$object['piggy_bank_name']),
|
||||
|
||||
// some other interesting properties
|
||||
'reconciled' => $this->convertBoolean((string)$object['reconciled']),
|
||||
'notes' => $this->clearString((string)$object['notes']),
|
||||
'notes' => $this->clearStringKeepNewlines((string)$object['notes']),
|
||||
'tags' => $this->arrayFromValue($object['tags']),
|
||||
|
||||
// all custom fields:
|
||||
'internal_reference' => $this->clearString((string)$object['internal_reference'], false),
|
||||
'external_id' => $this->clearString((string)$object['external_id'], false),
|
||||
'internal_reference' => $this->clearString((string)$object['internal_reference']),
|
||||
'external_id' => $this->clearString((string)$object['external_id']),
|
||||
'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_url' => $this->clearString((string)$object['external_url'], false),
|
||||
'bunq_payment_id' => $this->clearString((string)$object['bunq_payment_id']),
|
||||
'external_url' => $this->clearString((string)$object['external_url']),
|
||||
|
||||
'sepa_cc' => $this->clearString((string)$object['sepa_cc'], false),
|
||||
'sepa_ct_op' => $this->clearString((string)$object['sepa_ct_op'], false),
|
||||
'sepa_ct_id' => $this->clearString((string)$object['sepa_ct_id'], false),
|
||||
'sepa_db' => $this->clearString((string)$object['sepa_db'], false),
|
||||
'sepa_country' => $this->clearString((string)$object['sepa_country'], false),
|
||||
'sepa_ep' => $this->clearString((string)$object['sepa_ep'], false),
|
||||
'sepa_ci' => $this->clearString((string)$object['sepa_ci'], false),
|
||||
'sepa_batch_id' => $this->clearString((string)$object['sepa_batch_id'], false),
|
||||
'sepa_cc' => $this->clearString((string)$object['sepa_cc']),
|
||||
'sepa_ct_op' => $this->clearString((string)$object['sepa_ct_op']),
|
||||
'sepa_ct_id' => $this->clearString((string)$object['sepa_ct_id']),
|
||||
'sepa_db' => $this->clearString((string)$object['sepa_db']),
|
||||
'sepa_country' => $this->clearString((string)$object['sepa_country']),
|
||||
'sepa_ep' => $this->clearString((string)$object['sepa_ep']),
|
||||
'sepa_ci' => $this->clearString((string)$object['sepa_ci']),
|
||||
'sepa_batch_id' => $this->clearString((string)$object['sepa_batch_id']),
|
||||
// custom date fields. Must be Carbon objects. Presence is optional.
|
||||
'interest_date' => $this->dateFromValue($object['interest_date']),
|
||||
'book_date' => $this->dateFromValue($object['book_date']),
|
||||
|
@@ -215,7 +215,7 @@ class UpdateRequest extends FormRequest
|
||||
{
|
||||
foreach ($this->stringFields as $fieldName) {
|
||||
if (array_key_exists($fieldName, $transaction)) {
|
||||
$current[$fieldName] = $this->clearString((string)$transaction[$fieldName], false);
|
||||
$current[$fieldName] = $this->clearString((string)$transaction[$fieldName]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -232,7 +232,7 @@ class UpdateRequest extends FormRequest
|
||||
{
|
||||
foreach ($this->textareaFields as $fieldName) {
|
||||
if (array_key_exists($fieldName, $transaction)) {
|
||||
$current[$fieldName] = $this->clearString((string)$transaction[$fieldName]);
|
||||
$current[$fieldName] = $this->clearStringKeepNewlines((string)$transaction[$fieldName]); // keep newlines
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -65,8 +65,9 @@ class DestroyController extends Controller
|
||||
{
|
||||
/** @var User $user */
|
||||
$user = auth()->user();
|
||||
// to access this function: must be group owner or sysadmin.
|
||||
// need owner role or system owner role to delete user group.
|
||||
$access = $user->hasRoleInGroup($userGroup, UserRoleEnum::OWNER, false, true);
|
||||
$access = $user->hasSpecificRoleInGroup($userGroup, UserRoleEnum::OWNER) || $user->hasRole('owner');
|
||||
if (false === $access) {
|
||||
throw new NotFoundHttpException();
|
||||
}
|
||||
|
@@ -93,75 +93,75 @@ class StoreRequest extends FormRequest
|
||||
foreach ($this->get('transactions') as $transaction) {
|
||||
$object = new NullArrayObject($transaction);
|
||||
$return[] = [
|
||||
'type' => $this->clearString($object['type'], false),
|
||||
'type' => $this->clearString($object['type']),
|
||||
'date' => $this->dateFromValue($object['date']),
|
||||
'order' => $this->integerFromValue((string)$object['order']),
|
||||
|
||||
'currency_id' => $this->integerFromValue((string)$object['currency_id']),
|
||||
'currency_code' => $this->clearString((string)$object['currency_code'], false),
|
||||
'currency_code' => $this->clearString((string)$object['currency_code']),
|
||||
|
||||
// foreign currency info:
|
||||
'foreign_currency_id' => $this->integerFromValue((string)$object['foreign_currency_id']),
|
||||
'foreign_currency_code' => $this->clearString((string)$object['foreign_currency_code'], false),
|
||||
'foreign_currency_code' => $this->clearString((string)$object['foreign_currency_code']),
|
||||
|
||||
// amount and foreign amount. Cannot be 0.
|
||||
'amount' => $this->clearString((string)$object['amount'], false),
|
||||
'foreign_amount' => $this->clearString((string)$object['foreign_amount'], false),
|
||||
'amount' => $this->clearString((string)$object['amount']),
|
||||
'foreign_amount' => $this->clearString((string)$object['foreign_amount']),
|
||||
|
||||
// description.
|
||||
'description' => $this->clearString($object['description'], false),
|
||||
'description' => $this->clearString($object['description']),
|
||||
|
||||
// source of transaction. If everything is null, assume cash account.
|
||||
'source_id' => $this->integerFromValue((string)$object['source_id']),
|
||||
'source_name' => $this->clearString((string)$object['source_name'], false),
|
||||
'source_iban' => $this->clearString((string)$object['source_iban'], false),
|
||||
'source_number' => $this->clearString((string)$object['source_number'], false),
|
||||
'source_bic' => $this->clearString((string)$object['source_bic'], false),
|
||||
'source_name' => $this->clearString((string)$object['source_name']),
|
||||
'source_iban' => $this->clearString((string)$object['source_iban']),
|
||||
'source_number' => $this->clearString((string)$object['source_number']),
|
||||
'source_bic' => $this->clearString((string)$object['source_bic']),
|
||||
|
||||
// destination of transaction. If everything is null, assume cash account.
|
||||
'destination_id' => $this->integerFromValue((string)$object['destination_id']),
|
||||
'destination_name' => $this->clearString((string)$object['destination_name'], false),
|
||||
'destination_iban' => $this->clearString((string)$object['destination_iban'], false),
|
||||
'destination_number' => $this->clearString((string)$object['destination_number'], false),
|
||||
'destination_bic' => $this->clearString((string)$object['destination_bic'], false),
|
||||
'destination_name' => $this->clearString((string)$object['destination_name']),
|
||||
'destination_iban' => $this->clearString((string)$object['destination_iban']),
|
||||
'destination_number' => $this->clearString((string)$object['destination_number']),
|
||||
'destination_bic' => $this->clearString((string)$object['destination_bic']),
|
||||
|
||||
// budget info
|
||||
'budget_id' => $this->integerFromValue((string)$object['budget_id']),
|
||||
'budget_name' => $this->clearString((string)$object['budget_name'], false),
|
||||
'budget_name' => $this->clearString((string)$object['budget_name']),
|
||||
|
||||
// category info
|
||||
'category_id' => $this->integerFromValue((string)$object['category_id']),
|
||||
'category_name' => $this->clearString((string)$object['category_name'], false),
|
||||
'category_name' => $this->clearString((string)$object['category_name']),
|
||||
|
||||
// journal bill reference. Optional. Will only work for withdrawals
|
||||
'bill_id' => $this->integerFromValue((string)$object['bill_id']),
|
||||
'bill_name' => $this->clearString((string)$object['bill_name'], false),
|
||||
'bill_name' => $this->clearString((string)$object['bill_name']),
|
||||
|
||||
// piggy bank reference. Optional. Will only work for transfers
|
||||
'piggy_bank_id' => $this->integerFromValue((string)$object['piggy_bank_id']),
|
||||
'piggy_bank_name' => $this->clearString((string)$object['piggy_bank_name'], false),
|
||||
'piggy_bank_name' => $this->clearString((string)$object['piggy_bank_name']),
|
||||
|
||||
// some other interesting properties
|
||||
'reconciled' => $this->convertBoolean((string)$object['reconciled']),
|
||||
'notes' => $this->clearString((string)$object['notes']),
|
||||
'notes' => $this->clearStringKeepNewlines((string)$object['notes']),
|
||||
'tags' => $this->arrayFromValue($object['tags']),
|
||||
|
||||
// all custom fields:
|
||||
'internal_reference' => $this->clearString((string)$object['internal_reference'], false),
|
||||
'external_id' => $this->clearString((string)$object['external_id'], false),
|
||||
'internal_reference' => $this->clearString((string)$object['internal_reference']),
|
||||
'external_id' => $this->clearString((string)$object['external_id']),
|
||||
'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_url' => $this->clearString((string)$object['external_url'], false),
|
||||
'bunq_payment_id' => $this->clearString((string)$object['bunq_payment_id']),
|
||||
'external_url' => $this->clearString((string)$object['external_url']),
|
||||
|
||||
'sepa_cc' => $this->clearString((string)$object['sepa_cc'], false),
|
||||
'sepa_ct_op' => $this->clearString((string)$object['sepa_ct_op'], false),
|
||||
'sepa_ct_id' => $this->clearString((string)$object['sepa_ct_id'], false),
|
||||
'sepa_db' => $this->clearString((string)$object['sepa_db'], false),
|
||||
'sepa_country' => $this->clearString((string)$object['sepa_country'], false),
|
||||
'sepa_ep' => $this->clearString((string)$object['sepa_ep'], false),
|
||||
'sepa_ci' => $this->clearString((string)$object['sepa_ci'], false),
|
||||
'sepa_batch_id' => $this->clearString((string)$object['sepa_batch_id'], false),
|
||||
'sepa_cc' => $this->clearString((string)$object['sepa_cc']),
|
||||
'sepa_ct_op' => $this->clearString((string)$object['sepa_ct_op']),
|
||||
'sepa_ct_id' => $this->clearString((string)$object['sepa_ct_id']),
|
||||
'sepa_db' => $this->clearString((string)$object['sepa_db']),
|
||||
'sepa_country' => $this->clearString((string)$object['sepa_country']),
|
||||
'sepa_ep' => $this->clearString((string)$object['sepa_ep']),
|
||||
'sepa_ci' => $this->clearString((string)$object['sepa_ci']),
|
||||
'sepa_batch_id' => $this->clearString((string)$object['sepa_batch_id']),
|
||||
// custom date fields. Must be Carbon objects. Presence is optional.
|
||||
'interest_date' => $this->dateFromValue($object['interest_date']),
|
||||
'book_date' => $this->dateFromValue($object['book_date']),
|
||||
|
@@ -42,6 +42,7 @@ class TriggeredAuditLog extends Event
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
|
||||
*/
|
||||
public function __construct(Model $changer, Model $auditable, string $field, mixed $before, mixed $after)
|
||||
{
|
||||
|
@@ -117,7 +117,8 @@ class UserGroup extends Model
|
||||
}
|
||||
// need at least ready only to be aware of the user group's existence,
|
||||
// but owner/full role (in the group) or global owner role may overrule this.
|
||||
if ($user->hasRoleInGroup($userGroup, UserRoleEnum::READ_ONLY, true, true)) {
|
||||
$access = $user->hasRoleInGroupOrOwner($userGroup, UserRoleEnum::READ_ONLY) || $user->hasRole('owner');
|
||||
if ($access) {
|
||||
return $userGroup;
|
||||
}
|
||||
}
|
||||
|
@@ -41,6 +41,7 @@ class AuthServiceProvider extends ServiceProvider
|
||||
|
||||
/**
|
||||
* Register any authentication / authorization services.
|
||||
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
@@ -120,7 +120,6 @@ class JournalCLIRepository implements JournalCLIRepositoryInterface
|
||||
$cache->addProperty($field);
|
||||
|
||||
if ($cache->has()) {
|
||||
$result = null;
|
||||
return new Carbon($cache->get());
|
||||
}
|
||||
|
||||
|
@@ -40,6 +40,8 @@ class IsAssetAccountId implements ValidationRule
|
||||
* @param Closure $fail
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
|
||||
*/
|
||||
public function validate(string $attribute, mixed $value, Closure $fail): void
|
||||
{
|
||||
|
@@ -38,6 +38,8 @@ class IsBoolean implements ValidationRule
|
||||
* @param Closure $fail
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
|
||||
*/
|
||||
public function validate(string $attribute, mixed $value, Closure $fail): void
|
||||
{
|
||||
|
@@ -41,6 +41,8 @@ class IsDateOrTime implements ValidationRule
|
||||
* @param Closure $fail
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
|
||||
*/
|
||||
public function validate(string $attribute, mixed $value, Closure $fail): void
|
||||
{
|
||||
|
@@ -40,6 +40,8 @@ class IsTransferAccount implements ValidationRule
|
||||
* @param Closure $fail
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
|
||||
*/
|
||||
public function validate(string $attribute, mixed $value, Closure $fail): void
|
||||
{
|
||||
|
@@ -82,6 +82,8 @@ class IsValidAttachmentModel implements ValidationRule
|
||||
* @param Closure $fail
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
|
||||
*/
|
||||
public function validate(string $attribute, mixed $value, Closure $fail): void
|
||||
{
|
||||
@@ -89,25 +91,18 @@ class IsValidAttachmentModel implements ValidationRule
|
||||
$fail('validation.model_id_invalid')->translate();
|
||||
return;
|
||||
}
|
||||
$methods = [
|
||||
Account::class => 'validateAccount',
|
||||
Bill::class => 'validateBill',
|
||||
Budget::class => 'validateBudget',
|
||||
Category::class => 'validateCategory',
|
||||
PiggyBank::class => 'validatePiggyBank',
|
||||
Tag::class => 'validateTag',
|
||||
Transaction::class => 'validateTransaction',
|
||||
TransactionJournal::class => 'validateJournal',
|
||||
];
|
||||
if (!array_key_exists($this->model, $methods)) {
|
||||
app('log')->error(sprintf('Cannot validate model "%s" in %s.', substr($this->model, 0, 20), __METHOD__));
|
||||
$result = match ($this->model) {
|
||||
Account::class => $this->validateAccount((int)$value),
|
||||
Bill::class => $this->validateBill((int)$value),
|
||||
Budget::class => $this->validateBudget((int)$value),
|
||||
Category::class => $this->validateCategory((int)$value),
|
||||
PiggyBank::class => $this->validatePiggyBank((int)$value),
|
||||
Tag::class => $this->validateTag((int)$value),
|
||||
Transaction::class => $this->validateTransaction((int)$value),
|
||||
TransactionJournal::class => $this->validateJournal((int)$value),
|
||||
default => false,
|
||||
};
|
||||
|
||||
$fail('validation.model_id_invalid')->translate();
|
||||
return;
|
||||
}
|
||||
$method = $methods[$this->model];
|
||||
|
||||
$result = $this->$method((int)$value); // @phpstan-ignore-line
|
||||
if (false === $result) {
|
||||
$fail('validation.model_id_invalid')->translate();
|
||||
}
|
||||
|
@@ -60,6 +60,8 @@ class IsValidBulkClause implements ValidationRule
|
||||
* @param Closure $fail
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
|
||||
*/
|
||||
public function validate(string $attribute, mixed $value, Closure $fail): void
|
||||
{
|
||||
|
@@ -48,6 +48,8 @@ class LessThanPiggyTarget implements ValidationRule
|
||||
* @param Closure $fail
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
|
||||
*/
|
||||
public function validate(string $attribute, mixed $value, Closure $fail): void
|
||||
{
|
||||
|
@@ -79,6 +79,8 @@ class UniqueAccountNumber implements ValidationRule
|
||||
* @param Closure $fail
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
|
||||
*/
|
||||
public function validate(string $attribute, mixed $value, Closure $fail): void
|
||||
{
|
||||
|
@@ -95,6 +95,8 @@ class UniqueIban implements ValidationRule
|
||||
*
|
||||
* @return bool
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
|
||||
*
|
||||
*/
|
||||
public function passes($attribute, $value): bool
|
||||
{
|
||||
|
@@ -41,6 +41,8 @@ class ValidJournals implements ValidationRule
|
||||
* @param Closure $fail
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
|
||||
*/
|
||||
public function validate(string $attribute, mixed $value, Closure $fail): void
|
||||
{
|
||||
|
@@ -39,6 +39,8 @@ class ValidRecurrenceRepetitionType implements ValidationRule
|
||||
* @param string $attribute
|
||||
* @param mixed $value
|
||||
* @param Closure $fail
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
|
||||
*/
|
||||
public function validate(string $attribute, mixed $value, Closure $fail): void
|
||||
{
|
||||
|
@@ -41,6 +41,8 @@ class ValidRecurrenceRepetitionValue implements ValidationRule
|
||||
* @param Closure $fail
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
|
||||
*/
|
||||
public function validate(string $attribute, mixed $value, Closure $fail): void
|
||||
{
|
||||
|
@@ -273,7 +273,6 @@ class CreditRecalculateService
|
||||
$journal = $transaction->transactionJournal;
|
||||
$foreignCurrency = $transaction->foreignCurrency;
|
||||
$accountCurrency = $this->repository->getAccountCurrency($account);
|
||||
$groupId = $journal->transaction_group_id;
|
||||
$decimals = $accountCurrency->decimal_places;
|
||||
$type = $journal->transactionType->type;
|
||||
/** @var Transaction $destTransaction */
|
||||
|
@@ -156,6 +156,7 @@ class RemoteUserGuard implements Guard
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
*/
|
||||
public function id(): int | string | null
|
||||
{
|
||||
|
@@ -45,6 +45,7 @@ class DynamicConfigKey
|
||||
*
|
||||
* @return string
|
||||
* @throws NotFoundHttpException
|
||||
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
|
||||
*/
|
||||
public static function routeBinder(string $value, Route $route): string
|
||||
{
|
||||
|
@@ -62,6 +62,8 @@ class EitherConfigKey
|
||||
*
|
||||
* @return string
|
||||
* @throws NotFoundHttpException
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
|
||||
*/
|
||||
public static function routeBinder(string $value, Route $route): string
|
||||
{
|
||||
|
@@ -935,7 +935,7 @@ class ExportDataGenerator
|
||||
$journal['budget_name'],
|
||||
$journal['bill_name'],
|
||||
$this->mergeTags($journal['tags']),
|
||||
$this->clearString($journal['notes'], true),
|
||||
$this->clearStringKeepNewlines($journal['notes']),
|
||||
|
||||
// export also the optional fields (ALL)
|
||||
|
||||
|
@@ -32,7 +32,7 @@ trait ReturnsIntegerIdTrait
|
||||
{
|
||||
/**
|
||||
* Get the ID
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
* @return Attribute
|
||||
*/
|
||||
protected function id(): Attribute
|
||||
|
@@ -178,6 +178,7 @@ trait AppendsLocationData
|
||||
* @param bool $default
|
||||
*
|
||||
* @return mixed
|
||||
* @SuppressWarnings(PHPMD.BooleanArgumentFlag)
|
||||
*/
|
||||
abstract public function boolean($key = null, $default = false);
|
||||
|
||||
|
@@ -60,7 +60,8 @@ trait ChecksLogin
|
||||
/** @var UserRoleEnum $role */
|
||||
foreach ($this->acceptedRoles as $role) {
|
||||
// system owner cannot overrule this, MUST be member of the group.
|
||||
if ($user->hasRoleInGroup($userGroup, $role, true, false)) {
|
||||
$access = $user->hasRoleInGroupOrOwner($userGroup, $role);
|
||||
if ($access) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@@ -34,60 +34,8 @@ use Illuminate\Support\Collection;
|
||||
*/
|
||||
trait ConvertsDataTypes
|
||||
{
|
||||
/**
|
||||
* Return integer value.
|
||||
*
|
||||
* @param string $field
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function convertInteger(string $field): int
|
||||
{
|
||||
return (int)$this->get($field);
|
||||
}
|
||||
|
||||
/**
|
||||
* Abstract method that always exists in the Request classes that use this
|
||||
* trait, OR a stub needs to be added by any other class that uses this train.
|
||||
*
|
||||
* @param string $key
|
||||
* @param mixed|null $default
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
abstract public function get(string $key, mixed $default = null): mixed;
|
||||
|
||||
/**
|
||||
* Return string value.
|
||||
*
|
||||
* @param string $field
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function convertString(string $field): string
|
||||
{
|
||||
$entry = $this->get($field);
|
||||
if (!is_scalar($entry)) {
|
||||
return '';
|
||||
}
|
||||
return (string) $this->clearString((string)$entry, false);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string|null $string
|
||||
* @param bool $keepNewlines
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
public function clearString(?string $string, bool $keepNewlines = true): ?string
|
||||
{
|
||||
if (null === $string) {
|
||||
return null;
|
||||
}
|
||||
if ('' === $string) {
|
||||
return '';
|
||||
}
|
||||
$search = [
|
||||
private array $characters
|
||||
= [
|
||||
"\0", // NUL
|
||||
"\f", // form feed
|
||||
"\v", // vertical tab
|
||||
@@ -136,24 +84,91 @@ trait ConvertsDataTypes
|
||||
"\u{202F}", // narrow no-break space
|
||||
"\u{3000}", // ideographic space
|
||||
"\u{FEFF}", // zero width no -break space
|
||||
"\r", // carriage return
|
||||
];
|
||||
$replace = "\x20"; // plain old normal space
|
||||
$string = str_replace($search, $replace, $string);
|
||||
|
||||
$secondSearch = $keepNewlines ? ["\r"] : ["\r", "\n", "\t", "\036", "\025"];
|
||||
$string = str_replace($secondSearch, '', $string);
|
||||
/**
|
||||
* Return integer value.
|
||||
*
|
||||
* @param string $field
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function convertInteger(string $field): int
|
||||
{
|
||||
return (int)$this->get($field);
|
||||
}
|
||||
|
||||
/**
|
||||
* Abstract method that always exists in the Request classes that use this
|
||||
* trait, OR a stub needs to be added by any other class that uses this train.
|
||||
*
|
||||
* @param string $key
|
||||
* @param mixed|null $default
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
abstract public function get(string $key, mixed $default = null): mixed;
|
||||
|
||||
/**
|
||||
* Return string value.
|
||||
*
|
||||
* @param string $field
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function convertString(string $field): string
|
||||
{
|
||||
$entry = $this->get($field);
|
||||
if (!is_scalar($entry)) {
|
||||
return '';
|
||||
}
|
||||
return (string)$this->clearString((string)$entry);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string|null $string
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
public function clearString(?string $string): ?string
|
||||
{
|
||||
$string = $this->clearStringKeepNewlines($string);
|
||||
|
||||
// clear zalgo text (TODO also in API v2)
|
||||
$string = preg_replace('/(\pM{2})\pM+/u', '\1', $string);
|
||||
if (null === $string) {
|
||||
return null;
|
||||
}
|
||||
if ('' === $string) {
|
||||
return '';
|
||||
}
|
||||
|
||||
// then remove newlines too:
|
||||
$string = str_replace(["\r", "\n", "\t", "\036", "\025"], '', $string);
|
||||
|
||||
return trim($string);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string|null $string
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
public function clearStringKeepNewlines(?string $string): ?string
|
||||
{
|
||||
if (null === $string) {
|
||||
return null;
|
||||
}
|
||||
if ('' === $string) {
|
||||
return '';
|
||||
}
|
||||
$string = str_replace($this->characters, "\x20", $string);
|
||||
|
||||
// clear zalgo text (TODO also in API v2)
|
||||
$string = preg_replace('/(\pM{2})\pM+/u', '\1', $string);
|
||||
|
||||
return trim((string)$string);
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO duplicate, see SelectTransactionsRequest
|
||||
*
|
||||
@@ -166,7 +181,8 @@ trait ConvertsDataTypes
|
||||
/** @var AccountRepositoryInterface $repository */
|
||||
$repository = app(AccountRepositoryInterface::class);
|
||||
|
||||
if (method_exists($this, 'validateUserGroup')) { /** @phpstan-ignore-line */
|
||||
if (method_exists($this, 'validateUserGroup')) {
|
||||
/** @phpstan-ignore-line */
|
||||
$userGroup = $this->validateUserGroup($this);
|
||||
if (null !== $userGroup) {
|
||||
$repository->setUserGroup($userGroup);
|
||||
@@ -199,7 +215,7 @@ trait ConvertsDataTypes
|
||||
*/
|
||||
public function stringWithNewlines(string $field): string
|
||||
{
|
||||
return (string) $this->clearString((string)($this->get($field) ?? ''));
|
||||
return (string)$this->clearStringKeepNewlines((string)($this->get($field) ?? ''));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -1363,6 +1363,7 @@ class OperatorQuerySearch implements SearchInterface
|
||||
* @param int $searchDirection
|
||||
* @param int $stringPosition
|
||||
* @param bool $prohibited
|
||||
* @SuppressWarnings(PHPMD.BooleanArgumentFlag)
|
||||
*/
|
||||
private function searchAccount(string $value, int $searchDirection, int $stringPosition, bool $prohibited = false): void
|
||||
{
|
||||
@@ -1432,6 +1433,7 @@ class OperatorQuerySearch implements SearchInterface
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO make enums
|
||||
* searchDirection: 1 = source (default), 2 = destination, 3 = both
|
||||
* stringPosition: 1 = start (default), 2 = end, 3 = contains, 4 = is
|
||||
*
|
||||
@@ -1439,6 +1441,7 @@ class OperatorQuerySearch implements SearchInterface
|
||||
* @param int $searchDirection
|
||||
* @param int $stringPosition
|
||||
* @param bool $prohibited
|
||||
* @SuppressWarnings(PHPMD.BooleanArgumentFlag)
|
||||
*/
|
||||
private function searchAccountNr(string $value, int $searchDirection, int $stringPosition, bool $prohibited = false): void
|
||||
{
|
||||
@@ -1580,6 +1583,7 @@ class OperatorQuerySearch implements SearchInterface
|
||||
/**
|
||||
*
|
||||
* @throws FireflyException
|
||||
* @SuppressWarnings(PHPMD.BooleanArgumentFlag)
|
||||
*/
|
||||
private function setExactDateParams(array $range, bool $prohibited = false): void
|
||||
{
|
||||
@@ -1654,6 +1658,7 @@ class OperatorQuerySearch implements SearchInterface
|
||||
/**
|
||||
*
|
||||
* @throws FireflyException
|
||||
* @SuppressWarnings(PHPMD.BooleanArgumentFlag)
|
||||
*/
|
||||
private function setDateBeforeParams(array $range, bool $prohibited = false): void
|
||||
{
|
||||
@@ -1700,6 +1705,7 @@ class OperatorQuerySearch implements SearchInterface
|
||||
/**
|
||||
*
|
||||
* @throws FireflyException
|
||||
* @SuppressWarnings(PHPMD.BooleanArgumentFlag)
|
||||
*/
|
||||
private function setDateAfterParams(array $range, bool $prohibited = false): void
|
||||
{
|
||||
@@ -1745,6 +1751,7 @@ class OperatorQuerySearch implements SearchInterface
|
||||
|
||||
/**
|
||||
* @throws FireflyException
|
||||
* @SuppressWarnings(PHPMD.BooleanArgumentFlag)
|
||||
*/
|
||||
private function setExactMetaDateParams(string $field, array $range, bool $prohibited = false): void
|
||||
{
|
||||
@@ -1820,6 +1827,7 @@ class OperatorQuerySearch implements SearchInterface
|
||||
|
||||
/**
|
||||
* @throws FireflyException
|
||||
* @SuppressWarnings(PHPMD.BooleanArgumentFlag)
|
||||
*/
|
||||
private function setMetaDateBeforeParams(string $field, array $range, bool $prohibited = false): void
|
||||
{
|
||||
@@ -1865,6 +1873,7 @@ class OperatorQuerySearch implements SearchInterface
|
||||
|
||||
/**
|
||||
* @throws FireflyException
|
||||
* @SuppressWarnings(PHPMD.BooleanArgumentFlag)
|
||||
*/
|
||||
private function setMetaDateAfterParams(string $field, array $range, bool $prohibited = false): void
|
||||
{
|
||||
@@ -1910,6 +1919,7 @@ class OperatorQuerySearch implements SearchInterface
|
||||
|
||||
/**
|
||||
* @throws FireflyException
|
||||
* @SuppressWarnings(PHPMD.BooleanArgumentFlag)
|
||||
*/
|
||||
private function setExactObjectDateParams(string $field, array $range, bool $prohibited = false): void
|
||||
{
|
||||
@@ -1985,6 +1995,7 @@ class OperatorQuerySearch implements SearchInterface
|
||||
/**
|
||||
*
|
||||
* @throws FireflyException
|
||||
* @SuppressWarnings(PHPMD.BooleanArgumentFlag)
|
||||
*/
|
||||
private function setObjectDateBeforeParams(string $field, array $range, bool $prohibited = false): void
|
||||
{
|
||||
@@ -2031,6 +2042,7 @@ class OperatorQuerySearch implements SearchInterface
|
||||
/**
|
||||
*
|
||||
* @throws FireflyException
|
||||
* @SuppressWarnings(PHPMD.BooleanArgumentFlag)
|
||||
*/
|
||||
private function setObjectDateAfterParams(string $field, array $range, bool $prohibited = false): void
|
||||
{
|
||||
|
@@ -449,7 +449,7 @@ class Steam
|
||||
// but we need to convert each transaction separately because the date difference may
|
||||
// incur huge currency changes.
|
||||
$converter = new ExchangeRateConverter();
|
||||
foreach ($new as $index => $set) {
|
||||
foreach ($new as $set) {
|
||||
foreach ($set as $transaction) {
|
||||
$date = Carbon::createFromFormat('Y-m-d H:i:s', $transaction['date']);
|
||||
if(false === $date) {
|
||||
|
@@ -73,7 +73,7 @@ class AppendNotesToDescription implements ActionInterface
|
||||
// only append if there is something to append
|
||||
if ('' !== $note->text) {
|
||||
$before = $object->description;
|
||||
$object->description = trim(sprintf('%s %s', $object->description, (string)$this->clearString($note->text, false)));
|
||||
$object->description = trim(sprintf('%s %s', $object->description, (string)$this->clearString($note->text)));
|
||||
$object->save();
|
||||
app('log')->debug(sprintf('Journal description is updated to "%s".', $object->description));
|
||||
|
||||
|
@@ -80,7 +80,7 @@ class MoveNotesToDescription implements ActionInterface
|
||||
}
|
||||
$before = $object->description;
|
||||
$beforeNote = $note->text;
|
||||
$object->description = (string)$this->clearString($note->text, false);
|
||||
$object->description = (string)$this->clearString($note->text);
|
||||
$object->save();
|
||||
$note->delete();
|
||||
|
||||
|
@@ -510,15 +510,11 @@ class SearchRuleEngine implements RuleEngineInterface
|
||||
*/
|
||||
private function fireGroup(RuleGroup $group): void
|
||||
{
|
||||
$all = false;
|
||||
app('log')->debug(sprintf('Going to fire group #%d with %d rule(s)', $group->id, $group->rules->count()));
|
||||
/** @var Rule $rule */
|
||||
foreach ($group->rules as $rule) {
|
||||
app('log')->debug(sprintf('Going to fire rule #%d from group #%d', $rule->id, $group->id));
|
||||
$result = $this->fireRule($rule);
|
||||
if (true === $result) {
|
||||
$all = true;
|
||||
}
|
||||
if (true === $result && true === $rule->stop_processing) {
|
||||
app('log')->debug(sprintf('The rule was triggered and rule->stop_processing = true, so group #%d will stop processing further rules.', $group->id));
|
||||
|
||||
|
@@ -382,8 +382,8 @@ class TransactionGroupTransformer extends AbstractTransformer
|
||||
$destination = $this->getDestinationTransaction($journal);
|
||||
$type = $journal->transactionType->type;
|
||||
$currency = $source->transactionCurrency;
|
||||
$amount = app('steam')->bcround($this->getAmount($type, $source->amount), $currency->decimal_places ?? 0);
|
||||
$foreignAmount = $this->getForeignAmount($type, null === $source->foreign_amount ? null : $source->foreign_amount);
|
||||
$amount = app('steam')->bcround($this->getAmount($source->amount), $currency->decimal_places ?? 0);
|
||||
$foreignAmount = $this->getForeignAmount(null === $source->foreign_amount ? null : $source->foreign_amount);
|
||||
$metaFieldData = $this->groupRepos->getMetaFields($journal->id, $this->metaFields);
|
||||
$metaDates = $this->getDates($this->groupRepos->getMetaDateFields($journal->id, $this->metaDateFields));
|
||||
$foreignCurrency = $this->getForeignCurrency($source->foreignCurrency);
|
||||
@@ -521,23 +521,21 @@ class TransactionGroupTransformer extends AbstractTransformer
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $type
|
||||
* @param string $amount
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
private function getAmount(string $type, string $amount): string
|
||||
private function getAmount(string $amount): string
|
||||
{
|
||||
return app('steam')->positive($amount);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $type
|
||||
* @param string|null $foreignAmount
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
private function getForeignAmount(string $type, ?string $foreignAmount): ?string
|
||||
private function getForeignAmount(?string $foreignAmount): ?string
|
||||
{
|
||||
$result = null;
|
||||
if (null !== $foreignAmount && '' !== $foreignAmount && bccomp('0', $foreignAmount) !== 0) {
|
||||
|
@@ -65,8 +65,8 @@ class BudgetTransformer extends AbstractTransformer
|
||||
public function transform(Budget $budget): array
|
||||
{
|
||||
//$this->opsRepository->setUser($budget->user);
|
||||
$start = $this->parameters->get('start');
|
||||
$end = $this->parameters->get('end');
|
||||
//$start = $this->parameters->get('start');
|
||||
//$end = $this->parameters->get('end');
|
||||
//$autoBudget = $this->repository->getAutoBudget($budget);
|
||||
// $spent = [];
|
||||
// if (null !== $start && null !== $end) {
|
||||
|
@@ -58,7 +58,7 @@ class UserGroupTransformer extends AbstractTransformer
|
||||
/** @var UserGroup $userGroup */
|
||||
foreach ($objects as $userGroup) {
|
||||
$userGroupId = $userGroup->id;
|
||||
$access = $user->hasRoleInGroup($userGroup, UserRoleEnum::VIEW_MEMBERSHIPS, true, true);
|
||||
$access = $user->hasRoleInGroupOrOwner($userGroup, UserRoleEnum::VIEW_MEMBERSHIPS) || $user->hasRole('owner');
|
||||
if ($access) {
|
||||
$groupMemberships = $userGroup->groupMemberships()->get();
|
||||
/** @var GroupMembership $groupMembership */
|
||||
|
50
app/User.php
50
app/User.php
@@ -360,32 +360,47 @@ class User extends Authenticatable
|
||||
return 'objectguid';
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Does the user have role X in group Y?
|
||||
*
|
||||
* @param UserGroup $userGroup
|
||||
* @param UserRoleEnum $role
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function hasSpecificRoleInGroup(UserGroup $userGroup, UserRoleEnum $role): bool
|
||||
{
|
||||
return $this->hasAnyRoleInGroup($userGroup, [$role]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Does the user have role X in group Y, or is the user the group owner of has full rights to the group?
|
||||
*
|
||||
* If $allowOverride is set to true, then the roles FULL or OWNER will also be checked,
|
||||
* which means that in most cases the user DOES have access, regardless of the original role submitted in $role.
|
||||
*
|
||||
* @param UserGroup $userGroup
|
||||
* @param UserRoleEnum $role
|
||||
* @param bool $allowGroupOverride
|
||||
* @param bool $allowSystemOverride
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function hasRoleInGroup(UserGroup $userGroup, UserRoleEnum $role, bool $allowGroupOverride = false, bool $allowSystemOverride = false): bool
|
||||
public function hasRoleInGroupOrOwner(UserGroup $userGroup, UserRoleEnum $role): bool
|
||||
{
|
||||
if ($allowSystemOverride && $this->hasRole('owner')) {
|
||||
app('log')->debug(sprintf('hasRoleInGroup: user "#%d %s" is system owner and allowSystemOverride = true, return true', $this->id, $this->email));
|
||||
return true;
|
||||
$roles = [$role->value, UserRoleEnum::OWNER->value, UserRoleEnum::FULL->value];
|
||||
return $this->hasAnyRoleInGroup($userGroup, $roles);
|
||||
}
|
||||
$roles = [$role->value];
|
||||
if ($allowGroupOverride) {
|
||||
$roles[] = UserRoleEnum::OWNER->value;
|
||||
$roles[] = UserRoleEnum::FULL->value;
|
||||
}
|
||||
app('log')->debug(sprintf('in hasRoleInGroup(%s)', implode(', ', $roles)));
|
||||
|
||||
/**
|
||||
* Does the user have role X, Y or Z in group A?
|
||||
*
|
||||
* @param UserGroup $userGroup
|
||||
* @param array $roles
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
private function hasAnyRoleInGroup(UserGroup $userGroup, array $roles): bool
|
||||
{
|
||||
app('log')->debug(sprintf('in hasAnyRoleInGroup(%s)', implode(', ', $roles)));
|
||||
/** @var Collection $dbRoles */
|
||||
$dbRoles = UserRole::whereIn('title', $roles)->get();
|
||||
if (0 === $dbRoles->count()) {
|
||||
@@ -433,15 +448,12 @@ class User extends Authenticatable
|
||||
$userGroup->title
|
||||
));
|
||||
return false;
|
||||
// // not necessary, should always return true:
|
||||
// $result = $groupMembership->userRole->title === $role->value;
|
||||
// app('log')->error(sprintf('Does user #%d "%s" have role "%s" in user group #%d "%s"? %s',
|
||||
// $this->id, $this->email,
|
||||
// $role->value, $userGroup->id, $userGroup->title, var_export($result, true)));
|
||||
// return $result;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* This method refers to the "global" role a user can have, outside of any group they may be part of.
|
||||
*
|
||||
* @param string $role
|
||||
*
|
||||
* @return bool
|
||||
|
@@ -127,7 +127,7 @@ trait DepositValidation
|
||||
|
||||
// if there is an iban, it can only be in use by a valid source type, or we will fail.
|
||||
if (null !== $accountIban && '' !== $accountIban) {
|
||||
app('log')->debug('Check if there is not already an account with this IBAN');
|
||||
app('log')->debug('Check if there is not already another account with this IBAN');
|
||||
$existing = $this->findExistingAccount($validTypes, ['iban' => $accountIban], true);
|
||||
if (null !== $existing) {
|
||||
$this->sourceError = (string)trans('validation.deposit_src_iban_exists');
|
||||
|
@@ -265,6 +265,7 @@ class AccountValidator
|
||||
* @param bool $inverse
|
||||
*
|
||||
* @return Account|null
|
||||
* @SuppressWarnings(PHPMD.BooleanArgumentFlag)
|
||||
*/
|
||||
protected function findExistingAccount(array $validTypes, array $data, bool $inverse = false): ?Account
|
||||
{
|
||||
|
@@ -563,7 +563,7 @@ trait TransactionValidation
|
||||
return;
|
||||
}
|
||||
$transactions = $this->getTransactionsArray($validator);
|
||||
foreach ($transactions as $key => $value) {
|
||||
foreach (array_keys($transactions) as $key) {
|
||||
if (!is_int($key)) {
|
||||
$validator->errors()->add('transactions.0.description', (string)trans('validation.at_least_one_transaction'));
|
||||
app('log')->debug('Added error: at_least_one_transaction.');
|
||||
|
@@ -54,7 +54,7 @@ class CreateSupportTables extends Migration
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
|
@@ -45,6 +45,7 @@ class CreateUsersTable extends Migration
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
*
|
||||
*/
|
||||
public function up(): void
|
||||
|
@@ -72,6 +72,7 @@ class CreateMainTables extends Migration
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
*
|
||||
*/
|
||||
public function up(): void
|
||||
|
@@ -33,15 +33,12 @@ class ChangesFor3101 extends Migration
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
}
|
||||
public function down(): void {}
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
*
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
}
|
||||
public function up(): void {}
|
||||
}
|
||||
|
@@ -38,12 +38,11 @@ class FixNullables extends Migration
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
}
|
||||
public function down(): void {}
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
*
|
||||
*/
|
||||
public function up(): void
|
||||
|
@@ -55,6 +55,7 @@ class ExpandTransactionsTable extends Migration
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
*
|
||||
*/
|
||||
public function up(): void
|
||||
|
@@ -42,7 +42,7 @@ class ChangesForV410 extends Migration
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
|
@@ -54,6 +54,7 @@ class ChangesForV420 extends Migration
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
*
|
||||
*/
|
||||
public function up(): void
|
||||
|
@@ -42,7 +42,7 @@ class ChangesForV430 extends Migration
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
|
@@ -112,7 +112,7 @@ class ChangesForV431 extends Migration
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
|
@@ -60,7 +60,7 @@ class ChangesForV440 extends Migration
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
|
@@ -84,7 +84,7 @@ class ChangesForV450 extends Migration
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
|
@@ -44,7 +44,7 @@ class ChangesForV470 extends Migration
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
|
@@ -56,7 +56,7 @@ class ChangesForV470a extends Migration
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
|
@@ -44,6 +44,7 @@ class CreateOauthAuthCodesTable extends Migration
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
|
@@ -44,6 +44,7 @@ class CreateOauthAccessTokensTable extends Migration
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
|
@@ -44,6 +44,7 @@ class CreateOauthRefreshTokensTable extends Migration
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
|
@@ -44,6 +44,7 @@ class CreateOauthClientsTable extends Migration
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
|
@@ -44,6 +44,7 @@ class CreateOauthPersonalAccessClientsTable extends Migration
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
|
@@ -74,6 +74,7 @@ class ChangesForV472 extends Migration
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
|
@@ -77,7 +77,7 @@ class ChangesForV473 extends Migration
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
* @return void
|
||||
*/
|
||||
public function up(): void
|
||||
|
@@ -36,16 +36,13 @@ class ChangesForV474 extends Migration
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
}
|
||||
public function down(): void {}
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
}
|
||||
public function up(): void {}
|
||||
}
|
||||
|
@@ -49,7 +49,7 @@ class ChangesForV475 extends Migration
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
* @return void
|
||||
*/
|
||||
public function up(): void
|
||||
|
@@ -63,7 +63,7 @@ class ChangesForV477 extends Migration
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
* @return void
|
||||
*/
|
||||
public function up(): void
|
||||
|
@@ -58,7 +58,7 @@ class ChangesForV479 extends Migration
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
* @return void
|
||||
*/
|
||||
public function up(): void
|
||||
|
@@ -47,7 +47,7 @@ class ChangesForV4710 extends Migration
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
* @return void
|
||||
*/
|
||||
public function up(): void
|
||||
|
@@ -46,7 +46,7 @@ class ChangesForV4711 extends Migration
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
* @return void
|
||||
*/
|
||||
public function up(): void
|
||||
|
@@ -45,7 +45,7 @@ class ChangesForV4712 extends Migration
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
* @return void
|
||||
*/
|
||||
public function up(): void
|
||||
|
@@ -58,7 +58,7 @@ class FixLdapConfiguration extends Migration
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
* @return void
|
||||
*/
|
||||
public function up(): void
|
||||
|
@@ -113,7 +113,7 @@ class ChangesForV480 extends Migration
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
* @return void
|
||||
*/
|
||||
public function up(): void
|
||||
|
@@ -46,7 +46,7 @@ class MakeLocationsTable extends Migration
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
* @return void
|
||||
*/
|
||||
public function up(): void
|
||||
|
@@ -45,7 +45,7 @@ class ChangesForV520 extends Migration
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
* @return void
|
||||
*/
|
||||
public function up(): void
|
||||
|
@@ -46,7 +46,7 @@ class ChangesForV530 extends Migration
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
* @return void
|
||||
*/
|
||||
public function up(): void
|
||||
|
@@ -59,7 +59,7 @@ class ChangesForV530a extends Migration
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
* @return void
|
||||
*/
|
||||
public function up(): void
|
||||
|
@@ -100,7 +100,7 @@ class ChangesForV540 extends Migration
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
* @return void
|
||||
*/
|
||||
public function up(): void
|
||||
|
@@ -124,7 +124,7 @@ class ChangesForV550 extends Migration
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
* @return void
|
||||
*/
|
||||
public function up(): void
|
||||
|
@@ -62,7 +62,7 @@ class ChangesForV550b2 extends Migration
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
* @return void
|
||||
*/
|
||||
public function up(): void
|
||||
|
@@ -52,6 +52,7 @@ class AddLdapColumnsToUsersTable extends Migration
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
|
@@ -44,7 +44,7 @@ class ExtendCurrencyInfo extends Migration
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
* @return void
|
||||
*/
|
||||
public function up(): void
|
||||
|
@@ -42,7 +42,7 @@ class DropTeleTable extends Migration
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
* @return void
|
||||
*/
|
||||
public function up(): void
|
||||
|
@@ -107,7 +107,7 @@ class UserGroups extends Migration
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
* @return void
|
||||
*/
|
||||
public function up(): void
|
||||
|
@@ -44,7 +44,7 @@ class CreateLocalPersonalAccessTokensTable extends Migration
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
* @return void
|
||||
*/
|
||||
public function up(): void
|
||||
|
@@ -34,7 +34,7 @@ use Illuminate\Support\Facades\Schema;
|
||||
return new class () extends Migration {
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
* @return void
|
||||
*/
|
||||
public function up(): void
|
||||
|
@@ -30,7 +30,7 @@ use Illuminate\Support\Facades\Schema;
|
||||
return new class () extends Migration {
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
* @return void
|
||||
*/
|
||||
public function up(): void
|
||||
|
@@ -30,7 +30,7 @@ use Illuminate\Support\Facades\Schema;
|
||||
return new class () extends Migration {
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
* @return void
|
||||
*/
|
||||
public function up(): void
|
||||
|
@@ -30,7 +30,7 @@ use Illuminate\Support\Facades\Schema;
|
||||
return new class () extends Migration {
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
* @return void
|
||||
*/
|
||||
public function up(): void
|
||||
|
@@ -35,6 +35,7 @@ use Illuminate\Support\Facades\Schema;
|
||||
return new class () extends Migration {
|
||||
/**
|
||||
* Run the migrations.
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
|
@@ -30,6 +30,7 @@ use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class () extends Migration {
|
||||
/**
|
||||
* @SuppressWarnings(PHPMD.ShortMethodName)
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -863,7 +863,10 @@ export default {
|
||||
// console.log('Length == 1, set date to today.');
|
||||
// set first date.
|
||||
let today = new Date();
|
||||
this.transactions[0].date = today.getFullYear() + '-' + ("0" + (today.getMonth() + 1)).slice(-2) + '-' + ("0" + today.getDate()).slice(-2);
|
||||
this.transactions[0].date = today.getFullYear() + '-' + ("0" + (today.getMonth() + 1)).slice(-2) + '-' + ("0" + today.getDate()).slice(-2)
|
||||
+ 'T00:00';
|
||||
//console.log(this.transactions[0].date);
|
||||
|
||||
// call for extra clear thing:
|
||||
// this.clearSource(0);
|
||||
//this.clearDestination(0);
|
||||
|
@@ -451,11 +451,10 @@ export default {
|
||||
if (typeof window.expectedSourceTypes === 'undefined') {
|
||||
console.error('window.expectedSourceTypes is unexpectedly empty.')
|
||||
}
|
||||
|
||||
this.transactions.push({
|
||||
transaction_journal_id: transaction.transaction_journal_id,
|
||||
description: transaction.description,
|
||||
date: transaction.date.substr(0, 10),
|
||||
date: transaction.date.substring(0, 16),
|
||||
amount: this.roundNumber(this.positiveAmount(transaction.amount), transaction.currency_decimal_places),
|
||||
category: transaction.category_name,
|
||||
errors: {
|
||||
|
@@ -200,7 +200,7 @@ export default {
|
||||
this.getCurrencies(1);
|
||||
},
|
||||
getCurrencies: function(page) {
|
||||
console.log('loadCurrencies on page ' + page);
|
||||
// console.log('loadCurrencies on page ' + page);
|
||||
let url = document.getElementsByTagName('base')[0].href + "api/v1/currencies?page=" + page;
|
||||
axios.get(url, {}).then((res) => {
|
||||
|
||||
|
@@ -32,8 +32,7 @@
|
||||
autocomplete="off"
|
||||
class="form-control"
|
||||
name="date[]"
|
||||
|
||||
type="date"
|
||||
type="datetime-local"
|
||||
v-bind:placeholder="$t('firefly.date')"
|
||||
v-bind:title="$t('firefly.date')" @input="handleInput"
|
||||
>
|
||||
|
Reference in New Issue
Block a user