Merge pull request 'activeuser' (#3) from activeuser into master
Cadoles/nineskeletor/pipeline/head This commit looks good Details

Reviewed-on: #3
This commit is contained in:
afornerot 2022-10-02 15:14:32 +02:00
commit f29fc43c8a
38 changed files with 1177 additions and 695 deletions

4
.env
View File

@ -27,6 +27,8 @@ APP_MODEREGISTRATION= # null | BYADMIN | BYUSER
APP_ADMINS='["admin"]' APP_ADMINS='["admin"]'
# Structure Organisationnelle # Structure Organisationnelle
APP_NIVEAUUPDATABLE=0 # Quel degres de niveau est modifiable par les utilisateurs seule les admin et modo via console peuvent outre passer ce param
APP_NIVEAU01LABEL="Niveau 01" APP_NIVEAU01LABEL="Niveau 01"
APP_NIVEAU01LABELS="Niveaux 01" APP_NIVEAU01LABELS="Niveaux 01"
@ -45,8 +47,6 @@ APP_NIVEAU04LABEL="Niveau 04"
APP_NIVEAU04LABELS="Niveaux 04" APP_NIVEAU04LABELS="Niveaux 04"
APP_NIVEAU04MANDATORY='[""]' APP_NIVEAU04MANDATORY='[""]'
APP_NIVEAUUPDATABLE=0 # Quel degres de niveau est modifiable par les utilisateurs seule les admin et modo via console peuvent outre passer ce param
APP_GROUPUSE=1 APP_GROUPUSE=1
APP_GROUPSUBMITER='["ALL"]' APP_GROUPSUBMITER='["ALL"]'

741
composer.lock generated
View File

@ -58,16 +58,16 @@
}, },
{ {
"name": "aws/aws-sdk-php", "name": "aws/aws-sdk-php",
"version": "3.234.4", "version": "3.237.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/aws/aws-sdk-php.git", "url": "https://github.com/aws/aws-sdk-php.git",
"reference": "8d56ddb99632200273bb933cbf82b758ab9cde2a" "reference": "4667dd4b863a8686417e0d2a50da8682d8b68bb5"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/8d56ddb99632200273bb933cbf82b758ab9cde2a", "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/4667dd4b863a8686417e0d2a50da8682d8b68bb5",
"reference": "8d56ddb99632200273bb933cbf82b758ab9cde2a", "reference": "4667dd4b863a8686417e0d2a50da8682d8b68bb5",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -86,6 +86,7 @@
"aws/aws-php-sns-message-validator": "~1.0", "aws/aws-php-sns-message-validator": "~1.0",
"behat/behat": "~3.0", "behat/behat": "~3.0",
"composer/composer": "^1.10.22", "composer/composer": "^1.10.22",
"dms/phpunit-arraysubset-asserts": "^0.4.0",
"doctrine/cache": "~1.4", "doctrine/cache": "~1.4",
"ext-dom": "*", "ext-dom": "*",
"ext-openssl": "*", "ext-openssl": "*",
@ -93,10 +94,11 @@
"ext-sockets": "*", "ext-sockets": "*",
"nette/neon": "^2.3", "nette/neon": "^2.3",
"paragonie/random_compat": ">= 2", "paragonie/random_compat": ">= 2",
"phpunit/phpunit": "^4.8.35 || ^5.6.3", "phpunit/phpunit": "^4.8.35 || ^5.6.3 || ^9.5",
"psr/cache": "^1.0", "psr/cache": "^1.0",
"psr/simple-cache": "^1.0", "psr/simple-cache": "^1.0",
"sebastian/comparator": "^1.2.3" "sebastian/comparator": "^1.2.3 || ^4.0",
"yoast/phpunit-polyfills": "^1.0"
}, },
"suggest": { "suggest": {
"aws/aws-php-sns-message-validator": "To validate incoming SNS notifications", "aws/aws-php-sns-message-validator": "To validate incoming SNS notifications",
@ -144,9 +146,9 @@
"support": { "support": {
"forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80", "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
"issues": "https://github.com/aws/aws-sdk-php/issues", "issues": "https://github.com/aws/aws-sdk-php/issues",
"source": "https://github.com/aws/aws-sdk-php/tree/3.234.4" "source": "https://github.com/aws/aws-sdk-php/tree/3.237.1"
}, },
"time": "2022-08-26T18:20:48+00:00" "time": "2022-09-30T18:15:04+00:00"
}, },
{ {
"name": "brick/math", "name": "brick/math",
@ -438,16 +440,16 @@
}, },
{ {
"name": "doctrine/collections", "name": "doctrine/collections",
"version": "1.7.2", "version": "1.8.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/doctrine/collections.git", "url": "https://github.com/doctrine/collections.git",
"reference": "3fe77330f5591108bbf1315da7377a7e704ed8a0" "reference": "2b44dd4cbca8b5744327de78bafef5945c7e7b5e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/doctrine/collections/zipball/3fe77330f5591108bbf1315da7377a7e704ed8a0", "url": "https://api.github.com/repos/doctrine/collections/zipball/2b44dd4cbca8b5744327de78bafef5945c7e7b5e",
"reference": "3fe77330f5591108bbf1315da7377a7e704ed8a0", "reference": "2b44dd4cbca8b5744327de78bafef5945c7e7b5e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -502,22 +504,22 @@
], ],
"support": { "support": {
"issues": "https://github.com/doctrine/collections/issues", "issues": "https://github.com/doctrine/collections/issues",
"source": "https://github.com/doctrine/collections/tree/1.7.2" "source": "https://github.com/doctrine/collections/tree/1.8.0"
}, },
"time": "2022-08-27T16:08:58+00:00" "time": "2022-09-01T20:12:10+00:00"
}, },
{ {
"name": "doctrine/common", "name": "doctrine/common",
"version": "3.4.0", "version": "3.4.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/doctrine/common.git", "url": "https://github.com/doctrine/common.git",
"reference": "e09556bbdf95b8420e649162b19ae9da2d1a80f3" "reference": "609c3a7b6af49a7b4b13945ca2fdf4af801946af"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/doctrine/common/zipball/e09556bbdf95b8420e649162b19ae9da2d1a80f3", "url": "https://api.github.com/repos/doctrine/common/zipball/609c3a7b6af49a7b4b13945ca2fdf4af801946af",
"reference": "e09556bbdf95b8420e649162b19ae9da2d1a80f3", "reference": "609c3a7b6af49a7b4b13945ca2fdf4af801946af",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -525,13 +527,13 @@
"php": "^7.1 || ^8.0" "php": "^7.1 || ^8.0"
}, },
"require-dev": { "require-dev": {
"doctrine/coding-standard": "^9.0", "doctrine/coding-standard": "^9.0 || ^10.0",
"doctrine/collections": "^1", "doctrine/collections": "^1",
"phpstan/phpstan": "^1.4.1", "phpstan/phpstan": "^1.4.1",
"phpstan/phpstan-phpunit": "^1", "phpstan/phpstan-phpunit": "^1",
"phpunit/phpunit": "^7.5.20 || ^8.5 || ^9.0", "phpunit/phpunit": "^7.5.20 || ^8.5 || ^9.0",
"squizlabs/php_codesniffer": "^3.0", "squizlabs/php_codesniffer": "^3.0",
"symfony/phpunit-bridge": "^4.0.5", "symfony/phpunit-bridge": "^6.1",
"vimeo/psalm": "^4.4" "vimeo/psalm": "^4.4"
}, },
"type": "library", "type": "library",
@ -579,7 +581,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/doctrine/common/issues", "issues": "https://github.com/doctrine/common/issues",
"source": "https://github.com/doctrine/common/tree/3.4.0" "source": "https://github.com/doctrine/common/tree/3.4.2"
}, },
"funding": [ "funding": [
{ {
@ -595,20 +597,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-08-23T19:46:56+00:00" "time": "2022-09-28T14:20:50+00:00"
}, },
{ {
"name": "doctrine/dbal", "name": "doctrine/dbal",
"version": "3.4.2", "version": "3.4.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/doctrine/dbal.git", "url": "https://github.com/doctrine/dbal.git",
"reference": "22de295f10edbe00df74f517612f1fbd711131e2" "reference": "a5a58773109c0abb13e658c8ccd92aeec8d07f9e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/doctrine/dbal/zipball/22de295f10edbe00df74f517612f1fbd711131e2", "url": "https://api.github.com/repos/doctrine/dbal/zipball/a5a58773109c0abb13e658c8ccd92aeec8d07f9e",
"reference": "22de295f10edbe00df74f517612f1fbd711131e2", "reference": "a5a58773109c0abb13e658c8ccd92aeec8d07f9e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -621,16 +623,16 @@
"psr/log": "^1|^2|^3" "psr/log": "^1|^2|^3"
}, },
"require-dev": { "require-dev": {
"doctrine/coding-standard": "9.0.0", "doctrine/coding-standard": "10.0.0",
"jetbrains/phpstorm-stubs": "2022.1", "jetbrains/phpstorm-stubs": "2022.2",
"phpstan/phpstan": "1.8.2", "phpstan/phpstan": "1.8.3",
"phpstan/phpstan-strict-rules": "^1.3", "phpstan/phpstan-strict-rules": "^1.3",
"phpunit/phpunit": "9.5.21", "phpunit/phpunit": "9.5.24",
"psalm/plugin-phpunit": "0.17.0", "psalm/plugin-phpunit": "0.17.0",
"squizlabs/php_codesniffer": "3.7.1", "squizlabs/php_codesniffer": "3.7.1",
"symfony/cache": "^5.4|^6.0", "symfony/cache": "^5.4|^6.0",
"symfony/console": "^4.4|^5.4|^6.0", "symfony/console": "^4.4|^5.4|^6.0",
"vimeo/psalm": "4.24.0" "vimeo/psalm": "4.27.0"
}, },
"suggest": { "suggest": {
"symfony/console": "For helpful console commands such as SQL execution and import of files." "symfony/console": "For helpful console commands such as SQL execution and import of files."
@ -690,7 +692,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/doctrine/dbal/issues", "issues": "https://github.com/doctrine/dbal/issues",
"source": "https://github.com/doctrine/dbal/tree/3.4.2" "source": "https://github.com/doctrine/dbal/tree/3.4.5"
}, },
"funding": [ "funding": [
{ {
@ -706,7 +708,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-08-21T14:21:06+00:00" "time": "2022-09-23T17:48:57+00:00"
}, },
{ {
"name": "doctrine/deprecations", "name": "doctrine/deprecations",
@ -1043,28 +1045,28 @@
}, },
{ {
"name": "doctrine/inflector", "name": "doctrine/inflector",
"version": "2.0.4", "version": "2.0.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/doctrine/inflector.git", "url": "https://github.com/doctrine/inflector.git",
"reference": "8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89" "reference": "ade2b3bbfb776f27f0558e26eed43b5d9fe1b392"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/doctrine/inflector/zipball/8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89", "url": "https://api.github.com/repos/doctrine/inflector/zipball/ade2b3bbfb776f27f0558e26eed43b5d9fe1b392",
"reference": "8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89", "reference": "ade2b3bbfb776f27f0558e26eed43b5d9fe1b392",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.2 || ^8.0" "php": "^7.2 || ^8.0"
}, },
"require-dev": { "require-dev": {
"doctrine/coding-standard": "^8.2", "doctrine/coding-standard": "^9",
"phpstan/phpstan": "^0.12", "phpstan/phpstan": "^1.8",
"phpstan/phpstan-phpunit": "^0.12", "phpstan/phpstan-phpunit": "^1.1",
"phpstan/phpstan-strict-rules": "^0.12", "phpstan/phpstan-strict-rules": "^1.3",
"phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", "phpunit/phpunit": "^8.5 || ^9.5",
"vimeo/psalm": "^4.10" "vimeo/psalm": "^4.25"
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
@ -1114,7 +1116,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/doctrine/inflector/issues", "issues": "https://github.com/doctrine/inflector/issues",
"source": "https://github.com/doctrine/inflector/tree/2.0.4" "source": "https://github.com/doctrine/inflector/tree/2.0.5"
}, },
"funding": [ "funding": [
{ {
@ -1130,7 +1132,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2021-10-22T20:16:43+00:00" "time": "2022-09-07T09:01:28+00:00"
}, },
{ {
"name": "doctrine/instantiator", "name": "doctrine/instantiator",
@ -1389,16 +1391,16 @@
}, },
{ {
"name": "doctrine/orm", "name": "doctrine/orm",
"version": "2.13.1", "version": "2.13.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/doctrine/orm.git", "url": "https://github.com/doctrine/orm.git",
"reference": "35c44a56677adb3ce796138b6e4934ce93ec6811" "reference": "a8b02fd70fa777ca8278b9604fdef75c15c6a12f"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/doctrine/orm/zipball/35c44a56677adb3ce796138b6e4934ce93ec6811", "url": "https://api.github.com/repos/doctrine/orm/zipball/a8b02fd70fa777ca8278b9604fdef75c15c6a12f",
"reference": "35c44a56677adb3ce796138b6e4934ce93ec6811", "reference": "a8b02fd70fa777ca8278b9604fdef75c15c6a12f",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1425,15 +1427,15 @@
}, },
"require-dev": { "require-dev": {
"doctrine/annotations": "^1.13", "doctrine/annotations": "^1.13",
"doctrine/coding-standard": "^9.0", "doctrine/coding-standard": "^9.0.2 || ^10.0",
"phpbench/phpbench": "^0.16.10 || ^1.0", "phpbench/phpbench": "^0.16.10 || ^1.0",
"phpstan/phpstan": "~1.4.10 || 1.8.2", "phpstan/phpstan": "~1.4.10 || 1.8.5",
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
"psr/log": "^1 || ^2 || ^3", "psr/log": "^1 || ^2 || ^3",
"squizlabs/php_codesniffer": "3.7.1", "squizlabs/php_codesniffer": "3.7.1",
"symfony/cache": "^4.4 || ^5.4 || ^6.0", "symfony/cache": "^4.4 || ^5.4 || ^6.0",
"symfony/yaml": "^3.4 || ^4.0 || ^5.0 || ^6.0", "symfony/yaml": "^3.4 || ^4.0 || ^5.0 || ^6.0",
"vimeo/psalm": "4.26.0" "vimeo/psalm": "4.27.0"
}, },
"suggest": { "suggest": {
"ext-dom": "Provides support for XSD validation for XML mapping files", "ext-dom": "Provides support for XSD validation for XML mapping files",
@ -1483,9 +1485,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/doctrine/orm/issues", "issues": "https://github.com/doctrine/orm/issues",
"source": "https://github.com/doctrine/orm/tree/2.13.1" "source": "https://github.com/doctrine/orm/tree/2.13.2"
}, },
"time": "2022-08-08T09:00:16+00:00" "time": "2022-09-22T13:36:43+00:00"
}, },
{ {
"name": "doctrine/persistence", "name": "doctrine/persistence",
@ -1872,16 +1874,16 @@
}, },
{ {
"name": "friendsofsymfony/rest-bundle", "name": "friendsofsymfony/rest-bundle",
"version": "3.3.0", "version": "3.4.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/FriendsOfSymfony/FOSRestBundle.git", "url": "https://github.com/FriendsOfSymfony/FOSRestBundle.git",
"reference": "54f5ffec4bff71b727a2aa4877915ad81358defc" "reference": "b888195589d245002880d07073ef23ab60e3795d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/FriendsOfSymfony/FOSRestBundle/zipball/54f5ffec4bff71b727a2aa4877915ad81358defc", "url": "https://api.github.com/repos/FriendsOfSymfony/FOSRestBundle/zipball/b888195589d245002880d07073ef23ab60e3795d",
"reference": "54f5ffec4bff71b727a2aa4877915ad81358defc", "reference": "b888195589d245002880d07073ef23ab60e3795d",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1908,7 +1910,7 @@
"doctrine/annotations": "^1.13.2", "doctrine/annotations": "^1.13.2",
"friendsofphp/php-cs-fixer": "^3.0", "friendsofphp/php-cs-fixer": "^3.0",
"jms/serializer": "^1.13|^2.0|^3.0", "jms/serializer": "^1.13|^2.0|^3.0",
"jms/serializer-bundle": "^2.4.3|^3.0.1|^4.0", "jms/serializer-bundle": "^2.4.3|^3.0.1|^4.0|^5.0@beta",
"psr/http-message": "^1.0", "psr/http-message": "^1.0",
"psr/log": "^1.0|^2.0|^3.0", "psr/log": "^1.0|^2.0|^3.0",
"sensio/framework-extra-bundle": "^6.1", "sensio/framework-extra-bundle": "^6.1",
@ -1972,9 +1974,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/FriendsOfSymfony/FOSRestBundle/issues", "issues": "https://github.com/FriendsOfSymfony/FOSRestBundle/issues",
"source": "https://github.com/FriendsOfSymfony/FOSRestBundle/tree/3.3.0" "source": "https://github.com/FriendsOfSymfony/FOSRestBundle/tree/3.4.0"
}, },
"time": "2022-02-03T20:06:00+00:00" "time": "2022-09-18T04:54:54+00:00"
}, },
{ {
"name": "gregwar/captcha", "name": "gregwar/captcha",
@ -2617,16 +2619,16 @@
}, },
{ {
"name": "laminas/laminas-code", "name": "laminas/laminas-code",
"version": "4.6.0", "version": "4.7.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/laminas/laminas-code.git", "url": "https://github.com/laminas/laminas-code.git",
"reference": "16ec7577ff315d53ac2e1b1f03a344d8fe680a6e" "reference": "0337d9265bc2e6376babad8c511500821620cb30"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/laminas/laminas-code/zipball/16ec7577ff315d53ac2e1b1f03a344d8fe680a6e", "url": "https://api.github.com/repos/laminas/laminas-code/zipball/0337d9265bc2e6376babad8c511500821620cb30",
"reference": "16ec7577ff315d53ac2e1b1f03a344d8fe680a6e", "reference": "0337d9265bc2e6376babad8c511500821620cb30",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2679,7 +2681,7 @@
"type": "community_bridge" "type": "community_bridge"
} }
], ],
"time": "2022-07-28T22:46:52+00:00" "time": "2022-09-13T10:33:30+00:00"
}, },
{ {
"name": "lcobucci/clock", "name": "lcobucci/clock",
@ -3029,16 +3031,16 @@
}, },
{ {
"name": "nelmio/api-doc-bundle", "name": "nelmio/api-doc-bundle",
"version": "v4.9.0", "version": "v4.10.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/nelmio/NelmioApiDocBundle.git", "url": "https://github.com/nelmio/NelmioApiDocBundle.git",
"reference": "da02f3ad339437b939a6d309e9c98b62afe53c6c" "reference": "b42ac43bebe0dc3372e9feb0ef0a43ae3cfbb349"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/nelmio/NelmioApiDocBundle/zipball/da02f3ad339437b939a6d309e9c98b62afe53c6c", "url": "https://api.github.com/repos/nelmio/NelmioApiDocBundle/zipball/b42ac43bebe0dc3372e9feb0ef0a43ae3cfbb349",
"reference": "da02f3ad339437b939a6d309e9c98b62afe53c6c", "reference": "b42ac43bebe0dc3372e9feb0ef0a43ae3cfbb349",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3058,21 +3060,22 @@
"symfony/options-resolver": "^4.4|^5.0|^6.0", "symfony/options-resolver": "^4.4|^5.0|^6.0",
"symfony/property-info": "^4.4|^5.0|^6.0", "symfony/property-info": "^4.4|^5.0|^6.0",
"symfony/routing": "^4.4|^5.0|^6.0", "symfony/routing": "^4.4|^5.0|^6.0",
"zircote/swagger-php": "^3.2|^4.0" "zircote/swagger-php": "^4.2.15"
}, },
"conflict": { "conflict": {
"symfony/framework-bundle": "4.2.7" "symfony/framework-bundle": "4.2.7"
}, },
"require-dev": { "require-dev": {
"api-platform/core": "^2.6.8", "api-platform/core": "^2.7.0|^3@dev",
"composer/package-versions-deprecated": "1.11.99.1", "composer/package-versions-deprecated": "1.11.99.1",
"friendsofsymfony/rest-bundle": "^2.8|^3.0", "friendsofsymfony/rest-bundle": "^2.8|^3.0",
"jms/serializer": "^1.14|^3.0", "jms/serializer": "^1.14|^3.0",
"jms/serializer-bundle": "^2.3|^3.0|^4.0", "jms/serializer-bundle": "^2.3|^3.0|^4.0|^5.0@beta",
"sensio/framework-extra-bundle": "^4.4|^5.2|^6.0", "sensio/framework-extra-bundle": "^4.4|^5.2|^6.0",
"symfony/asset": "^4.4|^5.2|^6.0", "symfony/asset": "^4.4|^5.2|^6.0",
"symfony/browser-kit": "^4.4|^5.2|^6.0", "symfony/browser-kit": "^4.4|^5.2|^6.0",
"symfony/cache": "^4.4|^5.2|^6.0", "symfony/cache": "^4.4|^5.2|^6.0",
"symfony/deprecation-contracts": "^2.1|^3",
"symfony/dom-crawler": "^4.4|^5.2|^6.0", "symfony/dom-crawler": "^4.4|^5.2|^6.0",
"symfony/form": "^4.4|^5.2|^6.0", "symfony/form": "^4.4|^5.2|^6.0",
"symfony/phpunit-bridge": "^5.2", "symfony/phpunit-bridge": "^5.2",
@ -3093,8 +3096,8 @@
"symfony/form": "For describing your form type models.", "symfony/form": "For describing your form type models.",
"symfony/monolog-bundle": "For using a PSR-3 compatible logger implementation with the API PHP describer.", "symfony/monolog-bundle": "For using a PSR-3 compatible logger implementation with the API PHP describer.",
"symfony/serializer": "For describing your models.", "symfony/serializer": "For describing your models.",
"symfony/twig-bundle": "For using the Swagger UI.",
"symfony/validator": "For describing the validation constraints in your models.", "symfony/validator": "For describing the validation constraints in your models.",
"twig/twig-bundle": "For using the Swagger UI.",
"willdurand/hateoas-bundle": "For extracting HATEOAS metadata." "willdurand/hateoas-bundle": "For extracting HATEOAS metadata."
}, },
"type": "symfony-bundle", "type": "symfony-bundle",
@ -3134,22 +3137,22 @@
], ],
"support": { "support": {
"issues": "https://github.com/nelmio/NelmioApiDocBundle/issues", "issues": "https://github.com/nelmio/NelmioApiDocBundle/issues",
"source": "https://github.com/nelmio/NelmioApiDocBundle/tree/v4.9.0" "source": "https://github.com/nelmio/NelmioApiDocBundle/tree/v4.10.1"
}, },
"time": "2022-04-30T18:28:05+00:00" "time": "2022-09-28T20:10:51+00:00"
}, },
{ {
"name": "nikic/php-parser", "name": "nikic/php-parser",
"version": "v4.14.0", "version": "v4.15.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/nikic/PHP-Parser.git", "url": "https://github.com/nikic/PHP-Parser.git",
"reference": "34bea19b6e03d8153165d8f30bba4c3be86184c1" "reference": "0ef6c55a3f47f89d7a374e6f835197a0b5fcf900"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/34bea19b6e03d8153165d8f30bba4c3be86184c1", "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/0ef6c55a3f47f89d7a374e6f835197a0b5fcf900",
"reference": "34bea19b6e03d8153165d8f30bba4c3be86184c1", "reference": "0ef6c55a3f47f89d7a374e6f835197a0b5fcf900",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3190,9 +3193,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/nikic/PHP-Parser/issues", "issues": "https://github.com/nikic/PHP-Parser/issues",
"source": "https://github.com/nikic/PHP-Parser/tree/v4.14.0" "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.1"
}, },
"time": "2022-05-31T20:59:12+00:00" "time": "2022-09-04T07:30:47+00:00"
}, },
{ {
"name": "oneup/uploader-bundle", "name": "oneup/uploader-bundle",
@ -3289,16 +3292,16 @@
}, },
{ {
"name": "php-http/client-common", "name": "php-http/client-common",
"version": "2.5.0", "version": "2.6.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/php-http/client-common.git", "url": "https://github.com/php-http/client-common.git",
"reference": "d135751167d57e27c74de674d6a30cef2dc8e054" "reference": "45db684cd4e186dcdc2b9c06b22970fe123796c0"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/php-http/client-common/zipball/d135751167d57e27c74de674d6a30cef2dc8e054", "url": "https://api.github.com/repos/php-http/client-common/zipball/45db684cd4e186dcdc2b9c06b22970fe123796c0",
"reference": "d135751167d57e27c74de674d6a30cef2dc8e054", "reference": "45db684cd4e186dcdc2b9c06b22970fe123796c0",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3358,9 +3361,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/php-http/client-common/issues", "issues": "https://github.com/php-http/client-common/issues",
"source": "https://github.com/php-http/client-common/tree/2.5.0" "source": "https://github.com/php-http/client-common/tree/2.6.0"
}, },
"time": "2021-11-26T15:01:24+00:00" "time": "2022-09-29T09:59:43+00:00"
}, },
{ {
"name": "php-http/discovery", "name": "php-http/discovery",
@ -3838,16 +3841,16 @@
}, },
{ {
"name": "phpstan/phpdoc-parser", "name": "phpstan/phpdoc-parser",
"version": "1.7.0", "version": "1.8.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/phpstan/phpdoc-parser.git", "url": "https://github.com/phpstan/phpdoc-parser.git",
"reference": "367a8d9d5f7da2a0136422d27ce8840583926955" "reference": "8dd908dd6156e974b9a0f8bb4cd5ad0707830f04"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/367a8d9d5f7da2a0136422d27ce8840583926955", "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/8dd908dd6156e974b9a0f8bb4cd5ad0707830f04",
"reference": "367a8d9d5f7da2a0136422d27ce8840583926955", "reference": "8dd908dd6156e974b9a0f8bb4cd5ad0707830f04",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3877,9 +3880,9 @@
"description": "PHPDoc parser with support for nullable, intersection and generic types", "description": "PHPDoc parser with support for nullable, intersection and generic types",
"support": { "support": {
"issues": "https://github.com/phpstan/phpdoc-parser/issues", "issues": "https://github.com/phpstan/phpdoc-parser/issues",
"source": "https://github.com/phpstan/phpdoc-parser/tree/1.7.0" "source": "https://github.com/phpstan/phpdoc-parser/tree/1.8.0"
}, },
"time": "2022-08-09T12:23:23+00:00" "time": "2022-09-04T18:59:06+00:00"
}, },
{ {
"name": "psr/cache", "name": "psr/cache",
@ -4424,20 +4427,20 @@
}, },
{ {
"name": "ramsey/uuid", "name": "ramsey/uuid",
"version": "4.4.0", "version": "4.5.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/ramsey/uuid.git", "url": "https://github.com/ramsey/uuid.git",
"reference": "373f7bacfcf3de038778ff27dcce5672ddbf4c8a" "reference": "a161a26d917604dc6d3aa25100fddf2556e9f35d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/ramsey/uuid/zipball/373f7bacfcf3de038778ff27dcce5672ddbf4c8a", "url": "https://api.github.com/repos/ramsey/uuid/zipball/a161a26d917604dc6d3aa25100fddf2556e9f35d",
"reference": "373f7bacfcf3de038778ff27dcce5672ddbf4c8a", "reference": "a161a26d917604dc6d3aa25100fddf2556e9f35d",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"brick/math": "^0.8 || ^0.9 || ^0.10", "brick/math": "^0.8.8 || ^0.9 || ^0.10",
"ext-ctype": "*", "ext-ctype": "*",
"ext-json": "*", "ext-json": "*",
"php": "^8.0", "php": "^8.0",
@ -4458,12 +4461,13 @@
"php-mock/php-mock-mockery": "^1.3", "php-mock/php-mock-mockery": "^1.3",
"php-parallel-lint/php-parallel-lint": "^1.1", "php-parallel-lint/php-parallel-lint": "^1.1",
"phpbench/phpbench": "^1.0", "phpbench/phpbench": "^1.0",
"phpstan/extension-installer": "^1.0", "phpstan/extension-installer": "^1.1",
"phpstan/phpstan": "^0.12", "phpstan/phpstan": "^1.8",
"phpstan/phpstan-mockery": "^0.12", "phpstan/phpstan-mockery": "^1.1",
"phpstan/phpstan-phpunit": "^0.12", "phpstan/phpstan-phpunit": "^1.1",
"phpunit/phpunit": "^8.5 || ^9", "phpunit/phpunit": "^8.5 || ^9",
"slevomat/coding-standard": "^7.0", "ramsey/composer-repl": "^1.4",
"slevomat/coding-standard": "^8.4",
"squizlabs/php_codesniffer": "^3.5", "squizlabs/php_codesniffer": "^3.5",
"vimeo/psalm": "^4.9" "vimeo/psalm": "^4.9"
}, },
@ -4501,7 +4505,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/ramsey/uuid/issues", "issues": "https://github.com/ramsey/uuid/issues",
"source": "https://github.com/ramsey/uuid/tree/4.4.0" "source": "https://github.com/ramsey/uuid/tree/4.5.1"
}, },
"funding": [ "funding": [
{ {
@ -4513,20 +4517,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-08-05T17:58:37+00:00" "time": "2022-09-16T03:22:46+00:00"
}, },
{ {
"name": "sensio/framework-extra-bundle", "name": "sensio/framework-extra-bundle",
"version": "v6.2.6", "version": "v6.2.8",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sensiolabs/SensioFrameworkExtraBundle.git", "url": "https://github.com/sensiolabs/SensioFrameworkExtraBundle.git",
"reference": "6bd976c99ef3f78e31c9490a10ba6dd8901076eb" "reference": "bb962f8aed09e60b0942545f6e4842ffeee4aafd"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/6bd976c99ef3f78e31c9490a10ba6dd8901076eb", "url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/bb962f8aed09e60b0942545f6e4842ffeee4aafd",
"reference": "6bd976c99ef3f78e31c9490a10ba6dd8901076eb", "reference": "bb962f8aed09e60b0942545f6e4842ffeee4aafd",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4589,9 +4593,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/sensiolabs/SensioFrameworkExtraBundle/issues", "issues": "https://github.com/sensiolabs/SensioFrameworkExtraBundle/issues",
"source": "https://github.com/sensiolabs/SensioFrameworkExtraBundle/tree/v6.2.6" "source": "https://github.com/sensiolabs/SensioFrameworkExtraBundle/tree/v6.2.8"
}, },
"time": "2022-01-14T11:51:13+00:00" "time": "2022-09-05T16:44:56+00:00"
}, },
{ {
"name": "sentry/sdk", "name": "sentry/sdk",
@ -4652,16 +4656,16 @@
}, },
{ {
"name": "sentry/sentry", "name": "sentry/sentry",
"version": "3.7.0", "version": "3.8.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/getsentry/sentry-php.git", "url": "https://github.com/getsentry/sentry-php.git",
"reference": "877bca3f0f0ac0fc8ec0a218c6070cccea266795" "reference": "5150776a0a9835c4ea56ff0ecd94e0a109b6c163"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/getsentry/sentry-php/zipball/877bca3f0f0ac0fc8ec0a218c6070cccea266795", "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/5150776a0a9835c4ea56ff0ecd94e0a109b6c163",
"reference": "877bca3f0f0ac0fc8ec0a218c6070cccea266795", "reference": "5150776a0a9835c4ea56ff0ecd94e0a109b6c163",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4680,8 +4684,7 @@
"psr/http-message-implementation": "^1.0", "psr/http-message-implementation": "^1.0",
"psr/log": "^1.0|^2.0|^3.0", "psr/log": "^1.0|^2.0|^3.0",
"symfony/options-resolver": "^3.4.43|^4.4.30|^5.0.11|^6.0", "symfony/options-resolver": "^3.4.43|^4.4.30|^5.0.11|^6.0",
"symfony/polyfill-php80": "^1.17", "symfony/polyfill-php80": "^1.17"
"symfony/polyfill-uuid": "^1.13.1"
}, },
"conflict": { "conflict": {
"php-http/client-common": "1.8.0", "php-http/client-common": "1.8.0",
@ -4707,7 +4710,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "3.7.x-dev" "dev-master": "3.8.x-dev"
} }
}, },
"autoload": { "autoload": {
@ -4741,7 +4744,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/getsentry/sentry-php/issues", "issues": "https://github.com/getsentry/sentry-php/issues",
"source": "https://github.com/getsentry/sentry-php/tree/3.7.0" "source": "https://github.com/getsentry/sentry-php/tree/3.8.1"
}, },
"funding": [ "funding": [
{ {
@ -4753,7 +4756,7 @@
"type": "custom" "type": "custom"
} }
], ],
"time": "2022-07-18T07:55:36+00:00" "time": "2022-09-21T11:01:17+00:00"
}, },
{ {
"name": "sentry/sentry-symfony", "name": "sentry/sentry-symfony",
@ -4872,16 +4875,16 @@
}, },
{ {
"name": "stella-maris/clock", "name": "stella-maris/clock",
"version": "0.1.5", "version": "0.1.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "git@gitlab.com:stella-maris/clock.git", "url": "https://github.com/stella-maris-solutions/clock.git",
"reference": "447879c53ca0b2a762cdbfba5e76ccf4deca9158" "reference": "a94228dac03c9a8411198ce8c8dacbbe99c930c3"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://gitlab.com/api/v4/projects/stella-maris%2Fclock/repository/archive.zip?sha=447879c53ca0b2a762cdbfba5e76ccf4deca9158", "url": "https://api.github.com/repos/stella-maris-solutions/clock/zipball/a94228dac03c9a8411198ce8c8dacbbe99c930c3",
"reference": "447879c53ca0b2a762cdbfba5e76ccf4deca9158", "reference": "a94228dac03c9a8411198ce8c8dacbbe99c930c3",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4911,20 +4914,24 @@
"point in time", "point in time",
"psr20" "psr20"
], ],
"time": "2022-08-05T07:21:25+00:00" "support": {
"issues": "https://github.com/stella-maris-solutions/clock/issues",
"source": "https://github.com/stella-maris-solutions/clock/tree/0.1.6"
},
"time": "2022-09-27T15:03:11+00:00"
}, },
{ {
"name": "symfony/asset", "name": "symfony/asset",
"version": "v6.1.0", "version": "v6.1.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/asset.git", "url": "https://github.com/symfony/asset.git",
"reference": "dc6f572f142627d42ba88a42ea34f79d3776ee6c" "reference": "6065b5edc36442cb1ba98dc40f7c7f6b9e154729"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/asset/zipball/dc6f572f142627d42ba88a42ea34f79d3776ee6c", "url": "https://api.github.com/repos/symfony/asset/zipball/6065b5edc36442cb1ba98dc40f7c7f6b9e154729",
"reference": "dc6f572f142627d42ba88a42ea34f79d3776ee6c", "reference": "6065b5edc36442cb1ba98dc40f7c7f6b9e154729",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4967,7 +4974,7 @@
"description": "Manages URL generation and versioning of web assets such as CSS stylesheets, JavaScript files and image files", "description": "Manages URL generation and versioning of web assets such as CSS stylesheets, JavaScript files and image files",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/asset/tree/v6.1.0" "source": "https://github.com/symfony/asset/tree/v6.1.5"
}, },
"funding": [ "funding": [
{ {
@ -4983,20 +4990,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-04-14T08:23:11+00:00" "time": "2022-08-31T08:17:45+00:00"
}, },
{ {
"name": "symfony/cache", "name": "symfony/cache",
"version": "v6.1.3", "version": "v6.1.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/cache.git", "url": "https://github.com/symfony/cache.git",
"reference": "5cf8e75f02932818889e0609380b8d5427a6c86c" "reference": "9ae74e40fde37aba127ad5db65c5193f41f86f95"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/cache/zipball/5cf8e75f02932818889e0609380b8d5427a6c86c", "url": "https://api.github.com/repos/symfony/cache/zipball/9ae74e40fde37aba127ad5db65c5193f41f86f95",
"reference": "5cf8e75f02932818889e0609380b8d5427a6c86c", "reference": "9ae74e40fde37aba127ad5db65c5193f41f86f95",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -5056,14 +5063,14 @@
"homepage": "https://symfony.com/contributors" "homepage": "https://symfony.com/contributors"
} }
], ],
"description": "Provides an extended PSR-6, PSR-16 (and tags) implementation", "description": "Provides extended PSR-6, PSR-16 (and tags) implementations",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"keywords": [ "keywords": [
"caching", "caching",
"psr6" "psr6"
], ],
"support": { "support": {
"source": "https://github.com/symfony/cache/tree/v6.1.3" "source": "https://github.com/symfony/cache/tree/v6.1.5"
}, },
"funding": [ "funding": [
{ {
@ -5079,7 +5086,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-07-29T07:42:06+00:00" "time": "2022-09-08T09:34:40+00:00"
}, },
{ {
"name": "symfony/cache-contracts", "name": "symfony/cache-contracts",
@ -5239,16 +5246,16 @@
}, },
{ {
"name": "symfony/console", "name": "symfony/console",
"version": "v6.1.4", "version": "v6.1.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/console.git", "url": "https://github.com/symfony/console.git",
"reference": "7fccea8728aa2d431a6725b02b3ce759049fc84d" "reference": "17524a64ebcfab68d237bbed247e9a9917747096"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/7fccea8728aa2d431a6725b02b3ce759049fc84d", "url": "https://api.github.com/repos/symfony/console/zipball/17524a64ebcfab68d237bbed247e9a9917747096",
"reference": "7fccea8728aa2d431a6725b02b3ce759049fc84d", "reference": "17524a64ebcfab68d237bbed247e9a9917747096",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -5315,7 +5322,7 @@
"terminal" "terminal"
], ],
"support": { "support": {
"source": "https://github.com/symfony/console/tree/v6.1.4" "source": "https://github.com/symfony/console/tree/v6.1.5"
}, },
"funding": [ "funding": [
{ {
@ -5331,20 +5338,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-08-26T10:32:31+00:00" "time": "2022-09-03T14:24:42+00:00"
}, },
{ {
"name": "symfony/dependency-injection", "name": "symfony/dependency-injection",
"version": "v6.1.3", "version": "v6.1.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/dependency-injection.git", "url": "https://github.com/symfony/dependency-injection.git",
"reference": "079e336a1880f457b219aecc3d41bef2f1093b0b" "reference": "b9c797c9d56afc290d4265854bafd01b4e379240"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/dependency-injection/zipball/079e336a1880f457b219aecc3d41bef2f1093b0b", "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/b9c797c9d56afc290d4265854bafd01b4e379240",
"reference": "079e336a1880f457b219aecc3d41bef2f1093b0b", "reference": "b9c797c9d56afc290d4265854bafd01b4e379240",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -5402,7 +5409,7 @@
"description": "Allows you to standardize and centralize the way objects are constructed in your application", "description": "Allows you to standardize and centralize the way objects are constructed in your application",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/dependency-injection/tree/v6.1.3" "source": "https://github.com/symfony/dependency-injection/tree/v6.1.5"
}, },
"funding": [ "funding": [
{ {
@ -5418,7 +5425,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-07-20T13:46:29+00:00" "time": "2022-09-28T16:00:52+00:00"
}, },
{ {
"name": "symfony/deprecation-contracts", "name": "symfony/deprecation-contracts",
@ -5489,16 +5496,16 @@
}, },
{ {
"name": "symfony/doctrine-bridge", "name": "symfony/doctrine-bridge",
"version": "v6.1.3", "version": "v6.1.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/doctrine-bridge.git", "url": "https://github.com/symfony/doctrine-bridge.git",
"reference": "68b53b14f337dbc6f92cf6f1656a0adad42482e0" "reference": "ca0fdecd106f81d6bd7f123e77b5830c558e1148"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/68b53b14f337dbc6f92cf6f1656a0adad42482e0", "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/ca0fdecd106f81d6bd7f123e77b5830c558e1148",
"reference": "68b53b14f337dbc6f92cf6f1656a0adad42482e0", "reference": "ca0fdecd106f81d6bd7f123e77b5830c558e1148",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -5584,7 +5591,7 @@
"description": "Provides integration for Doctrine with various Symfony components", "description": "Provides integration for Doctrine with various Symfony components",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/doctrine-bridge/tree/v6.1.3" "source": "https://github.com/symfony/doctrine-bridge/tree/v6.1.5"
}, },
"funding": [ "funding": [
{ {
@ -5600,7 +5607,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-07-29T07:42:06+00:00" "time": "2022-09-08T09:34:40+00:00"
}, },
{ {
"name": "symfony/doctrine-messenger", "name": "symfony/doctrine-messenger",
@ -6045,16 +6052,16 @@
}, },
{ {
"name": "symfony/filesystem", "name": "symfony/filesystem",
"version": "v6.1.4", "version": "v6.1.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/filesystem.git", "url": "https://github.com/symfony/filesystem.git",
"reference": "3f39c04d2630c34019907b02f85672dac99f8659" "reference": "4d216a2beef096edf040a070117c39ca2abce307"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/filesystem/zipball/3f39c04d2630c34019907b02f85672dac99f8659", "url": "https://api.github.com/repos/symfony/filesystem/zipball/4d216a2beef096edf040a070117c39ca2abce307",
"reference": "3f39c04d2630c34019907b02f85672dac99f8659", "reference": "4d216a2beef096edf040a070117c39ca2abce307",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -6088,7 +6095,7 @@
"description": "Provides basic utilities for the filesystem", "description": "Provides basic utilities for the filesystem",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/filesystem/tree/v6.1.4" "source": "https://github.com/symfony/filesystem/tree/v6.1.5"
}, },
"funding": [ "funding": [
{ {
@ -6104,7 +6111,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-08-02T16:17:38+00:00" "time": "2022-09-21T20:29:40+00:00"
}, },
{ {
"name": "symfony/finder", "name": "symfony/finder",
@ -6237,16 +6244,16 @@
}, },
{ {
"name": "symfony/form", "name": "symfony/form",
"version": "v6.1.4", "version": "v6.1.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/form.git", "url": "https://github.com/symfony/form.git",
"reference": "0a1a3ea071a216e2902cebe0b47750ca51f12f27" "reference": "176a358d54c70ec70708c7cbb4e8ac93cc138e6c"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/form/zipball/0a1a3ea071a216e2902cebe0b47750ca51f12f27", "url": "https://api.github.com/repos/symfony/form/zipball/176a358d54c70ec70708c7cbb4e8ac93cc138e6c",
"reference": "0a1a3ea071a216e2902cebe0b47750ca51f12f27", "reference": "176a358d54c70ec70708c7cbb4e8ac93cc138e6c",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -6319,7 +6326,7 @@
"description": "Allows to easily create, process and reuse HTML forms", "description": "Allows to easily create, process and reuse HTML forms",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/form/tree/v6.1.4" "source": "https://github.com/symfony/form/tree/v6.1.5"
}, },
"funding": [ "funding": [
{ {
@ -6335,20 +6342,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-08-09T09:57:18+00:00" "time": "2022-09-09T09:34:27+00:00"
}, },
{ {
"name": "symfony/framework-bundle", "name": "symfony/framework-bundle",
"version": "v6.1.4", "version": "v6.1.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/framework-bundle.git", "url": "https://github.com/symfony/framework-bundle.git",
"reference": "4fabea93ce983b0d86512764ca852c683cc4730b" "reference": "be33f4a8b58e40c3ad876537ece359af374eb030"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/framework-bundle/zipball/4fabea93ce983b0d86512764ca852c683cc4730b", "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/be33f4a8b58e40c3ad876537ece359af374eb030",
"reference": "4fabea93ce983b0d86512764ca852c683cc4730b", "reference": "be33f4a8b58e40c3ad876537ece359af374eb030",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -6470,7 +6477,7 @@
"description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/framework-bundle/tree/v6.1.4" "source": "https://github.com/symfony/framework-bundle/tree/v6.1.5"
}, },
"funding": [ "funding": [
{ {
@ -6486,20 +6493,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-08-26T10:32:31+00:00" "time": "2022-09-29T11:04:32+00:00"
}, },
{ {
"name": "symfony/http-client", "name": "symfony/http-client",
"version": "v6.1.4", "version": "v6.1.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/http-client.git", "url": "https://github.com/symfony/http-client.git",
"reference": "06dc27cbdcee26d6796c226db5266a0d58359739" "reference": "565b0f2ce2c5882e89b3ef5e255d7e0478b9c675"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/http-client/zipball/06dc27cbdcee26d6796c226db5266a0d58359739", "url": "https://api.github.com/repos/symfony/http-client/zipball/565b0f2ce2c5882e89b3ef5e255d7e0478b9c675",
"reference": "06dc27cbdcee26d6796c226db5266a0d58359739", "reference": "565b0f2ce2c5882e89b3ef5e255d7e0478b9c675",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -6554,7 +6561,7 @@
"description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously", "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/http-client/tree/v6.1.4" "source": "https://github.com/symfony/http-client/tree/v6.1.5"
}, },
"funding": [ "funding": [
{ {
@ -6570,7 +6577,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-08-02T16:17:38+00:00" "time": "2022-09-09T09:34:27+00:00"
}, },
{ {
"name": "symfony/http-client-contracts", "name": "symfony/http-client-contracts",
@ -6655,16 +6662,16 @@
}, },
{ {
"name": "symfony/http-foundation", "name": "symfony/http-foundation",
"version": "v6.1.4", "version": "v6.1.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/http-foundation.git", "url": "https://github.com/symfony/http-foundation.git",
"reference": "18e0f106a32887bcebef757e5b39c88e39a08f20" "reference": "90f5d9726942db69490fe467a3acb5e7154fd555"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/18e0f106a32887bcebef757e5b39c88e39a08f20", "url": "https://api.github.com/repos/symfony/http-foundation/zipball/90f5d9726942db69490fe467a3acb5e7154fd555",
"reference": "18e0f106a32887bcebef757e5b39c88e39a08f20", "reference": "90f5d9726942db69490fe467a3acb5e7154fd555",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -6710,7 +6717,7 @@
"description": "Defines an object-oriented layer for the HTTP specification", "description": "Defines an object-oriented layer for the HTTP specification",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/http-foundation/tree/v6.1.4" "source": "https://github.com/symfony/http-foundation/tree/v6.1.5"
}, },
"funding": [ "funding": [
{ {
@ -6726,20 +6733,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-08-19T14:27:04+00:00" "time": "2022-09-17T07:55:45+00:00"
}, },
{ {
"name": "symfony/http-kernel", "name": "symfony/http-kernel",
"version": "v6.1.4", "version": "v6.1.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/http-kernel.git", "url": "https://github.com/symfony/http-kernel.git",
"reference": "2144c53a278254af57fa1e6f71427be656fab6f4" "reference": "bf433ef30c2dfbf1f47449d5dce8be243e8a0012"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/2144c53a278254af57fa1e6f71427be656fab6f4", "url": "https://api.github.com/repos/symfony/http-kernel/zipball/bf433ef30c2dfbf1f47449d5dce8be243e8a0012",
"reference": "2144c53a278254af57fa1e6f71427be656fab6f4", "reference": "bf433ef30c2dfbf1f47449d5dce8be243e8a0012",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -6820,7 +6827,7 @@
"description": "Provides a structured process for converting a Request into a Response", "description": "Provides a structured process for converting a Request into a Response",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/http-kernel/tree/v6.1.4" "source": "https://github.com/symfony/http-kernel/tree/v6.1.5"
}, },
"funding": [ "funding": [
{ {
@ -6836,7 +6843,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-08-26T14:50:30+00:00" "time": "2022-09-30T08:10:57+00:00"
}, },
{ {
"name": "symfony/intl", "name": "symfony/intl",
@ -6997,16 +7004,16 @@
}, },
{ {
"name": "symfony/mailer", "name": "symfony/mailer",
"version": "v6.1.4", "version": "v6.1.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/mailer.git", "url": "https://github.com/symfony/mailer.git",
"reference": "55a7cb8f8518d35e2a039daaec6e1ee20509510e" "reference": "e1b32deb9efc48def0c76b876860ad36f2123e89"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/mailer/zipball/55a7cb8f8518d35e2a039daaec6e1ee20509510e", "url": "https://api.github.com/repos/symfony/mailer/zipball/e1b32deb9efc48def0c76b876860ad36f2123e89",
"reference": "55a7cb8f8518d35e2a039daaec6e1ee20509510e", "reference": "e1b32deb9efc48def0c76b876860ad36f2123e89",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -7051,7 +7058,7 @@
"description": "Helps sending emails", "description": "Helps sending emails",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/mailer/tree/v6.1.4" "source": "https://github.com/symfony/mailer/tree/v6.1.5"
}, },
"funding": [ "funding": [
{ {
@ -7067,20 +7074,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-08-03T05:16:05+00:00" "time": "2022-08-29T06:58:39+00:00"
}, },
{ {
"name": "symfony/maker-bundle", "name": "symfony/maker-bundle",
"version": "v1.45.0", "version": "v1.46.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/maker-bundle.git", "url": "https://github.com/symfony/maker-bundle.git",
"reference": "7ae4ff28ac1b6d6d55591999026040d58b8a3967" "reference": "682ce4fc6602acad33653ba0194d922356fd81f9"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/maker-bundle/zipball/7ae4ff28ac1b6d6d55591999026040d58b8a3967", "url": "https://api.github.com/repos/symfony/maker-bundle/zipball/682ce4fc6602acad33653ba0194d922356fd81f9",
"reference": "7ae4ff28ac1b6d6d55591999026040d58b8a3967", "reference": "682ce4fc6602acad33653ba0194d922356fd81f9",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -7144,7 +7151,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/symfony/maker-bundle/issues", "issues": "https://github.com/symfony/maker-bundle/issues",
"source": "https://github.com/symfony/maker-bundle/tree/v1.45.0" "source": "https://github.com/symfony/maker-bundle/tree/v1.46.0"
}, },
"funding": [ "funding": [
{ {
@ -7160,7 +7167,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-07-26T12:31:45+00:00" "time": "2022-09-23T13:30:21+00:00"
}, },
{ {
"name": "symfony/mercure", "name": "symfony/mercure",
@ -7331,16 +7338,16 @@
}, },
{ {
"name": "symfony/messenger", "name": "symfony/messenger",
"version": "v6.1.3", "version": "v6.1.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/messenger.git", "url": "https://github.com/symfony/messenger.git",
"reference": "8d36b2447ed50a92a21f031bc6d3a3fefbe73bf3" "reference": "2ca8a6b074cd6682dcaeba90464eb90d9455317a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/messenger/zipball/8d36b2447ed50a92a21f031bc6d3a3fefbe73bf3", "url": "https://api.github.com/repos/symfony/messenger/zipball/2ca8a6b074cd6682dcaeba90464eb90d9455317a",
"reference": "8d36b2447ed50a92a21f031bc6d3a3fefbe73bf3", "reference": "2ca8a6b074cd6682dcaeba90464eb90d9455317a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -7397,7 +7404,7 @@
"description": "Helps applications send and receive messages to/from other applications or via message queues", "description": "Helps applications send and receive messages to/from other applications or via message queues",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/messenger/tree/v6.1.3" "source": "https://github.com/symfony/messenger/tree/v6.1.5"
}, },
"funding": [ "funding": [
{ {
@ -7413,20 +7420,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-07-20T13:46:29+00:00" "time": "2022-09-17T07:55:45+00:00"
}, },
{ {
"name": "symfony/mime", "name": "symfony/mime",
"version": "v6.1.4", "version": "v6.1.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/mime.git", "url": "https://github.com/symfony/mime.git",
"reference": "5d1de2d3c52f8ca469c488f4b9e007e9e9cee0b3" "reference": "d521b2204f7dcebe81c1b5fb99ed70dfb6f34b4b"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/mime/zipball/5d1de2d3c52f8ca469c488f4b9e007e9e9cee0b3", "url": "https://api.github.com/repos/symfony/mime/zipball/d521b2204f7dcebe81c1b5fb99ed70dfb6f34b4b",
"reference": "5d1de2d3c52f8ca469c488f4b9e007e9e9cee0b3", "reference": "d521b2204f7dcebe81c1b5fb99ed70dfb6f34b4b",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -7478,7 +7485,7 @@
"mime-type" "mime-type"
], ],
"support": { "support": {
"source": "https://github.com/symfony/mime/tree/v6.1.4" "source": "https://github.com/symfony/mime/tree/v6.1.5"
}, },
"funding": [ "funding": [
{ {
@ -7494,7 +7501,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-08-19T14:27:04+00:00" "time": "2022-09-02T08:05:20+00:00"
}, },
{ {
"name": "symfony/monolog-bridge", "name": "symfony/monolog-bridge",
@ -8297,88 +8304,6 @@
], ],
"time": "2022-05-24T11:49:31+00:00" "time": "2022-05-24T11:49:31+00:00"
}, },
{
"name": "symfony/polyfill-uuid",
"version": "v1.26.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-uuid.git",
"reference": "a41886c1c81dc075a09c71fe6db5b9d68c79de23"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/a41886c1c81dc075a09c71fe6db5b9d68c79de23",
"reference": "a41886c1c81dc075a09c71fe6db5b9d68c79de23",
"shasum": ""
},
"require": {
"php": ">=7.1"
},
"provide": {
"ext-uuid": "*"
},
"suggest": {
"ext-uuid": "For best performance"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "1.26-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
}
},
"autoload": {
"files": [
"bootstrap.php"
],
"psr-4": {
"Symfony\\Polyfill\\Uuid\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Grégoire Pineau",
"email": "lyrixx@lyrixx.info"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony polyfill for uuid functions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
"polyfill",
"portable",
"uuid"
],
"support": {
"source": "https://github.com/symfony/polyfill-uuid/tree/v1.26.0"
},
"funding": [
{
"url": "https://symfony.com/sponsor",
"type": "custom"
},
{
"url": "https://github.com/fabpot",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
"time": "2022-05-24T11:49:31+00:00"
},
{ {
"name": "symfony/process", "name": "symfony/process",
"version": "v6.1.3", "version": "v6.1.3",
@ -8676,16 +8601,16 @@
}, },
{ {
"name": "symfony/psr-http-message-bridge", "name": "symfony/psr-http-message-bridge",
"version": "v2.1.2", "version": "v2.1.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/psr-http-message-bridge.git", "url": "https://github.com/symfony/psr-http-message-bridge.git",
"reference": "22b37c8a3f6b5d94e9cdbd88e1270d96e2f97b34" "reference": "d444f85dddf65c7e57c58d8e5b3a4dbb593b1840"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/22b37c8a3f6b5d94e9cdbd88e1270d96e2f97b34", "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/d444f85dddf65c7e57c58d8e5b3a4dbb593b1840",
"reference": "22b37c8a3f6b5d94e9cdbd88e1270d96e2f97b34", "reference": "d444f85dddf65c7e57c58d8e5b3a4dbb593b1840",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -8744,7 +8669,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/symfony/psr-http-message-bridge/issues", "issues": "https://github.com/symfony/psr-http-message-bridge/issues",
"source": "https://github.com/symfony/psr-http-message-bridge/tree/v2.1.2" "source": "https://github.com/symfony/psr-http-message-bridge/tree/v2.1.3"
}, },
"funding": [ "funding": [
{ {
@ -8760,20 +8685,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2021-11-05T13:13:39+00:00" "time": "2022-09-05T10:34:54+00:00"
}, },
{ {
"name": "symfony/routing", "name": "symfony/routing",
"version": "v6.1.3", "version": "v6.1.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/routing.git", "url": "https://github.com/symfony/routing.git",
"reference": "ef9108b3a88045b7546e808fb404ddb073dd35ea" "reference": "f8c1ebb43d0f39e5ecd12a732ba1952a3dd8455c"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/routing/zipball/ef9108b3a88045b7546e808fb404ddb073dd35ea", "url": "https://api.github.com/repos/symfony/routing/zipball/f8c1ebb43d0f39e5ecd12a732ba1952a3dd8455c",
"reference": "ef9108b3a88045b7546e808fb404ddb073dd35ea", "reference": "f8c1ebb43d0f39e5ecd12a732ba1952a3dd8455c",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -8832,7 +8757,7 @@
"url" "url"
], ],
"support": { "support": {
"source": "https://github.com/symfony/routing/tree/v6.1.3" "source": "https://github.com/symfony/routing/tree/v6.1.5"
}, },
"funding": [ "funding": [
{ {
@ -8848,7 +8773,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-07-20T15:00:40+00:00" "time": "2022-09-09T09:26:14+00:00"
}, },
{ {
"name": "symfony/runtime", "name": "symfony/runtime",
@ -9028,16 +8953,16 @@
}, },
{ {
"name": "symfony/security-core", "name": "symfony/security-core",
"version": "v6.1.4", "version": "v6.1.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/security-core.git", "url": "https://github.com/symfony/security-core.git",
"reference": "a3e6ee1e0bafb22418fb602445631c9d5849055c" "reference": "ddba1c08f084ac851c41eab99243db7c42ebf189"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/security-core/zipball/a3e6ee1e0bafb22418fb602445631c9d5849055c", "url": "https://api.github.com/repos/symfony/security-core/zipball/ddba1c08f084ac851c41eab99243db7c42ebf189",
"reference": "a3e6ee1e0bafb22418fb602445631c9d5849055c", "reference": "ddba1c08f084ac851c41eab99243db7c42ebf189",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -9099,7 +9024,7 @@
"description": "Symfony Security Component - Core Library", "description": "Symfony Security Component - Core Library",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/security-core/tree/v6.1.4" "source": "https://github.com/symfony/security-core/tree/v6.1.5"
}, },
"funding": [ "funding": [
{ {
@ -9115,7 +9040,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-08-19T14:27:04+00:00" "time": "2022-09-17T07:55:45+00:00"
}, },
{ {
"name": "symfony/security-csrf", "name": "symfony/security-csrf",
@ -9190,16 +9115,16 @@
}, },
{ {
"name": "symfony/security-http", "name": "symfony/security-http",
"version": "v6.1.4", "version": "v6.1.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/security-http.git", "url": "https://github.com/symfony/security-http.git",
"reference": "a106f0f55e9942da5aa9181fbf2175512f583449" "reference": "c2d2e1b388c241992f50d7468bc4a3000b4a44cd"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/security-http/zipball/a106f0f55e9942da5aa9181fbf2175512f583449", "url": "https://api.github.com/repos/symfony/security-http/zipball/c2d2e1b388c241992f50d7468bc4a3000b4a44cd",
"reference": "a106f0f55e9942da5aa9181fbf2175512f583449", "reference": "c2d2e1b388c241992f50d7468bc4a3000b4a44cd",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -9253,7 +9178,7 @@
"description": "Symfony Security Component - HTTP Integration", "description": "Symfony Security Component - HTTP Integration",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/security-http/tree/v6.1.4" "source": "https://github.com/symfony/security-http/tree/v6.1.5"
}, },
"funding": [ "funding": [
{ {
@ -9269,20 +9194,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-08-26T10:32:31+00:00" "time": "2022-09-11T09:45:03+00:00"
}, },
{ {
"name": "symfony/serializer", "name": "symfony/serializer",
"version": "v6.1.4", "version": "v6.1.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/serializer.git", "url": "https://github.com/symfony/serializer.git",
"reference": "03e5987dd9bb98038c60c7af3e58500c81c4aec1" "reference": "0986800f0c394bd46443afbf0a05c4386ffa1cd6"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/serializer/zipball/03e5987dd9bb98038c60c7af3e58500c81c4aec1", "url": "https://api.github.com/repos/symfony/serializer/zipball/0986800f0c394bd46443afbf0a05c4386ffa1cd6",
"reference": "03e5987dd9bb98038c60c7af3e58500c81c4aec1", "reference": "0986800f0c394bd46443afbf0a05c4386ffa1cd6",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -9354,7 +9279,7 @@
"description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.", "description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/serializer/tree/v6.1.4" "source": "https://github.com/symfony/serializer/tree/v6.1.5"
}, },
"funding": [ "funding": [
{ {
@ -9370,7 +9295,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-08-26T10:32:31+00:00" "time": "2022-09-29T11:04:32+00:00"
}, },
{ {
"name": "symfony/service-contracts", "name": "symfony/service-contracts",
@ -9459,16 +9384,16 @@
}, },
{ {
"name": "symfony/stopwatch", "name": "symfony/stopwatch",
"version": "v6.1.0", "version": "v6.1.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/stopwatch.git", "url": "https://github.com/symfony/stopwatch.git",
"reference": "77dedae82ce2a26e2e9b481855473fc3b3e4e54d" "reference": "266636bb8f3fbdccc302491df7b3a1b9a8c238a7"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/stopwatch/zipball/77dedae82ce2a26e2e9b481855473fc3b3e4e54d", "url": "https://api.github.com/repos/symfony/stopwatch/zipball/266636bb8f3fbdccc302491df7b3a1b9a8c238a7",
"reference": "77dedae82ce2a26e2e9b481855473fc3b3e4e54d", "reference": "266636bb8f3fbdccc302491df7b3a1b9a8c238a7",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -9501,7 +9426,7 @@
"description": "Provides a way to profile code", "description": "Provides a way to profile code",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/stopwatch/tree/v6.1.0" "source": "https://github.com/symfony/stopwatch/tree/v6.1.5"
}, },
"funding": [ "funding": [
{ {
@ -9517,20 +9442,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-02-25T11:15:52+00:00" "time": "2022-09-28T16:00:52+00:00"
}, },
{ {
"name": "symfony/string", "name": "symfony/string",
"version": "v6.1.4", "version": "v6.1.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/string.git", "url": "https://github.com/symfony/string.git",
"reference": "290972cad7b364e3befaa74ba0ec729800fb161c" "reference": "17c08b068176996a1d7db8d00ffae3c248267016"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/string/zipball/290972cad7b364e3befaa74ba0ec729800fb161c", "url": "https://api.github.com/repos/symfony/string/zipball/17c08b068176996a1d7db8d00ffae3c248267016",
"reference": "290972cad7b364e3befaa74ba0ec729800fb161c", "reference": "17c08b068176996a1d7db8d00ffae3c248267016",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -9586,7 +9511,7 @@
"utf8" "utf8"
], ],
"support": { "support": {
"source": "https://github.com/symfony/string/tree/v6.1.4" "source": "https://github.com/symfony/string/tree/v6.1.5"
}, },
"funding": [ "funding": [
{ {
@ -9602,7 +9527,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-08-12T18:05:43+00:00" "time": "2022-09-02T08:05:20+00:00"
}, },
{ {
"name": "symfony/templating", "name": "symfony/templating",
@ -10059,16 +9984,16 @@
}, },
{ {
"name": "symfony/validator", "name": "symfony/validator",
"version": "v6.1.4", "version": "v6.1.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/validator.git", "url": "https://github.com/symfony/validator.git",
"reference": "14ec426b9c8ca8cf02bd863a645fb0cc0d73db79" "reference": "7d7724f550e0f657a591831a7c31e25678ff8779"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/validator/zipball/14ec426b9c8ca8cf02bd863a645fb0cc0d73db79", "url": "https://api.github.com/repos/symfony/validator/zipball/7d7724f550e0f657a591831a7c31e25678ff8779",
"reference": "14ec426b9c8ca8cf02bd863a645fb0cc0d73db79", "reference": "7d7724f550e0f657a591831a7c31e25678ff8779",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -10147,7 +10072,7 @@
"description": "Provides tools to validate values", "description": "Provides tools to validate values",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/validator/tree/v6.1.4" "source": "https://github.com/symfony/validator/tree/v6.1.5"
}, },
"funding": [ "funding": [
{ {
@ -10163,20 +10088,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-08-12T13:09:07+00:00" "time": "2022-09-17T07:55:45+00:00"
}, },
{ {
"name": "symfony/var-dumper", "name": "symfony/var-dumper",
"version": "v6.1.3", "version": "v6.1.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/var-dumper.git", "url": "https://github.com/symfony/var-dumper.git",
"reference": "d5a5e44a2260c5eb5e746bf4f1fbd12ee6ceb427" "reference": "d0833493fb2413a86f522fb54a1896a7718e98ec"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/d5a5e44a2260c5eb5e746bf4f1fbd12ee6ceb427", "url": "https://api.github.com/repos/symfony/var-dumper/zipball/d0833493fb2413a86f522fb54a1896a7718e98ec",
"reference": "d5a5e44a2260c5eb5e746bf4f1fbd12ee6ceb427", "reference": "d0833493fb2413a86f522fb54a1896a7718e98ec",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -10235,7 +10160,7 @@
"dump" "dump"
], ],
"support": { "support": {
"source": "https://github.com/symfony/var-dumper/tree/v6.1.3" "source": "https://github.com/symfony/var-dumper/tree/v6.1.5"
}, },
"funding": [ "funding": [
{ {
@ -10251,7 +10176,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-07-20T13:46:29+00:00" "time": "2022-09-08T09:34:40+00:00"
}, },
{ {
"name": "symfony/var-exporter", "name": "symfony/var-exporter",
@ -10696,16 +10621,16 @@
}, },
{ {
"name": "twig/twig", "name": "twig/twig",
"version": "v3.4.2", "version": "v3.4.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/twigphp/Twig.git", "url": "https://github.com/twigphp/Twig.git",
"reference": "e07cdd3d430cd7e453c31b36eb5ad6c0c5e43077" "reference": "c38fd6b0b7f370c198db91ffd02e23b517426b58"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/e07cdd3d430cd7e453c31b36eb5ad6c0c5e43077", "url": "https://api.github.com/repos/twigphp/Twig/zipball/c38fd6b0b7f370c198db91ffd02e23b517426b58",
"reference": "e07cdd3d430cd7e453c31b36eb5ad6c0c5e43077", "reference": "c38fd6b0b7f370c198db91ffd02e23b517426b58",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -10756,7 +10681,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/twigphp/Twig/issues", "issues": "https://github.com/twigphp/Twig/issues",
"source": "https://github.com/twigphp/Twig/tree/v3.4.2" "source": "https://github.com/twigphp/Twig/tree/v3.4.3"
}, },
"funding": [ "funding": [
{ {
@ -10768,7 +10693,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-08-12T06:47:24+00:00" "time": "2022-09-28T08:42:51+00:00"
}, },
{ {
"name": "webmozart/assert", "name": "webmozart/assert",
@ -10929,16 +10854,16 @@
}, },
{ {
"name": "zircote/swagger-php", "name": "zircote/swagger-php",
"version": "4.4.8", "version": "4.4.9",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/zircote/swagger-php.git", "url": "https://github.com/zircote/swagger-php.git",
"reference": "34c0980c4cd4f32a1a43f995463001e450d18896" "reference": "0c1cdd31e8cfeb7116c54696aafdab9c778070fd"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/zircote/swagger-php/zipball/34c0980c4cd4f32a1a43f995463001e450d18896", "url": "https://api.github.com/repos/zircote/swagger-php/zipball/0c1cdd31e8cfeb7116c54696aafdab9c778070fd",
"reference": "34c0980c4cd4f32a1a43f995463001e450d18896", "reference": "0c1cdd31e8cfeb7116c54696aafdab9c778070fd",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -11000,9 +10925,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/zircote/swagger-php/issues", "issues": "https://github.com/zircote/swagger-php/issues",
"source": "https://github.com/zircote/swagger-php/tree/4.4.8" "source": "https://github.com/zircote/swagger-php/tree/4.4.9"
}, },
"time": "2022-08-16T23:21:13+00:00" "time": "2022-09-11T20:51:43+00:00"
} }
], ],
"packages-dev": [ "packages-dev": [
@ -11247,16 +11172,16 @@
}, },
{ {
"name": "phpunit/php-code-coverage", "name": "phpunit/php-code-coverage",
"version": "9.2.16", "version": "9.2.17",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
"reference": "2593003befdcc10db5e213f9f28814f5aa8ac073" "reference": "aa94dc41e8661fe90c7316849907cba3007b10d8"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2593003befdcc10db5e213f9f28814f5aa8ac073", "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/aa94dc41e8661fe90c7316849907cba3007b10d8",
"reference": "2593003befdcc10db5e213f9f28814f5aa8ac073", "reference": "aa94dc41e8661fe90c7316849907cba3007b10d8",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -11312,7 +11237,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
"source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.16" "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.17"
}, },
"funding": [ "funding": [
{ {
@ -11320,7 +11245,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2022-08-20T05:26:47+00:00" "time": "2022-08-30T12:24:04+00:00"
}, },
{ {
"name": "phpunit/php-file-iterator", "name": "phpunit/php-file-iterator",
@ -11565,16 +11490,16 @@
}, },
{ {
"name": "phpunit/phpunit", "name": "phpunit/phpunit",
"version": "9.5.23", "version": "9.5.25",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git", "url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "888556852e7e9bbeeedb9656afe46118765ade34" "reference": "3e6f90ca7e3d02025b1d147bd8d4a89fd4ca8a1d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/888556852e7e9bbeeedb9656afe46118765ade34", "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3e6f90ca7e3d02025b1d147bd8d4a89fd4ca8a1d",
"reference": "888556852e7e9bbeeedb9656afe46118765ade34", "reference": "3e6f90ca7e3d02025b1d147bd8d4a89fd4ca8a1d",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -11596,14 +11521,14 @@
"phpunit/php-timer": "^5.0.2", "phpunit/php-timer": "^5.0.2",
"sebastian/cli-parser": "^1.0.1", "sebastian/cli-parser": "^1.0.1",
"sebastian/code-unit": "^1.0.6", "sebastian/code-unit": "^1.0.6",
"sebastian/comparator": "^4.0.5", "sebastian/comparator": "^4.0.8",
"sebastian/diff": "^4.0.3", "sebastian/diff": "^4.0.3",
"sebastian/environment": "^5.1.3", "sebastian/environment": "^5.1.3",
"sebastian/exporter": "^4.0.3", "sebastian/exporter": "^4.0.5",
"sebastian/global-state": "^5.0.1", "sebastian/global-state": "^5.0.1",
"sebastian/object-enumerator": "^4.0.3", "sebastian/object-enumerator": "^4.0.3",
"sebastian/resource-operations": "^3.0.3", "sebastian/resource-operations": "^3.0.3",
"sebastian/type": "^3.0", "sebastian/type": "^3.2",
"sebastian/version": "^3.0.2" "sebastian/version": "^3.0.2"
}, },
"suggest": { "suggest": {
@ -11647,7 +11572,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues", "issues": "https://github.com/sebastianbergmann/phpunit/issues",
"source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.23" "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.25"
}, },
"funding": [ "funding": [
{ {
@ -11657,9 +11582,13 @@
{ {
"url": "https://github.com/sebastianbergmann", "url": "https://github.com/sebastianbergmann",
"type": "github" "type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit",
"type": "tidelift"
} }
], ],
"time": "2022-08-22T14:01:36+00:00" "time": "2022-09-25T03:44:45+00:00"
}, },
{ {
"name": "sebastian/cli-parser", "name": "sebastian/cli-parser",
@ -11830,16 +11759,16 @@
}, },
{ {
"name": "sebastian/comparator", "name": "sebastian/comparator",
"version": "4.0.6", "version": "4.0.8",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/comparator.git", "url": "https://github.com/sebastianbergmann/comparator.git",
"reference": "55f4261989e546dc112258c7a75935a81a7ce382" "reference": "fa0f136dd2334583309d32b62544682ee972b51a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/55f4261989e546dc112258c7a75935a81a7ce382", "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a",
"reference": "55f4261989e546dc112258c7a75935a81a7ce382", "reference": "fa0f136dd2334583309d32b62544682ee972b51a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -11892,7 +11821,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/sebastianbergmann/comparator/issues", "issues": "https://github.com/sebastianbergmann/comparator/issues",
"source": "https://github.com/sebastianbergmann/comparator/tree/4.0.6" "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8"
}, },
"funding": [ "funding": [
{ {
@ -11900,7 +11829,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2020-10-26T15:49:45+00:00" "time": "2022-09-14T12:41:17+00:00"
}, },
{ {
"name": "sebastian/complexity", "name": "sebastian/complexity",
@ -12090,16 +12019,16 @@
}, },
{ {
"name": "sebastian/exporter", "name": "sebastian/exporter",
"version": "4.0.4", "version": "4.0.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/exporter.git", "url": "https://github.com/sebastianbergmann/exporter.git",
"reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9" "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/65e8b7db476c5dd267e65eea9cab77584d3cfff9", "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d",
"reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9", "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -12155,7 +12084,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/sebastianbergmann/exporter/issues", "issues": "https://github.com/sebastianbergmann/exporter/issues",
"source": "https://github.com/sebastianbergmann/exporter/tree/4.0.4" "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5"
}, },
"funding": [ "funding": [
{ {
@ -12163,7 +12092,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2021-11-11T14:18:36+00:00" "time": "2022-09-14T06:03:37+00:00"
}, },
{ {
"name": "sebastian/global-state", "name": "sebastian/global-state",
@ -12518,16 +12447,16 @@
}, },
{ {
"name": "sebastian/type", "name": "sebastian/type",
"version": "3.1.0", "version": "3.2.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/type.git", "url": "https://github.com/sebastianbergmann/type.git",
"reference": "fb44e1cc6e557418387ad815780360057e40753e" "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/type/zipball/fb44e1cc6e557418387ad815780360057e40753e", "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e",
"reference": "fb44e1cc6e557418387ad815780360057e40753e", "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -12539,7 +12468,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "3.1-dev" "dev-master": "3.2-dev"
} }
}, },
"autoload": { "autoload": {
@ -12562,7 +12491,7 @@
"homepage": "https://github.com/sebastianbergmann/type", "homepage": "https://github.com/sebastianbergmann/type",
"support": { "support": {
"issues": "https://github.com/sebastianbergmann/type/issues", "issues": "https://github.com/sebastianbergmann/type/issues",
"source": "https://github.com/sebastianbergmann/type/tree/3.1.0" "source": "https://github.com/sebastianbergmann/type/tree/3.2.0"
}, },
"funding": [ "funding": [
{ {
@ -12570,7 +12499,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2022-08-29T06:55:37+00:00" "time": "2022-09-12T14:47:03+00:00"
}, },
{ {
"name": "sebastian/version", "name": "sebastian/version",
@ -12994,16 +12923,16 @@
}, },
{ {
"name": "symfony/web-profiler-bundle", "name": "symfony/web-profiler-bundle",
"version": "v6.1.2", "version": "v6.1.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/web-profiler-bundle.git", "url": "https://github.com/symfony/web-profiler-bundle.git",
"reference": "6589c2ee4b94d7df2f8ca160ec41265fee3f33eb" "reference": "7e9381a776881a32e59d8072beac6859e2ddbbc7"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/6589c2ee4b94d7df2f8ca160ec41265fee3f33eb", "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/7e9381a776881a32e59d8072beac6859e2ddbbc7",
"reference": "6589c2ee4b94d7df2f8ca160ec41265fee3f33eb", "reference": "7e9381a776881a32e59d8072beac6859e2ddbbc7",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -13052,7 +12981,7 @@
"description": "Provides a development tool that gives detailed information about the execution of any request", "description": "Provides a development tool that gives detailed information about the execution of any request",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/web-profiler-bundle/tree/v6.1.2" "source": "https://github.com/symfony/web-profiler-bundle/tree/v6.1.5"
}, },
"funding": [ "funding": [
{ {
@ -13068,7 +12997,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-06-12T09:53:37+00:00" "time": "2022-08-31T08:17:45+00:00"
}, },
{ {
"name": "theseer/tokenizer", "name": "theseer/tokenizer",

View File

@ -18,6 +18,7 @@ security:
pattern: ^/ pattern: ^/
provider: main provider: main
context: maincontext context: maincontext
user_checker: App\Service\UserChecker
form_login: form_login:
login_path: app_login login_path: app_login
check_path: app_login check_path: app_login
@ -32,8 +33,11 @@ security:
target: app_home target: app_home
access_control: access_control:
- { path: ^/user, roles: [ROLE_ADMIN, ROLE_MODO, ROLE_ANIM, ROLE_USER] } - { path: ^/all, roles: [ROLE_ADMIN, ROLE_MODO, ROLE_MASTER, ROLE_MANAGER, ROLE_USER] }
- { path: ^/modo, roles: [ROLE_ADMIN, ROLE_MODO] } - { path: ^/user, roles: [ROLE_USER] }
- { path: ^/manager, roles: [ROLE_MANAGER] }
- { path: ^/master, roles: [ROLE_MASTER] }
- { path: ^/modo, roles: [ROLE_MODO] }
- { path: ^/admin, roles: [ROLE_ADMIN] } - { path: ^/admin, roles: [ROLE_ADMIN] }
when@test: when@test:

View File

@ -6,23 +6,34 @@ app_home:
app_user_home: app_user_home:
path: /user path: /user
controller: App\Controller\HomeController::homeuser controller: App\Controller\HomeController::homeuser
defaults: { access: admin } defaults: { access: user }
app_admin_home: app_manager_home:
path: /admin path: /manager
controller: App\Controller\HomeController::homeadmin controller: App\Controller\HomeController::homemanager
defaults: { access: admin } defaults: { access: manager }
app_master_home:
path: /master
controller: App\Controller\HomeController::homemaster
defaults: { access: master }
app_modo_home: app_modo_home:
path: /modo path: /modo
controller: App\Controller\HomeController::homemodo controller: App\Controller\HomeController::homemodo
defaults: { access: modo } defaults: { access: modo }
app_admin_home:
path: /admin
controller: App\Controller\HomeController::homeadmin
defaults: { access: admin }
oneup_uploader: oneup_uploader:
resource: . resource: .
type: uploader type: uploader
#== Security ==================================================================================================== #== Security ====================================================================================================
#-- Access public
app_login: app_login:
path: /login path: /login
controller: App\Controller\SecurityController::login controller: App\Controller\SecurityController::login
@ -39,28 +50,21 @@ app_logout:
path: /logout path: /logout
controller: App\Controller\SecurityController::logout controller: App\Controller\SecurityController::logout
app_redirect:
path: /user/redirect/{route}/{id}
controller: App\Controller\SecurityController::redirecturl
defaults: { access: user }
app_noperm: app_noperm:
path: /noperm path: /noperm
controller: App\Controller\SecurityController::noperm controller: App\Controller\SecurityController::noperm
#== Websocket==================================================================================================== #== Websocket====================================================================================================
#-- Access user #-- Access all
app_publish_sample: app_publish_sample:
path: /user/publish/sample/{id} path: /all/publish/sample/{id}
controller: App\Controller\PublishController::sample controller: App\Controller\PublishController::sample
defaults: { access: user } defaults: { access: all }
app_publish: app_publish:
path: /user/publish/{channel}/{id} path: /all/publish/{channel}/{id}
controller: App\Controller\PublishController::publish controller: App\Controller\PublishController::publish
defaults: { access: user } defaults: { access: all }
#== Config ====================================================================================================== #== Config ======================================================================================================
#-- Access admin #-- Access admin
@ -95,7 +99,6 @@ app_admin_config_logo:
defaults: { access: admin } defaults: { access: admin }
#== Theme ======================================================================================================= #== Theme =======================================================================================================
#-- Access admin #-- Access admin
app_admin_theme: app_admin_theme:
path: /admin/theme path: /admin/theme
@ -108,7 +111,7 @@ app_admin_theme_select:
defaults: { name: "", access: admin } defaults: { name: "", access: admin }
#== API ========================================================================================================= #== API =========================================================================================================
#-- Access visiteur #-- Access public
app_rest: app_rest:
path: /docrest path: /docrest
controller: App\Controller\HomeController::docrest controller: App\Controller\HomeController::docrest
@ -146,44 +149,16 @@ app_admin_log_get:
defaults: { access: admin } defaults: { access: admin }
#== Crop ======================================================================================================== #== Crop ========================================================================================================
#-- Access user #-- Access all
app_user_crop01: app_all_crop01:
path: /user/crop01/{type}/{reportinput} path: /all/crop01/{type}/{reportinput}
controller: App\Controller\CropController::crop01 controller: App\Controller\CropController::crop01
app_user_crop02: app_all_crop02:
path: /user/crop02/{type}/{reportinput} path: /all/crop02/{type}/{reportinput}
controller: App\Controller\CropController::crop02 controller: App\Controller\CropController::crop02
#== Minio ======================================================================================================= #== Minio =======================================================================================================
#-- Access admin
app_admin_minio_image:
path: /admin/minio/image
controller: App\Controller\MinioController::image
app_admin_minio_document:
path: /admin/minio/document
controller: App\Controller\MinioController::document
#-- Access modo
app_modo_minio_image:
path: /modo/minio/image
controller: App\Controller\MinioController::image
app_modo_minio_document:
path: /modo/minio/document
controller: App\Controller\MinioController::document
#-- Access user
app_user_minio_image:
path: /user/minio/image
controller: App\Controller\MinioController::image
app_user_minio_document:
path: /user/minio/document
controller: App\Controller\MinioController::document
#-- Access public #-- Access public
app_minio_logo: app_minio_logo:
path: /minio/logo path: /minio/logo
@ -198,7 +173,7 @@ app_minio_document:
controller: App\Controller\MinioController::document controller: App\Controller\MinioController::document
#== Hydra ======================================================================================================= #== Hydra =======================================================================================================
#-- Access public
app_hydra_loginsql: app_hydra_loginsql:
path: /hydra/loginsql path: /hydra/loginsql
controller: App\Controller\HydraController::loginsql controller: App\Controller\HydraController::loginsql
@ -220,13 +195,13 @@ app_hydra_consent:
controller: App\Controller\HydraController::consent controller: App\Controller\HydraController::consent
#== Ckeditor ==================================================================================================== #== Ckeditor ====================================================================================================
#-- Access all
app_ckeditor_upload: app_ckeditor_upload:
path: /user/upload path: /all/upload
controller: App\Controller\MinioController::ckupload controller: App\Controller\MinioController::ckupload
defaults: { access: user } defaults: { access: all }
#== Audit ======================================================================================================= #== Audit =======================================================================================================
#--Access admin #--Access admin
app_admin_audit_renderid: app_admin_audit_renderid:
path: /admin/audit/{entityname}/{entityid} path: /admin/audit/{entityname}/{entityid}
@ -324,8 +299,7 @@ app_modo_niveau02_delete:
controller: App\Controller\Niveau02Controller::delete controller: App\Controller\Niveau02Controller::delete
defaults: { access: modo } defaults: { access: modo }
#-- Access public
#-- Access visiteur
app_niveau02_selectlist: app_niveau02_selectlist:
path: /niveau02/selectlist path: /niveau02/selectlist
controller: App\Controller\Niveau02Controller::selectlist controller: App\Controller\Niveau02Controller::selectlist
@ -383,8 +357,7 @@ app_modo_niveau03_delete:
controller: App\Controller\Niveau03Controller::delete controller: App\Controller\Niveau03Controller::delete
defaults: { access: modo } defaults: { access: modo }
#-- Access public
#-- Access visiteur
app_niveau03_selectlist: app_niveau03_selectlist:
path: /niveau03/selectlist path: /niveau03/selectlist
controller: App\Controller\Niveau03Controller::selectlist controller: App\Controller\Niveau03Controller::selectlist
@ -442,7 +415,7 @@ app_modo_niveau04_delete:
controller: App\Controller\Niveau04Controller::delete controller: App\Controller\Niveau04Controller::delete
defaults: { access: modo } defaults: { access: modo }
#-- Access visiteur #-- Access public
app_niveau04_selectlist: app_niveau04_selectlist:
path: /niveau04/selectlist path: /niveau04/selectlist
controller: App\Controller\Niveau04Controller::selectlist controller: App\Controller\Niveau04Controller::selectlist
@ -545,67 +518,66 @@ app_modo_group_usergroup_changerole:
controller: App\Controller\GroupController::userchangerole controller: App\Controller\GroupController::userchangerole
defaults: { access: modo } defaults: { access: modo }
#-- Access all
#-- Access user app_all_group:
app_user_group: path: /all/group
path: /user/group
controller: App\Controller\GroupController::list controller: App\Controller\GroupController::list
defaults: { access: user } defaults: { access: all }
app_user_group_tablelist: app_all_group_tablelist:
path: /user/group/tablelist path: /all/group/tablelist
controller: App\Controller\GroupController::tablelist controller: App\Controller\GroupController::tablelist
defaults: { access: user } defaults: { access: all }
app_user_group_submit: app_all_group_submit:
path: /user/group/submit path: /all/group/submit
controller: App\Controller\GroupController::submit controller: App\Controller\GroupController::submit
defaults: { access: user } defaults: { access: all }
app_user_group_update: app_all_group_update:
path: /user/group/update/{id} path: /all/group/update/{id}
controller: App\Controller\GroupController::update controller: App\Controller\GroupController::update
defaults: { access: user } defaults: { access: all }
app_user_group_delete: app_all_group_delete:
path: /user/group/delete/{id} path: /all/group/delete/{id}
controller: App\Controller\GroupController::delete controller: App\Controller\GroupController::delete
defaults: { access: user } defaults: { access: all }
app_user_group_users: app_all_group_users:
path: /user/group/users/{id} path: /all/group/users/{id}
controller: App\Controller\GroupController::users controller: App\Controller\GroupController::users
defaults: { access: user } defaults: { access: all }
app_user_group_usersnotin: app_all_group_usersnotin:
path: /user/group/usersnotin/{id} path: /all/group/usersnotin/{id}
controller: App\Controller\GroupController::usersnotin controller: App\Controller\GroupController::usersnotin
defaults: { access: user } defaults: { access: all }
app_user_group_usersin: app_all_group_usersin:
path: /user/group/usersin/{id} path: /all/group/usersin/{id}
controller: App\Controller\GroupController::usersin controller: App\Controller\GroupController::usersin
defaults: { access: user } defaults: { access: all }
app_user_group_usergroup_add: app_all_group_usergroup_add:
path: /user/group/usergroup/add/{groupid}/{userid} path: /all/group/usergroup/add/{groupid}/{userid}
controller: App\Controller\GroupController::useradd controller: App\Controller\GroupController::useradd
defaults: { access: user } defaults: { access: all }
app_user_group_usergroup_del: app_all_group_usergroup_del:
path: /user/group/usergroup/del/{groupid}/{userid} path: /all/group/usergroup/del/{groupid}/{userid}
controller: App\Controller\GroupController::userdel controller: App\Controller\GroupController::userdel
defaults: { access: user } defaults: { access: all }
app_user_group_usergroup_changerole: app_all_group_usergroup_changerole:
path: /user/group/usergroup/changerole/{groupid}/{userid}/{roleid} path: /all/group/usergroup/changerole/{groupid}/{userid}/{roleid}
controller: App\Controller\GroupController::userchangerole controller: App\Controller\GroupController::userchangerole
defaults: { access: user } defaults: { access: all }
app_user_group_userout: app_all_group_userout:
path: /user/group/userout/{id} path: /all/group/userout/{id}
controller: App\Controller\GroupController::userout controller: App\Controller\GroupController::userout
defaults: { access: user } defaults: { access: all }
#== Whitelist =================================================================================================== #== Whitelist ===================================================================================================
#-- Access admin #-- Access admin
@ -634,7 +606,7 @@ app_admin_whitelist_delete:
controller: App\Controller\WhitelistController::delete controller: App\Controller\WhitelistController::delete
defaults: { access: admin } defaults: { access: admin }
#-- Acces visiteur #-- Access public
app_whitelist_is: app_whitelist_is:
path: /whitelist/is path: /whitelist/is
controller: App\Controller\WhitelistController::is controller: App\Controller\WhitelistController::is
@ -682,7 +654,7 @@ app_modo_registration_delete:
controller: App\Controller\RegistrationController::delete controller: App\Controller\RegistrationController::delete
defaults: { access: modo } defaults: { access: modo }
#-- Access visiteur #-- Access public
app_registration: app_registration:
path: /registration path: /registration
controller: App\Controller\RegistrationController::submit controller: App\Controller\RegistrationController::submit
@ -766,33 +738,34 @@ app_modo_user_delete:
controller: App\Controller\UserController::delete controller: App\Controller\UserController::delete
defaults: { access: modo } defaults: { access: modo }
#-- Access user #-- Access all
app_user_user: app_all_user:
path: /user/update path: /all/update
controller: App\Controller\UserController::profil controller: App\Controller\UserController::profil
defaults: { access: user } defaults: { access: all }
app_user_users: app_all_users:
path: /user/users path: /all/users
controller: App\Controller\UserController::list controller: App\Controller\UserController::list
defaults: { access: user } defaults: { access: all }
app_user_user_tablelist: app_all_user_tablelist:
path: /user/user/tablelist path: /all/user/tablelist
controller: App\Controller\UserController::tablelist controller: App\Controller\UserController::tablelist
defaults: { access: user } defaults: { access: all }
app_user_user_selectlist: app_all_user_selectlist:
path: /user/user/selectlist path: /all/user/selectlist
controller: App\Controller\UserController::selectlist controller: App\Controller\UserController::selectlist
defaults: { access: user } defaults: { access: all }
app_user_view: app_all_view:
path: /user/view/{id} path: /all/view/{id}
controller: App\Controller\UserController::view controller: App\Controller\UserController::view
defaults: { access: user } defaults: { access: all }
app_user_preference: app_all_preference:
path: /user/preference path: /all/preference
controller: App\Controller\UserController::preference controller: App\Controller\UserController::preference
defaults: { access: user } defaults: { access: all }

View File

@ -1,70 +0,0 @@
<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
/**
* Auto-generated Migration: Please modify to your needs!
*/
final class Version20220926081328 extends AbstractMigration
{
public function getDescription(): string
{
return '';
}
public function up(Schema $schema): void
{
// this up() migration is auto-generated, please modify it to your needs
$this->addSql('CREATE SEQUENCE niveau03_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
$this->addSql('CREATE SEQUENCE niveau04_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
$this->addSql('CREATE TABLE niveau03 (id INT NOT NULL, niveau02_id INT NOT NULL, label VARCHAR(250) NOT NULL, apikey VARCHAR(255) NOT NULL, PRIMARY KEY(id))');
$this->addSql('CREATE UNIQUE INDEX UNIQ_83F21F0FEA750E8 ON niveau03 (label)');
$this->addSql('CREATE INDEX IDX_83F21F0F4B487845 ON niveau03 (niveau02_id)');
$this->addSql('CREATE TABLE niveau04 (id INT NOT NULL, niveau03_id INT NOT NULL, label VARCHAR(250) NOT NULL, apikey VARCHAR(255) NOT NULL, PRIMARY KEY(id))');
$this->addSql('CREATE UNIQUE INDEX UNIQ_1D968AACEA750E8 ON niveau04 (label)');
$this->addSql('CREATE INDEX IDX_1D968AACF3F41F20 ON niveau04 (niveau03_id)');
$this->addSql('ALTER TABLE niveau03 ADD CONSTRAINT FK_83F21F0F4B487845 FOREIGN KEY (niveau02_id) REFERENCES niveau02 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE niveau04 ADD CONSTRAINT FK_1D968AACF3F41F20 FOREIGN KEY (niveau03_id) REFERENCES niveau03 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE registration ADD niveau03_id INT DEFAULT NULL');
$this->addSql('ALTER TABLE registration ADD niveau04_id INT DEFAULT NULL');
$this->addSql('ALTER TABLE registration ADD CONSTRAINT FK_62A8A7A7F3F41F20 FOREIGN KEY (niveau03_id) REFERENCES niveau03 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE registration ADD CONSTRAINT FK_62A8A7A76E232799 FOREIGN KEY (niveau04_id) REFERENCES niveau04 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('CREATE INDEX IDX_62A8A7A7F3F41F20 ON registration (niveau03_id)');
$this->addSql('CREATE INDEX IDX_62A8A7A76E232799 ON registration (niveau04_id)');
$this->addSql('ALTER TABLE useraccount ADD niveau03_id INT DEFAULT NULL');
$this->addSql('ALTER TABLE useraccount ADD niveau04_id INT DEFAULT NULL');
$this->addSql('ALTER TABLE useraccount ADD CONSTRAINT FK_E157AA1AF3F41F20 FOREIGN KEY (niveau03_id) REFERENCES niveau03 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE useraccount ADD CONSTRAINT FK_E157AA1A6E232799 FOREIGN KEY (niveau04_id) REFERENCES niveau04 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('CREATE INDEX IDX_E157AA1AF3F41F20 ON useraccount (niveau03_id)');
$this->addSql('CREATE INDEX IDX_E157AA1A6E232799 ON useraccount (niveau04_id)');
}
public function down(Schema $schema): void
{
// this down() migration is auto-generated, please modify it to your needs
$this->addSql('CREATE SCHEMA public');
$this->addSql('ALTER TABLE registration DROP CONSTRAINT FK_62A8A7A7F3F41F20');
$this->addSql('ALTER TABLE useraccount DROP CONSTRAINT FK_E157AA1AF3F41F20');
$this->addSql('ALTER TABLE registration DROP CONSTRAINT FK_62A8A7A76E232799');
$this->addSql('ALTER TABLE useraccount DROP CONSTRAINT FK_E157AA1A6E232799');
$this->addSql('DROP SEQUENCE niveau03_id_seq CASCADE');
$this->addSql('DROP SEQUENCE niveau04_id_seq CASCADE');
$this->addSql('ALTER TABLE niveau03 DROP CONSTRAINT FK_83F21F0F4B487845');
$this->addSql('ALTER TABLE niveau04 DROP CONSTRAINT FK_1D968AACF3F41F20');
$this->addSql('DROP TABLE niveau03');
$this->addSql('DROP TABLE niveau04');
$this->addSql('DROP INDEX IDX_E157AA1AF3F41F20');
$this->addSql('DROP INDEX IDX_E157AA1A6E232799');
$this->addSql('ALTER TABLE useraccount DROP niveau03_id');
$this->addSql('ALTER TABLE useraccount DROP niveau04_id');
$this->addSql('DROP INDEX IDX_62A8A7A7F3F41F20');
$this->addSql('DROP INDEX IDX_62A8A7A76E232799');
$this->addSql('ALTER TABLE registration DROP niveau03_id');
$this->addSql('ALTER TABLE registration DROP niveau04_id');
}
}

View File

@ -10,7 +10,7 @@ use Doctrine\Migrations\AbstractMigration;
/** /**
* Auto-generated Migration: Please modify to your needs! * Auto-generated Migration: Please modify to your needs!
*/ */
final class Version20220729073725 extends AbstractMigration final class Version20221002124137 extends AbstractMigration
{ {
public function getDescription(): string public function getDescription(): string
{ {
@ -25,6 +25,8 @@ final class Version20220729073725 extends AbstractMigration
$this->addSql('CREATE SEQUENCE groupe_id_seq INCREMENT BY 1 MINVALUE 1 START 1'); $this->addSql('CREATE SEQUENCE groupe_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
$this->addSql('CREATE SEQUENCE niveau01_id_seq INCREMENT BY 1 MINVALUE 1 START 1'); $this->addSql('CREATE SEQUENCE niveau01_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
$this->addSql('CREATE SEQUENCE niveau02_id_seq INCREMENT BY 1 MINVALUE 1 START 1'); $this->addSql('CREATE SEQUENCE niveau02_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
$this->addSql('CREATE SEQUENCE niveau03_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
$this->addSql('CREATE SEQUENCE niveau04_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
$this->addSql('CREATE SEQUENCE registration_id_seq INCREMENT BY 1 MINVALUE 1 START 1'); $this->addSql('CREATE SEQUENCE registration_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
$this->addSql('CREATE SEQUENCE useraccount_id_seq INCREMENT BY 1 MINVALUE 1 START 1'); $this->addSql('CREATE SEQUENCE useraccount_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
$this->addSql('CREATE SEQUENCE usergroupe_id_seq INCREMENT BY 1 MINVALUE 1 START 1'); $this->addSql('CREATE SEQUENCE usergroupe_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
@ -38,21 +40,31 @@ final class Version20220729073725 extends AbstractMigration
$this->addSql('CREATE TABLE groupe (id INT NOT NULL, owner_id INT DEFAULT NULL, label VARCHAR(250) NOT NULL, description TEXT DEFAULT NULL, email VARCHAR(250) DEFAULT NULL, isopen BOOLEAN DEFAULT false NOT NULL, isworkgroup BOOLEAN DEFAULT false NOT NULL, apikey VARCHAR(255) NOT NULL, ldapfilter TEXT DEFAULT NULL, attributes TEXT DEFAULT NULL, idexternal TEXT DEFAULT NULL, PRIMARY KEY(id))'); $this->addSql('CREATE TABLE groupe (id INT NOT NULL, owner_id INT DEFAULT NULL, label VARCHAR(250) NOT NULL, description TEXT DEFAULT NULL, email VARCHAR(250) DEFAULT NULL, isopen BOOLEAN DEFAULT false NOT NULL, isworkgroup BOOLEAN DEFAULT false NOT NULL, apikey VARCHAR(255) NOT NULL, ldapfilter TEXT DEFAULT NULL, attributes TEXT DEFAULT NULL, idexternal TEXT DEFAULT NULL, PRIMARY KEY(id))');
$this->addSql('CREATE UNIQUE INDEX UNIQ_4B98C21EA750E8 ON groupe (label)'); $this->addSql('CREATE UNIQUE INDEX UNIQ_4B98C21EA750E8 ON groupe (label)');
$this->addSql('CREATE INDEX IDX_4B98C217E3C61F9 ON groupe (owner_id)'); $this->addSql('CREATE INDEX IDX_4B98C217E3C61F9 ON groupe (owner_id)');
$this->addSql('CREATE TABLE niveau01 (id INT NOT NULL, label VARCHAR(250) NOT NULL, apikey VARCHAR(255) NOT NULL, ldapfilter TEXT DEFAULT NULL, attributes TEXT DEFAULT NULL, idexternal TEXT DEFAULT NULL, PRIMARY KEY(id))'); $this->addSql('CREATE TABLE niveau01 (id INT NOT NULL, label VARCHAR(250) NOT NULL, code TEXT DEFAULT NULL, postaladress TEXT DEFAULT NULL, telephonenumber VARCHAR(60) DEFAULT NULL, email VARCHAR(60) DEFAULT NULL, apikey VARCHAR(255) NOT NULL, ldapfilter TEXT DEFAULT NULL, attributes TEXT DEFAULT NULL, idexternal TEXT DEFAULT NULL, PRIMARY KEY(id))');
$this->addSql('CREATE UNIQUE INDEX UNIQ_6DFC7E23EA750E8 ON niveau01 (label)'); $this->addSql('CREATE UNIQUE INDEX UNIQ_6DFC7E23EA750E8 ON niveau01 (label)');
$this->addSql('CREATE TABLE niveau02 (id INT NOT NULL, niveau01_id INT NOT NULL, label VARCHAR(250) NOT NULL, apikey VARCHAR(255) NOT NULL, PRIMARY KEY(id))'); $this->addSql('CREATE TABLE niveau02 (id INT NOT NULL, niveau01_id INT NOT NULL, label VARCHAR(250) NOT NULL, code TEXT DEFAULT NULL, postaladress TEXT DEFAULT NULL, telephonenumber VARCHAR(60) DEFAULT NULL, email VARCHAR(60) DEFAULT NULL, apikey VARCHAR(255) NOT NULL, PRIMARY KEY(id))');
$this->addSql('CREATE UNIQUE INDEX UNIQ_F4F52F99EA750E8 ON niveau02 (label)'); $this->addSql('CREATE UNIQUE INDEX UNIQ_F4F52F99EA750E8 ON niveau02 (label)');
$this->addSql('CREATE INDEX IDX_F4F52F9959FDD7AB ON niveau02 (niveau01_id)'); $this->addSql('CREATE INDEX IDX_F4F52F9959FDD7AB ON niveau02 (niveau01_id)');
$this->addSql('CREATE TABLE registration (id INT NOT NULL, niveau01_id INT NOT NULL, niveau02_id INT DEFAULT NULL, username VARCHAR(128) NOT NULL, firstname VARCHAR(250) DEFAULT NULL, lastname VARCHAR(250) DEFAULT NULL, password VARCHAR(250) NOT NULL, salt VARCHAR(250) NOT NULL, email VARCHAR(128) NOT NULL, isvisible BOOLEAN NOT NULL, postaladress VARCHAR(250) DEFAULT NULL, telephonenumber VARCHAR(60) DEFAULT NULL, job VARCHAR(250) DEFAULT NULL, position VARCHAR(250) DEFAULT NULL, motivation TEXT DEFAULT NULL, note TEXT DEFAULT NULL, keyexpire TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, keyvalue VARCHAR(60) DEFAULT NULL, statut INT NOT NULL, PRIMARY KEY(id))'); $this->addSql('CREATE TABLE niveau03 (id INT NOT NULL, niveau02_id INT NOT NULL, label VARCHAR(250) NOT NULL, code TEXT DEFAULT NULL, postaladress TEXT DEFAULT NULL, telephonenumber VARCHAR(60) DEFAULT NULL, email VARCHAR(60) DEFAULT NULL, apikey VARCHAR(255) NOT NULL, PRIMARY KEY(id))');
$this->addSql('CREATE UNIQUE INDEX UNIQ_83F21F0FEA750E8 ON niveau03 (label)');
$this->addSql('CREATE INDEX IDX_83F21F0F4B487845 ON niveau03 (niveau02_id)');
$this->addSql('CREATE TABLE niveau04 (id INT NOT NULL, niveau03_id INT NOT NULL, label VARCHAR(250) NOT NULL, code TEXT DEFAULT NULL, postaladress TEXT DEFAULT NULL, telephonenumber VARCHAR(60) DEFAULT NULL, email VARCHAR(60) DEFAULT NULL, apikey VARCHAR(255) NOT NULL, PRIMARY KEY(id))');
$this->addSql('CREATE UNIQUE INDEX UNIQ_1D968AACEA750E8 ON niveau04 (label)');
$this->addSql('CREATE INDEX IDX_1D968AACF3F41F20 ON niveau04 (niveau03_id)');
$this->addSql('CREATE TABLE registration (id INT NOT NULL, niveau01_id INT NOT NULL, niveau02_id INT DEFAULT NULL, niveau03_id INT DEFAULT NULL, niveau04_id INT DEFAULT NULL, username VARCHAR(128) NOT NULL, firstname VARCHAR(250) DEFAULT NULL, lastname VARCHAR(250) DEFAULT NULL, password VARCHAR(250) NOT NULL, salt VARCHAR(250) NOT NULL, email VARCHAR(128) NOT NULL, isvisible BOOLEAN NOT NULL, postaladress VARCHAR(250) DEFAULT NULL, telephonenumber VARCHAR(60) DEFAULT NULL, job VARCHAR(250) DEFAULT NULL, position VARCHAR(250) DEFAULT NULL, motivation TEXT DEFAULT NULL, note TEXT DEFAULT NULL, keyexpire TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, keyvalue VARCHAR(60) DEFAULT NULL, statut INT NOT NULL, PRIMARY KEY(id))');
$this->addSql('CREATE UNIQUE INDEX UNIQ_62A8A7A7F85E0677 ON registration (username)'); $this->addSql('CREATE UNIQUE INDEX UNIQ_62A8A7A7F85E0677 ON registration (username)');
$this->addSql('CREATE UNIQUE INDEX UNIQ_62A8A7A7E7927C74 ON registration (email)'); $this->addSql('CREATE UNIQUE INDEX UNIQ_62A8A7A7E7927C74 ON registration (email)');
$this->addSql('CREATE INDEX IDX_62A8A7A759FDD7AB ON registration (niveau01_id)'); $this->addSql('CREATE INDEX IDX_62A8A7A759FDD7AB ON registration (niveau01_id)');
$this->addSql('CREATE INDEX IDX_62A8A7A74B487845 ON registration (niveau02_id)'); $this->addSql('CREATE INDEX IDX_62A8A7A74B487845 ON registration (niveau02_id)');
$this->addSql('CREATE TABLE useraccount (id INT NOT NULL, niveau01_id INT NOT NULL, niveau02_id INT DEFAULT NULL, username VARCHAR(128) NOT NULL, apikey VARCHAR(255) NOT NULL, firstname VARCHAR(250) DEFAULT NULL, lastname VARCHAR(250) DEFAULT NULL, roles TEXT NOT NULL, password VARCHAR(250) NOT NULL, salt VARCHAR(250) NOT NULL, email VARCHAR(128) NOT NULL, avatar VARCHAR(250) DEFAULT \'0\', isvisible BOOLEAN NOT NULL, postaladress TEXT DEFAULT NULL, telephonenumber VARCHAR(60) DEFAULT NULL, job VARCHAR(250) DEFAULT NULL, position VARCHAR(250) DEFAULT NULL, motivation TEXT DEFAULT NULL, note TEXT DEFAULT NULL, preference TEXT DEFAULT NULL, keyexpire TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, keyvalue VARCHAR(60) DEFAULT NULL, visitedate TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, visitecpt INT DEFAULT NULL, PRIMARY KEY(id))'); $this->addSql('CREATE INDEX IDX_62A8A7A7F3F41F20 ON registration (niveau03_id)');
$this->addSql('CREATE INDEX IDX_62A8A7A76E232799 ON registration (niveau04_id)');
$this->addSql('CREATE TABLE useraccount (id INT NOT NULL, niveau01_id INT NOT NULL, niveau02_id INT DEFAULT NULL, niveau03_id INT DEFAULT NULL, niveau04_id INT DEFAULT NULL, username VARCHAR(128) NOT NULL, apikey VARCHAR(255) NOT NULL, firstname VARCHAR(250) DEFAULT NULL, lastname VARCHAR(250) DEFAULT NULL, roles TEXT NOT NULL, password VARCHAR(250) NOT NULL, salt VARCHAR(250) NOT NULL, isactive BOOLEAN NOT NULL, email VARCHAR(128) NOT NULL, avatar VARCHAR(250) DEFAULT \'0\', isvisible BOOLEAN NOT NULL, postaladress TEXT DEFAULT NULL, telephonenumber VARCHAR(60) DEFAULT NULL, job VARCHAR(250) DEFAULT NULL, position VARCHAR(250) DEFAULT NULL, motivation TEXT DEFAULT NULL, note TEXT DEFAULT NULL, preference TEXT DEFAULT NULL, keyexpire TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, keyvalue VARCHAR(60) DEFAULT NULL, visitedate TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, visitecpt INT DEFAULT NULL, PRIMARY KEY(id))');
$this->addSql('CREATE UNIQUE INDEX UNIQ_E157AA1AF85E0677 ON useraccount (username)'); $this->addSql('CREATE UNIQUE INDEX UNIQ_E157AA1AF85E0677 ON useraccount (username)');
$this->addSql('CREATE UNIQUE INDEX UNIQ_E157AA1AE7927C74 ON useraccount (email)'); $this->addSql('CREATE UNIQUE INDEX UNIQ_E157AA1AE7927C74 ON useraccount (email)');
$this->addSql('CREATE INDEX IDX_E157AA1A59FDD7AB ON useraccount (niveau01_id)'); $this->addSql('CREATE INDEX IDX_E157AA1A59FDD7AB ON useraccount (niveau01_id)');
$this->addSql('CREATE INDEX IDX_E157AA1A4B487845 ON useraccount (niveau02_id)'); $this->addSql('CREATE INDEX IDX_E157AA1A4B487845 ON useraccount (niveau02_id)');
$this->addSql('CREATE INDEX IDX_E157AA1AF3F41F20 ON useraccount (niveau03_id)');
$this->addSql('CREATE INDEX IDX_E157AA1A6E232799 ON useraccount (niveau04_id)');
$this->addSql('COMMENT ON COLUMN useraccount.roles IS \'(DC2Type:array)\''); $this->addSql('COMMENT ON COLUMN useraccount.roles IS \'(DC2Type:array)\'');
$this->addSql('COMMENT ON COLUMN useraccount.preference IS \'(DC2Type:array)\''); $this->addSql('COMMENT ON COLUMN useraccount.preference IS \'(DC2Type:array)\'');
$this->addSql('CREATE TABLE usergroupe (id INT NOT NULL, user_id INT DEFAULT NULL, group_id INT DEFAULT NULL, rolegroup INT NOT NULL, apikey VARCHAR(60) NOT NULL, visitedate TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, visitecpt INT DEFAULT NULL, PRIMARY KEY(id))'); $this->addSql('CREATE TABLE usergroupe (id INT NOT NULL, user_id INT DEFAULT NULL, group_id INT DEFAULT NULL, rolegroup INT NOT NULL, apikey VARCHAR(60) NOT NULL, visitedate TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, visitecpt INT DEFAULT NULL, PRIMARY KEY(id))');
@ -78,10 +90,16 @@ final class Version20220729073725 extends AbstractMigration
$this->addSql('CREATE TRIGGER notify_trigger AFTER INSERT OR UPDATE ON messenger_messages FOR EACH ROW EXECUTE PROCEDURE notify_messenger_messages();'); $this->addSql('CREATE TRIGGER notify_trigger AFTER INSERT OR UPDATE ON messenger_messages FOR EACH ROW EXECUTE PROCEDURE notify_messenger_messages();');
$this->addSql('ALTER TABLE groupe ADD CONSTRAINT FK_4B98C217E3C61F9 FOREIGN KEY (owner_id) REFERENCES useraccount (id) ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE'); $this->addSql('ALTER TABLE groupe ADD CONSTRAINT FK_4B98C217E3C61F9 FOREIGN KEY (owner_id) REFERENCES useraccount (id) ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE niveau02 ADD CONSTRAINT FK_F4F52F9959FDD7AB FOREIGN KEY (niveau01_id) REFERENCES niveau01 (id) NOT DEFERRABLE INITIALLY IMMEDIATE'); $this->addSql('ALTER TABLE niveau02 ADD CONSTRAINT FK_F4F52F9959FDD7AB FOREIGN KEY (niveau01_id) REFERENCES niveau01 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE niveau03 ADD CONSTRAINT FK_83F21F0F4B487845 FOREIGN KEY (niveau02_id) REFERENCES niveau02 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE niveau04 ADD CONSTRAINT FK_1D968AACF3F41F20 FOREIGN KEY (niveau03_id) REFERENCES niveau03 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE registration ADD CONSTRAINT FK_62A8A7A759FDD7AB FOREIGN KEY (niveau01_id) REFERENCES niveau01 (id) NOT DEFERRABLE INITIALLY IMMEDIATE'); $this->addSql('ALTER TABLE registration ADD CONSTRAINT FK_62A8A7A759FDD7AB FOREIGN KEY (niveau01_id) REFERENCES niveau01 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE registration ADD CONSTRAINT FK_62A8A7A74B487845 FOREIGN KEY (niveau02_id) REFERENCES niveau02 (id) NOT DEFERRABLE INITIALLY IMMEDIATE'); $this->addSql('ALTER TABLE registration ADD CONSTRAINT FK_62A8A7A74B487845 FOREIGN KEY (niveau02_id) REFERENCES niveau02 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE registration ADD CONSTRAINT FK_62A8A7A7F3F41F20 FOREIGN KEY (niveau03_id) REFERENCES niveau03 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE registration ADD CONSTRAINT FK_62A8A7A76E232799 FOREIGN KEY (niveau04_id) REFERENCES niveau04 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE useraccount ADD CONSTRAINT FK_E157AA1A59FDD7AB FOREIGN KEY (niveau01_id) REFERENCES niveau01 (id) NOT DEFERRABLE INITIALLY IMMEDIATE'); $this->addSql('ALTER TABLE useraccount ADD CONSTRAINT FK_E157AA1A59FDD7AB FOREIGN KEY (niveau01_id) REFERENCES niveau01 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE useraccount ADD CONSTRAINT FK_E157AA1A4B487845 FOREIGN KEY (niveau02_id) REFERENCES niveau02 (id) NOT DEFERRABLE INITIALLY IMMEDIATE'); $this->addSql('ALTER TABLE useraccount ADD CONSTRAINT FK_E157AA1A4B487845 FOREIGN KEY (niveau02_id) REFERENCES niveau02 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE useraccount ADD CONSTRAINT FK_E157AA1AF3F41F20 FOREIGN KEY (niveau03_id) REFERENCES niveau03 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE useraccount ADD CONSTRAINT FK_E157AA1A6E232799 FOREIGN KEY (niveau04_id) REFERENCES niveau04 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE usergroupe ADD CONSTRAINT FK_6C439BE5A76ED395 FOREIGN KEY (user_id) REFERENCES useraccount (id) NOT DEFERRABLE INITIALLY IMMEDIATE'); $this->addSql('ALTER TABLE usergroupe ADD CONSTRAINT FK_6C439BE5A76ED395 FOREIGN KEY (user_id) REFERENCES useraccount (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE usergroupe ADD CONSTRAINT FK_6C439BE5FE54D947 FOREIGN KEY (group_id) REFERENCES groupe (id) NOT DEFERRABLE INITIALLY IMMEDIATE'); $this->addSql('ALTER TABLE usergroupe ADD CONSTRAINT FK_6C439BE5FE54D947 FOREIGN KEY (group_id) REFERENCES groupe (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE usermodo ADD CONSTRAINT FK_D162D6C4A76ED395 FOREIGN KEY (user_id) REFERENCES useraccount (id) NOT DEFERRABLE INITIALLY IMMEDIATE'); $this->addSql('ALTER TABLE usermodo ADD CONSTRAINT FK_D162D6C4A76ED395 FOREIGN KEY (user_id) REFERENCES useraccount (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
@ -92,32 +110,42 @@ final class Version20220729073725 extends AbstractMigration
{ {
// this down() migration is auto-generated, please modify it to your needs // this down() migration is auto-generated, please modify it to your needs
$this->addSql('CREATE SCHEMA public'); $this->addSql('CREATE SCHEMA public');
$this->addSql('ALTER TABLE usergroupe DROP CONSTRAINT FK_6C439BE5FE54D947');
$this->addSql('ALTER TABLE niveau02 DROP CONSTRAINT FK_F4F52F9959FDD7AB');
$this->addSql('ALTER TABLE registration DROP CONSTRAINT FK_62A8A7A759FDD7AB');
$this->addSql('ALTER TABLE useraccount DROP CONSTRAINT FK_E157AA1A59FDD7AB');
$this->addSql('ALTER TABLE usermodo DROP CONSTRAINT FK_D162D6C459FDD7AB');
$this->addSql('ALTER TABLE registration DROP CONSTRAINT FK_62A8A7A74B487845');
$this->addSql('ALTER TABLE useraccount DROP CONSTRAINT FK_E157AA1A4B487845');
$this->addSql('ALTER TABLE groupe DROP CONSTRAINT FK_4B98C217E3C61F9');
$this->addSql('ALTER TABLE usergroupe DROP CONSTRAINT FK_6C439BE5A76ED395');
$this->addSql('ALTER TABLE usermodo DROP CONSTRAINT FK_D162D6C4A76ED395');
$this->addSql('DROP SEQUENCE audit_id_seq CASCADE'); $this->addSql('DROP SEQUENCE audit_id_seq CASCADE');
$this->addSql('DROP SEQUENCE cron_id_seq CASCADE'); $this->addSql('DROP SEQUENCE cron_id_seq CASCADE');
$this->addSql('DROP SEQUENCE groupe_id_seq CASCADE'); $this->addSql('DROP SEQUENCE groupe_id_seq CASCADE');
$this->addSql('DROP SEQUENCE niveau01_id_seq CASCADE'); $this->addSql('DROP SEQUENCE niveau01_id_seq CASCADE');
$this->addSql('DROP SEQUENCE niveau02_id_seq CASCADE'); $this->addSql('DROP SEQUENCE niveau02_id_seq CASCADE');
$this->addSql('DROP SEQUENCE niveau03_id_seq CASCADE');
$this->addSql('DROP SEQUENCE niveau04_id_seq CASCADE');
$this->addSql('DROP SEQUENCE registration_id_seq CASCADE'); $this->addSql('DROP SEQUENCE registration_id_seq CASCADE');
$this->addSql('DROP SEQUENCE useraccount_id_seq CASCADE'); $this->addSql('DROP SEQUENCE useraccount_id_seq CASCADE');
$this->addSql('DROP SEQUENCE usergroupe_id_seq CASCADE'); $this->addSql('DROP SEQUENCE usergroupe_id_seq CASCADE');
$this->addSql('DROP SEQUENCE usermodo_id_seq CASCADE'); $this->addSql('DROP SEQUENCE usermodo_id_seq CASCADE');
$this->addSql('DROP SEQUENCE whitelist_id_seq CASCADE'); $this->addSql('DROP SEQUENCE whitelist_id_seq CASCADE');
$this->addSql('ALTER TABLE groupe DROP CONSTRAINT FK_4B98C217E3C61F9');
$this->addSql('ALTER TABLE niveau02 DROP CONSTRAINT FK_F4F52F9959FDD7AB');
$this->addSql('ALTER TABLE niveau03 DROP CONSTRAINT FK_83F21F0F4B487845');
$this->addSql('ALTER TABLE niveau04 DROP CONSTRAINT FK_1D968AACF3F41F20');
$this->addSql('ALTER TABLE registration DROP CONSTRAINT FK_62A8A7A759FDD7AB');
$this->addSql('ALTER TABLE registration DROP CONSTRAINT FK_62A8A7A74B487845');
$this->addSql('ALTER TABLE registration DROP CONSTRAINT FK_62A8A7A7F3F41F20');
$this->addSql('ALTER TABLE registration DROP CONSTRAINT FK_62A8A7A76E232799');
$this->addSql('ALTER TABLE useraccount DROP CONSTRAINT FK_E157AA1A59FDD7AB');
$this->addSql('ALTER TABLE useraccount DROP CONSTRAINT FK_E157AA1A4B487845');
$this->addSql('ALTER TABLE useraccount DROP CONSTRAINT FK_E157AA1AF3F41F20');
$this->addSql('ALTER TABLE useraccount DROP CONSTRAINT FK_E157AA1A6E232799');
$this->addSql('ALTER TABLE usergroupe DROP CONSTRAINT FK_6C439BE5A76ED395');
$this->addSql('ALTER TABLE usergroupe DROP CONSTRAINT FK_6C439BE5FE54D947');
$this->addSql('ALTER TABLE usermodo DROP CONSTRAINT FK_D162D6C4A76ED395');
$this->addSql('ALTER TABLE usermodo DROP CONSTRAINT FK_D162D6C459FDD7AB');
$this->addSql('DROP TABLE audit'); $this->addSql('DROP TABLE audit');
$this->addSql('DROP TABLE config'); $this->addSql('DROP TABLE config');
$this->addSql('DROP TABLE cron'); $this->addSql('DROP TABLE cron');
$this->addSql('DROP TABLE groupe'); $this->addSql('DROP TABLE groupe');
$this->addSql('DROP TABLE niveau01'); $this->addSql('DROP TABLE niveau01');
$this->addSql('DROP TABLE niveau02'); $this->addSql('DROP TABLE niveau02');
$this->addSql('DROP TABLE niveau03');
$this->addSql('DROP TABLE niveau04');
$this->addSql('DROP TABLE registration'); $this->addSql('DROP TABLE registration');
$this->addSql('DROP TABLE useraccount'); $this->addSql('DROP TABLE useraccount');
$this->addSql('DROP TABLE usergroupe'); $this->addSql('DROP TABLE usergroupe');

View File

@ -98,6 +98,7 @@ class InitCommand extends Command
$user->setApikey(Uuid::uuid4()); $user->setApikey(Uuid::uuid4());
$user->setAvatar('admin.jpg'); $user->setAvatar('admin.jpg');
$user->setIsVisible(true); $user->setIsVisible(true);
$user->setIsActive(true);
$user->setNiveau01($niveau01); $user->setNiveau01($niveau01);
$this->em->persist($user); $this->em->persist($user);

View File

@ -321,6 +321,7 @@ class SynchroCommand extends Command
if (!$user) { if (!$user) {
$user = new User(); $user = new User();
$user->setUsername($ldapentry[$this->username]); $user->setUsername($ldapentry[$this->username]);
$user->setIsactive(true);
$user->setIsvisible(true); $user->setIsvisible(true);
$user->setApikey(Uuid::uuid4()); $user->setApikey(Uuid::uuid4());
$user->setRole('ROLE_USER'); $user->setRole('ROLE_USER');
@ -423,8 +424,13 @@ class SynchroCommand extends Command
if (!in_array($user->getUsername(), $tbusers)) { if (!in_array($user->getUsername(), $tbusers)) {
if ($user->getId() > 0) { if ($user->getId() > 0) {
$this->writeln(' > '.$user->getUSername()); $this->writeln(' > '.$user->getUSername());
$this->em->remove($user); try {
$this->em->flush(); $this->em->remove($user);
$this->em->flush();
} catch (\Exception $e) {
$user->setIsactive(false);
$this->em->flush();
}
} }
} }
} }
@ -517,7 +523,7 @@ class SynchroCommand extends Command
$this->writeln(''); $this->writeln('');
$this->writeln('== USER ============================================='); $this->writeln('== USER =============================================');
$users = $this->em->getRepository("App\Entity\User")->findAll(); $users = $this->em->getRepository("App\Entity\User")->findBy(['isactive' => true]);
$attributes = $this->ldap->listAttributesUser(); $attributes = $this->ldap->listAttributesUser();
foreach ($users as $user) { foreach ($users as $user) {
$filter = str_replace('*', $user->getUsername(), $this->filteruser); $filter = str_replace('*', $user->getUsername(), $this->filteruser);
@ -533,7 +539,7 @@ class SynchroCommand extends Command
$ldapentrys = $this->ldap->search($this->filteruser, $attributes, $this->baseuser); $ldapentrys = $this->ldap->search($this->filteruser, $attributes, $this->baseuser);
foreach ($ldapentrys as $ldapentry) { foreach ($ldapentrys as $ldapentry) {
$user = $this->em->getRepository("App\Entity\User")->findOneBy(['username' => $ldapentry['uid']]); $user = $this->em->getRepository("App\Entity\User")->findOneBy(['username' => $ldapentry['uid'], 'isactive' => true]);
if (!$user) { if (!$user) {
$this->writeln($ldapentry['uid'].' = DELETE'); $this->writeln($ldapentry['uid'].' = DELETE');
$dn = $this->ldap->getUserDN($ldapentry['uid']); $dn = $this->ldap->getUserDN($ldapentry['uid']);
@ -860,6 +866,7 @@ class SynchroCommand extends Command
if (!$user) { if (!$user) {
$user = new User(); $user = new User();
$user->setUsername($nineuser->userlogin); $user->setUsername($nineuser->userlogin);
$user->setIsactive(true);
$user->setIsvisible(true); $user->setIsvisible(true);
$user->setApikey(Uuid::uuid4()); $user->setApikey(Uuid::uuid4());
$user->setRole('ROLE_USER'); $user->setRole('ROLE_USER');
@ -957,8 +964,13 @@ class SynchroCommand extends Command
if (!in_array($user->getUsername(), $tbusers)) { if (!in_array($user->getUsername(), $tbusers)) {
if ($user->getId() > 0) { if ($user->getId() > 0) {
$this->writeln(' > '.$user->getUsername()); $this->writeln(' > '.$user->getUsername());
$this->em->remove($user); try {
$this->em->flush(); $this->em->remove($user);
$this->em->flush();
} catch (\Exception $e) {
$user->setIsactive(false);
$this->em->flush();
}
} }
} }
} }

View File

@ -24,7 +24,7 @@ class GroupController extends AbstractController
return $this->render($this->twig.'list.html.twig', [ return $this->render($this->twig.'list.html.twig', [
'useheader' => true, 'useheader' => true,
'usemenu' => false, 'usemenu' => false,
'usesidebar' => ('user' != $access), 'usesidebar' => ('all' != $access),
'access' => $access, 'access' => $access,
]); ]);
} }
@ -43,7 +43,7 @@ class GroupController extends AbstractController
// Nombre total d'enregistrement // Nombre total d'enregistrement
$qb = $em->getManager()->createQueryBuilder(); $qb = $em->getManager()->createQueryBuilder();
$qb->select('COUNT(entity)')->from($this->entity, 'entity')->getQuery()->getSingleScalarResult(); $qb->select('COUNT(entity)')->from($this->entity, 'entity')->getQuery()->getSingleScalarResult();
if ('user' == $access) { if ('all' == $access) {
$qb->from('App:UserGroup', 'usergroup') $qb->from('App:UserGroup', 'usergroup')
->andWhere('entity.isworkgroup=:flag') ->andWhere('entity.isworkgroup=:flag')
->andWhere('entity.id=usergroup.group') ->andWhere('entity.id=usergroup.group')
@ -66,7 +66,7 @@ class GroupController extends AbstractController
->setParameter('value', '%'.$search['value'].'%') ->setParameter('value', '%'.$search['value'].'%')
->getQuery() ->getQuery()
->getSingleScalarResult(); ->getSingleScalarResult();
if ('user' == $access) { if ('all' == $access) {
$qb->from('App:UserGroup', 'usergroup') $qb->from('App:UserGroup', 'usergroup')
->andWhere('entity.isworkgroup=:flag') ->andWhere('entity.isworkgroup=:flag')
->andWhere('entity.id=usergroup.group') ->andWhere('entity.id=usergroup.group')
@ -89,7 +89,7 @@ class GroupController extends AbstractController
$qb = $em->getManager()->createQueryBuilder(); $qb = $em->getManager()->createQueryBuilder();
$qb->select('entity') $qb->select('entity')
->from($this->entity, 'entity'); ->from($this->entity, 'entity');
if ('user' == $access) { if ('all' == $access) {
$qb->from('App:UserGroup', 'usergroup') $qb->from('App:UserGroup', 'usergroup')
->andWhere('entity.isworkgroup=:flag') ->andWhere('entity.isworkgroup=:flag')
->andWhere('entity.id=usergroup.group') ->andWhere('entity.id=usergroup.group')
@ -146,7 +146,7 @@ class GroupController extends AbstractController
} }
break; break;
case 'user': case 'all':
if ($this->canupdate($access, $data, $em, false)) { if ($this->canupdate($access, $data, $em, false)) {
$action .= "<a href='".$this->generateUrl(str_replace('_admin_', '_'.$access.'_', $this->route).'_update', ['id' => $data->getId()])."'><i class='fa fa-file fa-fw fa-2x'></i></a>"; $action .= "<a href='".$this->generateUrl(str_replace('_admin_', '_'.$access.'_', $this->route).'_update', ['id' => $data->getId()])."'><i class='fa fa-file fa-fw fa-2x'></i></a>";
} }
@ -164,8 +164,10 @@ class GroupController extends AbstractController
$userinfo = ''; $userinfo = '';
if ($data->getOwner()) { if ($data->getOwner()) {
$userinfo .= "<img src='".$this->generateUrl('app_minio_image', ['file' => 'avatar/'.$data->getOwner()->getAvatar()])."' class='avatar'>"; $userinfo .= '<div class="d-flex align-items-center">';
$userinfo .= '<br>'.$data->getOwner()->getUsername(); $userinfo .= "<img src='".$this->generateUrl('app_minio_image', ['file' => 'avatar/'.$data->getOwner()->getAvatar()])."' class='avatar me-2'>";
$userinfo .= '<div>'.$data->getOwner()->getFullname().'</div>';
$userinfo .= '</div>';
} }
$visitecpt = 0; $visitecpt = 0;
@ -194,7 +196,7 @@ class GroupController extends AbstractController
// Initialisation de l'enregistrement // Initialisation de l'enregistrement
$data = new Entity(); $data = new Entity();
$data->setApikey(Uuid::uuid4()); $data->setApikey(Uuid::uuid4());
if ('user' == $access) { if ('all' == $access) {
$data->setOwner($this->getUser()); $data->setOwner($this->getUser());
$data->setIsworkgroup(true); $data->setIsworkgroup(true);
} }
@ -235,12 +237,12 @@ class GroupController extends AbstractController
return $this->render($this->twig.'edit.html.twig', [ return $this->render($this->twig.'edit.html.twig', [
'useheader' => true, 'useheader' => true,
'usemenu' => false, 'usemenu' => false,
'usesidebar' => ('user' != $access), 'usesidebar' => ('all' != $access),
'mode' => 'submit', 'mode' => 'submit',
'access' => $access, 'access' => $access,
'form' => $form->createView(), 'form' => $form->createView(),
$this->data => $data, $this->data => $data,
'maxsize' => ('user' == $access ? 1200 : null), 'maxsize' => ('all' == $access ? 1200 : null),
]); ]);
} }
@ -284,12 +286,12 @@ class GroupController extends AbstractController
return $this->render($this->twig.'edit.html.twig', [ return $this->render($this->twig.'edit.html.twig', [
'useheader' => true, 'useheader' => true,
'usemenu' => false, 'usemenu' => false,
'usesidebar' => ('user' != $access), 'usesidebar' => ('all' != $access),
$this->data => $data, $this->data => $data,
'mode' => 'update', 'mode' => 'update',
'access' => $access, 'access' => $access,
'form' => $form->createView(), 'form' => $form->createView(),
'maxsize' => ('user' == $access ? 1200 : null), 'maxsize' => ('all' == $access ? 1200 : null),
]); ]);
} }
@ -332,7 +334,7 @@ class GroupController extends AbstractController
return $this->render($this->twig.'users.html.twig', [ return $this->render($this->twig.'users.html.twig', [
'useheader' => true, 'useheader' => true,
'usemenu' => false, 'usemenu' => false,
'usesidebar' => ('user' != $access), 'usesidebar' => ('all' != $access),
'access' => $access, 'access' => $access,
$this->data => $data, $this->data => $data,
]); ]);
@ -375,7 +377,9 @@ class GroupController extends AbstractController
$qb->select('COUNT(user)') $qb->select('COUNT(user)')
->from('App:User', 'user') ->from('App:User', 'user')
->where($qb->expr()->not($qb->expr()->exists($sub->getDQL()))) ->where($qb->expr()->not($qb->expr()->exists($sub->getDQL())))
->setParameter('groupid', $id); ->andWhere('user.isactive=:isactive')
->setParameter('groupid', $id)
->setParameter('isactive', true);
break; break;
case 'modo': case 'modo':
@ -386,11 +390,13 @@ class GroupController extends AbstractController
->where($qb->expr()->not($qb->expr()->exists($sub->getDQL()))) ->where($qb->expr()->not($qb->expr()->exists($sub->getDQL())))
->andWhere('usermodo.niveau01 = user.niveau01') ->andWhere('usermodo.niveau01 = user.niveau01')
->andWhere('usermodo.user = :userid') ->andWhere('usermodo.user = :userid')
->andWhere('user.isactive=:isactive')
->setParameter('userid', $usermodo) ->setParameter('userid', $usermodo)
->setParameter('groupid', $id); ->setParameter('groupid', $id)
->setParameter('isactive', true);
break; break;
case 'user': case 'all':
$niveau01 = $this->getUser()->getNiveau01(); $niveau01 = $this->getUser()->getNiveau01();
$niveau02 = $this->getUser()->getNiveau02(); $niveau02 = $this->getUser()->getNiveau02();
$niveau03 = $this->getUser()->getNiveau03(); $niveau03 = $this->getUser()->getNiveau03();
@ -399,7 +405,9 @@ class GroupController extends AbstractController
$qb->select('COUNT(user)') $qb->select('COUNT(user)')
->from('App:User', 'user') ->from('App:User', 'user')
->where($qb->expr()->not($qb->expr()->exists($sub->getDQL()))) ->where($qb->expr()->not($qb->expr()->exists($sub->getDQL())))
->setParameter('groupid', $id); ->andWhere('user.isactive=:isactive')
->setParameter('groupid', $id)
->setParameter('isactive', true);
switch ($request->getSession()->get('scopeannu')) { switch ($request->getSession()->get('scopeannu')) {
case 1: case 1:
@ -434,8 +442,10 @@ class GroupController extends AbstractController
->from('App:User', 'user') ->from('App:User', 'user')
->where('user.username LIKE :value OR user.email LIKE :value') ->where('user.username LIKE :value OR user.email LIKE :value')
->andWhere($qb->expr()->not($qb->expr()->exists($sub->getDQL()))) ->andWhere($qb->expr()->not($qb->expr()->exists($sub->getDQL())))
->andWhere('user.isactive=:isactive')
->setParameter('value', '%'.$search['value'].'%') ->setParameter('value', '%'.$search['value'].'%')
->setParameter('groupid', $id) ->setParameter('groupid', $id)
->setParameter('isactive', true)
->getQuery() ->getQuery()
->getSingleScalarResult(); ->getSingleScalarResult();
break; break;
@ -449,21 +459,25 @@ class GroupController extends AbstractController
->andWhere($qb->expr()->not($qb->expr()->exists($sub->getDQL()))) ->andWhere($qb->expr()->not($qb->expr()->exists($sub->getDQL())))
->andWhere('usermodo.niveau01 = user.niveau01') ->andWhere('usermodo.niveau01 = user.niveau01')
->andWhere('usermodo.user = :userid') ->andWhere('usermodo.user = :userid')
->andWhere('user.isactive=:isactive')
->setParameter('userid', $usermodo) ->setParameter('userid', $usermodo)
->setParameter('value', '%'.$search['value'].'%') ->setParameter('value', '%'.$search['value'].'%')
->setParameter('groupid', $id) ->setParameter('groupid', $id)
->setParameter('isactive', true)
->getQuery() ->getQuery()
->getSingleScalarResult(); ->getSingleScalarResult();
break; break;
case 'user': case 'all':
$qb = $em->getManager()->createQueryBuilder() $qb = $em->getManager()->createQueryBuilder()
->select('COUNT(user)') ->select('COUNT(user)')
->from('App:User', 'user') ->from('App:User', 'user')
->where('user.username LIKE :value OR user.email LIKE :value') ->where('user.username LIKE :value OR user.email LIKE :value')
->andWhere($qb->expr()->not($qb->expr()->exists($sub->getDQL()))) ->andWhere($qb->expr()->not($qb->expr()->exists($sub->getDQL())))
->andWhere('user.isactive=:isactive')
->setParameter('value', '%'.$search['value'].'%') ->setParameter('value', '%'.$search['value'].'%')
->setParameter('groupid', $id); ->setParameter('groupid', $id)
->setParameter('isactive', true);
switch ($request->getSession()->get('scopeannu')) { switch ($request->getSession()->get('scopeannu')) {
case 1: case 1:
@ -498,23 +512,23 @@ class GroupController extends AbstractController
// Parcours des Enregistrement // Parcours des Enregistrement
$qb = $em->getManager()->createQueryBuilder(); $qb = $em->getManager()->createQueryBuilder();
$qb->select('user')->from('App:User', 'user'); $qb->select('user')->from('App:User', 'user')->Where('user.isactive=:isactive')->setParameter('isactive', true);
switch ($access) { switch ($access) {
case 'admin': case 'admin':
$qb->where($qb->expr()->not($qb->expr()->exists($sub->getDQL()))); $qb->andWhere($qb->expr()->not($qb->expr()->exists($sub->getDQL())));
break; break;
case 'modo': case 'modo':
$qb->from('App:UserModo', 'usermodo') $qb->from('App:UserModo', 'usermodo')
->where($qb->expr()->not($qb->expr()->exists($sub->getDQL()))) ->andWhere($qb->expr()->not($qb->expr()->exists($sub->getDQL())))
->andWhere('usermodo.niveau01 = user.niveau01') ->andWhere('usermodo.niveau01 = user.niveau01')
->andWhere('usermodo.user = :userid') ->andWhere('usermodo.user = :userid')
->setParameter('userid', $usermodo); ->setParameter('userid', $usermodo);
break; break;
case 'user': case 'all':
$qb->where($qb->expr()->not($qb->expr()->exists($sub->getDQL()))); $qb->andWhere($qb->expr()->not($qb->expr()->exists($sub->getDQL())));
switch ($request->getSession()->get('scopeannu')) { switch ($request->getSession()->get('scopeannu')) {
case 1: case 1:
$qb->andWhere('user.niveau01 = :niveau01')->setParameter('niveau01', $niveau01); $qb->andWhere('user.niveau01 = :niveau01')->setParameter('niveau01', $niveau01);
@ -598,7 +612,7 @@ class GroupController extends AbstractController
// Nombre total d'enregistrement // Nombre total d'enregistrement
$qb = $em->getManager()->createQueryBuilder(); $qb = $em->getManager()->createQueryBuilder();
if ('admin' == $access || 'user' == $access) { if ('admin' == $access || 'all' == $access) {
$qb->select('COUNT(user)') $qb->select('COUNT(user)')
->from('App:User', 'user') ->from('App:User', 'user')
->where($qb->expr()->exists($sub->getDQL())) ->where($qb->expr()->exists($sub->getDQL()))
@ -620,7 +634,7 @@ class GroupController extends AbstractController
if ('' == $search['value']) { if ('' == $search['value']) {
$totalf = $total; $totalf = $total;
} else { } else {
if ('admin' == $access || 'user' == $access) { if ('admin' == $access || 'all' == $access) {
$totalf = $em->getManager()->createQueryBuilder() $totalf = $em->getManager()->createQueryBuilder()
->select('COUNT(user)') ->select('COUNT(user)')
->from('App:User', 'user') ->from('App:User', 'user')
@ -659,7 +673,7 @@ class GroupController extends AbstractController
$qb = $em->getManager()->createQueryBuilder(); $qb = $em->getManager()->createQueryBuilder();
$qb->select('user')->from('App:User', 'user'); $qb->select('user')->from('App:User', 'user');
if ('admin' == $access || 'user' == $access) { if ('admin' == $access || 'all' == $access) {
$qb->where($qb->expr()->exists($sub->getDQL())); $qb->where($qb->expr()->exists($sub->getDQL()));
} else { } else {
$qb->from('App:UserModo', 'usermodo') $qb->from('App:UserModo', 'usermodo')
@ -715,7 +729,7 @@ class GroupController extends AbstractController
$rolegroup = (0 == $usergroup->getRolegroup() ? 'Utilisateur' : (50 == $usergroup->getRolegroup() ? 'Collaborateur' : 'Gestionnaire')); $rolegroup = (0 == $usergroup->getRolegroup() ? 'Utilisateur' : (50 == $usergroup->getRolegroup() ? 'Collaborateur' : 'Gestionnaire'));
} }
$tmp = ['DT_RowId' => 'user'.$data->getId(), $action, $avatar, $data->getUsername(), $data->getEmail(), $rolegroup]; $tmp = ['DT_RowId' => 'user'.$data->getId(), $action, $avatar, $data->getUsername().(!$data->isIsactive() ? '<br><small><i>Inactif</i></small>' : ''), $data->getEmail(), $rolegroup];
array_push($output['data'], $tmp); array_push($output['data'], $tmp);
} }
@ -842,7 +856,7 @@ class GroupController extends AbstractController
break; break;
case 'modo': return false; case 'modo': return false;
break; break;
case 'user': return $request->getSession()->get('submitgroup'); case 'all': return $request->getSession()->get('submitgroup');
break; break;
} }
throw $this->createAccessDeniedException('Permission denied'); throw $this->createAccessDeniedException('Permission denied');
@ -854,7 +868,7 @@ class GroupController extends AbstractController
switch ($access) { switch ($access) {
case 'admin': $toreturn = ($entity->getId() > 0); case 'admin': $toreturn = ($entity->getId() > 0);
break; break;
case 'user': case 'all':
if (!$entity->isIsworkgroup() || $entity->getOwner() != $this->getUser()) { if (!$entity->isIsworkgroup() || $entity->getOwner() != $this->getUser()) {
$toreturn = false; $toreturn = false;
} else { } else {
@ -877,7 +891,7 @@ class GroupController extends AbstractController
break; break;
case 'modo': $toreturn = ($entity->getId() > 0); case 'modo': $toreturn = ($entity->getId() > 0);
break; break;
case 'user': case 'all':
$usergroup = $em->getRepository("App\Entity\UserGroup")->findOneBy(['user' => $this->getUser(), 'group' => $entity]); $usergroup = $em->getRepository("App\Entity\UserGroup")->findOneBy(['user' => $this->getUser(), 'group' => $entity]);
if (!$usergroup || !$entity->isIsworkgroup() || $entity->getId() < 0) { if (!$usergroup || !$entity->isIsworkgroup() || $entity->getId() < 0) {
$toreturn = false; $toreturn = false;
@ -901,7 +915,7 @@ class GroupController extends AbstractController
break; break;
case 'modo': $toreturn = ($entity->getId() > 0); case 'modo': $toreturn = ($entity->getId() > 0);
break; break;
case 'user': case 'all':
$usergroup = $em->getRepository("App\Entity\UserGroup")->findOneBy(['user' => $this->getUser(), 'group' => $entity]); $usergroup = $em->getRepository("App\Entity\UserGroup")->findOneBy(['user' => $this->getUser(), 'group' => $entity]);
if (!$usergroup || !$entity->isIsworkgroup() || $entity->getId() < 0) { if (!$usergroup || !$entity->isIsworkgroup() || $entity->getId() < 0) {
$toreturn = false; $toreturn = false;

View File

@ -198,7 +198,7 @@ class RegistrationController extends AbstractController
// Création du formulaire // Création du formulaire
$form = $this->createForm(Form::class, $data, [ $form = $this->createForm(Form::class, $data, [
'mode' => 'submit', 'mode' => 'submit',
'access' => 'user', 'access' => 'all',
'userid' => null, 'userid' => null,
'appMasteridentity' => $this->GetParameter('appMasteridentity'), 'appMasteridentity' => $this->GetParameter('appMasteridentity'),
'appNiveau01label' => $this->GetParameter('appNiveau01label'), 'appNiveau01label' => $this->GetParameter('appNiveau01label'),
@ -505,6 +505,7 @@ class RegistrationController extends AbstractController
$user->setFirstname($data->getFirstname()); $user->setFirstname($data->getFirstname());
$user->setSalt($data->getSalt()); $user->setSalt($data->getSalt());
$user->setPasswordDirect($data->getPassword()); $user->setPasswordDirect($data->getPassword());
$user->setIsactive(true);
$user->setIsvisible($data->isIsvisible()); $user->setIsvisible($data->isIsvisible());
$user->setMotivation($data->getMotivation()); $user->setMotivation($data->getMotivation());
$user->setNote($data->getNote()); $user->setNote($data->getNote());

View File

@ -135,6 +135,9 @@ class SecurityController extends AbstractController
$user = $this->submituser($username, $firstname, $lastname, $email, $avatar, $niveau01, $em); $user = $this->submituser($username, $firstname, $lastname, $email, $avatar, $niveau01, $em);
$user = $em->getRepository('App\Entity\Group')->calculateSSOGroup($user, $attributes); $user = $em->getRepository('App\Entity\Group')->calculateSSOGroup($user, $attributes);
} elseif ($this->getParameter('casAutoupdate')) { } elseif ($this->getParameter('casAutoupdate')) {
if (!$user->Isactive()) {
return $this->redirect($this->generateUrl('app_noperm'));
}
$this->submitSSONiveau01($attributes, $em); $this->submitSSONiveau01($attributes, $em);
$this->submitSSOGroup($attributes, $em); $this->submitSSOGroup($attributes, $em);
$this->updateuser($user, $firstname, $lastname, $email, $avatar, $em); $this->updateuser($user, $firstname, $lastname, $email, $avatar, $em);
@ -513,6 +516,7 @@ class SecurityController extends AbstractController
$user->setNiveau01($niveau01); $user->setNiveau01($niveau01);
$user->setAvatar($avatar); $user->setAvatar($avatar);
$user->setIsactive(true);
$user->setIsvisible(true); $user->setIsvisible(true);
$user->setRole('ROLE_USER'); $user->setRole('ROLE_USER');
@ -554,6 +558,10 @@ class SecurityController extends AbstractController
private function autoconnexion($user, $redirect, Request $request) private function autoconnexion($user, $redirect, Request $request)
{ {
if (!$user->isIsactive()) {
return $this->redirect($this->generateUrl('app_noperm'));
}
// Récupérer le token de l'utilisateur // Récupérer le token de l'utilisateur
$token = new UsernamePasswordToken($user, 'main', $user->getRoles()); $token = new UsernamePasswordToken($user, 'main', $user->getRoles());
$this->tokenstorage->setToken($token); $this->tokenstorage->setToken($token);

View File

@ -20,17 +20,20 @@ class UserController extends AbstractController
private $twig = 'User/'; private $twig = 'User/';
private $route = 'app_admin_user'; private $route = 'app_admin_user';
public function list($access, Request $request): Response public function list($access, Request $request, ManagerRegistry $em): Response
{ {
if ('user' == $access && !$request->getSession()->get('showannuaire')) { if ('all' == $access && !$request->getSession()->get('showannuaire')) {
throw $this->createAccessDeniedException('Permission denied'); throw $this->createAccessDeniedException('Permission denied');
} }
dump($em->getRepository($this->entity)->getPreference($this->getUser(), 'userisactive', true));
return $this->render($this->twig.'list.html.twig', [ return $this->render($this->twig.'list.html.twig', [
'useheader' => true, 'useheader' => true,
'usemenu' => false, 'usemenu' => false,
'usesidebar' => ('user' != $access), 'usesidebar' => ('all' != $access),
'access' => $access, 'access' => $access,
'isactive' => ('true' == $em->getRepository($this->entity)->getPreference($this->getUser(), 'userisactive', true)),
]); ]);
} }
@ -47,31 +50,48 @@ class UserController extends AbstractController
$niveau02 = null; $niveau02 = null;
$niveau03 = null; $niveau03 = null;
$niveau04 = null; $niveau04 = null;
$isactive = true;
// Nombre total d'enregistrement // Nombre total d'enregistrement
switch ($access) { switch ($access) {
case 'admin': case 'admin':
$total = $em->getManager()->createQueryBuilder()->select('COUNT(entity)')->from($this->entity, 'entity')->getQuery()->getSingleScalarResult(); $isactive = $em->getRepository($this->entity)->getPreference($this->getUser(), 'userisactive', true);
$total = $em->getManager()->createQueryBuilder()
->select('COUNT(entity)')
->from($this->entity, 'entity')
->where('entity.isactive = :isactive')
->setParameter('isactive', $isactive)
->getQuery()->getSingleScalarResult();
break; break;
case 'modo': case 'modo':
$isactive = $em->getRepository($this->entity)->getPreference($this->getUser(), 'userisactive', true);
$total = $em->getManager()->createQueryBuilder() $total = $em->getManager()->createQueryBuilder()
->select('COUNT(entity)') ->select('COUNT(entity)')
->from($this->entity, 'entity') ->from($this->entity, 'entity')
->from("App\Entity\UserModo", 'usermodo') ->from("App\Entity\UserModo", 'usermodo')
->where('usermodo.niveau01 = entity.niveau01') ->where('usermodo.niveau01 = entity.niveau01')
->andWhere('usermodo.user = :user') ->andWhere('usermodo.user = :user')
->where('entity.isactive = :isactive')
->setParameter('isactive', $isactive)
->setParameter('user', $this->getUser()) ->setParameter('user', $this->getUser())
->getQuery()->getSingleScalarResult(); ->getQuery()->getSingleScalarResult();
break; break;
default: default:
$isactive = true;
$niveau01 = $this->getUser()->getNiveau01(); $niveau01 = $this->getUser()->getNiveau01();
$niveau02 = $this->getUser()->getNiveau02(); $niveau02 = $this->getUser()->getNiveau02();
$niveau03 = $this->getUser()->getNiveau03(); $niveau03 = $this->getUser()->getNiveau03();
$niveau04 = $this->getUser()->getNiveau04(); $niveau04 = $this->getUser()->getNiveau04();
$qb = $em->getManager()->createQueryBuilder()->select('COUNT(entity)')->from($this->entity, 'entity')->where('entity.isvisible=true'); $qb = $em->getManager()->createQueryBuilder()
->select('COUNT(entity)')
->from($this->entity, 'entity')
->where('entity.isvisible=true')
->where('entity.isactive = :isactive')
->setParameter('isactive', $isactive);
switch ($request->getSession()->get('scopeannu')) { switch ($request->getSession()->get('scopeannu')) {
case 1: case 1:
$qb->andWhere('entity.niveau01 = :niveau01')->setParameter('niveau01', $niveau01); $qb->andWhere('entity.niveau01 = :niveau01')->setParameter('niveau01', $niveau01);
@ -105,7 +125,9 @@ class UserController extends AbstractController
->from($this->entity, 'entity') ->from($this->entity, 'entity')
->from('App:Niveau01', 'niveau01') ->from('App:Niveau01', 'niveau01')
->where('entity.niveau01=niveau01.id') ->where('entity.niveau01=niveau01.id')
->andwhere('entity.isactive = :isactive')
->andWhere('entity.username LIKE :value OR entity.firstname LIKE :value OR entity.lastname LIKE :value OR entity.email LIKE :value OR entity.roles LIKE :value OR niveau01.label LIKE :value') ->andWhere('entity.username LIKE :value OR entity.firstname LIKE :value OR entity.lastname LIKE :value OR entity.email LIKE :value OR entity.roles LIKE :value OR niveau01.label LIKE :value')
->setParameter('isactive', $isactive)
->setParameter('value', '%'.$search['value'].'%') ->setParameter('value', '%'.$search['value'].'%')
->getQuery() ->getQuery()
->getSingleScalarResult(); ->getSingleScalarResult();
@ -118,10 +140,12 @@ class UserController extends AbstractController
->from('App:Niveau01', 'niveau01') ->from('App:Niveau01', 'niveau01')
->from('App:UserModo', 'usermodo') ->from('App:UserModo', 'usermodo')
->where('entity.niveau01=niveau01.id') ->where('entity.niveau01=niveau01.id')
->andwhere('entity.isactive = :isactive')
->andWhere('entity.username LIKE :value OR entity.firstname LIKE :value OR entity.lastname LIKE :value OR entity.email LIKE :value OR entity.roles LIKE :value OR niveau01.label LIKE :value') ->andWhere('entity.username LIKE :value OR entity.firstname LIKE :value OR entity.lastname LIKE :value OR entity.email LIKE :value OR entity.roles LIKE :value OR niveau01.label LIKE :value')
->andWhere('usermodo.niveau01 = entity.niveau01') ->andWhere('usermodo.niveau01 = entity.niveau01')
->andWhere('usermodo.user = :userid') ->andWhere('usermodo.user = :userid')
->setParameter('value', '%'.$search['value'].'%') ->setParameter('value', '%'.$search['value'].'%')
->setParameter('isactive', $isactive)
->setParameter('userid', $this->getUser()->getId()) ->setParameter('userid', $this->getUser()->getId())
->getQuery() ->getQuery()
->getSingleScalarResult(); ->getSingleScalarResult();
@ -133,9 +157,11 @@ class UserController extends AbstractController
->from($this->entity, 'entity') ->from($this->entity, 'entity')
->from('App:Niveau01', 'niveau01') ->from('App:Niveau01', 'niveau01')
->where('entity.niveau01=niveau01.id') ->where('entity.niveau01=niveau01.id')
->andwhere('entity.isactive = :isactive')
->andWhere('entity.isvisible=true') ->andWhere('entity.isvisible=true')
->andWhere('entity.username LIKE :value OR entity.firstname LIKE :value OR entity.lastname LIKE :value OR entity.email LIKE :value OR entity.roles LIKE :value OR niveau01.label LIKE :value') ->andWhere('entity.username LIKE :value OR entity.firstname LIKE :value OR entity.lastname LIKE :value OR entity.email LIKE :value OR entity.roles LIKE :value OR niveau01.label LIKE :value')
->setParameter('value', '%'.$search['value'].'%'); ->setParameter('value', '%'.$search['value'].'%')
->setParameter('isactive', $isactive);
switch ($request->getSession()->get('scopeannu')) { switch ($request->getSession()->get('scopeannu')) {
case 1: case 1:
@ -174,6 +200,8 @@ class UserController extends AbstractController
case 'admin': case 'admin':
$qb->select('entity')->from($this->entity, 'entity')->from('App:Niveau01', 'niveau01'); $qb->select('entity')->from($this->entity, 'entity')->from('App:Niveau01', 'niveau01');
$qb->where('entity.niveau01=niveau01.id'); $qb->where('entity.niveau01=niveau01.id');
$qb->andwhere('entity.isactive = :isactive');
$qb->setParameter('isactive', $isactive);
break; break;
case 'modo': case 'modo':
@ -181,6 +209,8 @@ class UserController extends AbstractController
$qb->where('entity.niveau01=niveau01.id'); $qb->where('entity.niveau01=niveau01.id');
$qb->andWhere('usermodo.niveau01 = entity.niveau01'); $qb->andWhere('usermodo.niveau01 = entity.niveau01');
$qb->andWhere('usermodo.user = :userid'); $qb->andWhere('usermodo.user = :userid');
$qb->andwhere('entity.isactive = :isactive');
$qb->setParameter('isactive', $isactive);
$qb->setParameter('userid', $this->getUser()->getId()); $qb->setParameter('userid', $this->getUser()->getId());
break; break;
@ -188,6 +218,8 @@ class UserController extends AbstractController
$qb->select('entity')->from($this->entity, 'entity')->from('App:Niveau01', 'niveau01'); $qb->select('entity')->from($this->entity, 'entity')->from('App:Niveau01', 'niveau01');
$qb->where('entity.niveau01=niveau01.id'); $qb->where('entity.niveau01=niveau01.id');
$qb->andWhere('entity.isvisible=true'); $qb->andWhere('entity.isvisible=true');
$qb->andwhere('entity.isactive = :isactive');
$qb->setParameter('isactive', $isactive);
switch ($request->getSession()->get('scopeannu')) { switch ($request->getSession()->get('scopeannu')) {
case 1: case 1:
@ -316,12 +348,14 @@ class UserController extends AbstractController
$qb = $em->getManager()->createQueryBuilder(); $qb = $em->getManager()->createQueryBuilder();
$qb->select('entity')->from($this->entity, 'entity') $qb->select('entity')->from($this->entity, 'entity')
->where('entity.username LIKE :value') ->where('entity.username LIKE :value')
->orWhere('entity.lastname LIKE :value')
->orWhere('entity.firstname LIKE :value')
->setParameter('value', '%'.$q.'%') ->setParameter('value', '%'.$q.'%')
->orderBy('entity.username'); ->orderBy('entity.username');
$datas = $qb->setFirstResult(0)->setMaxResults($page_limit)->getQuery()->getResult(); $datas = $qb->setFirstResult(0)->setMaxResults($page_limit)->getQuery()->getResult();
foreach ($datas as $data) { foreach ($datas as $data) {
array_push($output, ['id' => $data->getId(), 'text' => $data->getUsername()]); array_push($output, ['id' => $data->getId(), 'text' => $data->getFullname()]);
} }
$ret_string['results'] = $output; $ret_string['results'] = $output;
@ -344,6 +378,7 @@ class UserController extends AbstractController
$data = new Entity(); $data = new Entity();
$data->setAvatar('noavatar.png'); $data->setAvatar('noavatar.png');
$data->setIsvisible(true); $data->setIsvisible(true);
$data->setIsactive(true);
$data->setApikey(Uuid::uuid4()); $data->setApikey(Uuid::uuid4());
// Création du formulaire // Création du formulaire
@ -566,7 +601,7 @@ class UserController extends AbstractController
} }
// Retour à la liste // Retour à la liste
if ('user' == $access) { if ('all' == $access) {
return $this->redirectToRoute('app_home'); return $this->redirectToRoute('app_home');
} else { } else {
return $this->redirectToRoute(str_replace('_admin_', '_'.$access.'_', $this->route)); return $this->redirectToRoute(str_replace('_admin_', '_'.$access.'_', $this->route));
@ -584,7 +619,7 @@ class UserController extends AbstractController
$this->data => $data, $this->data => $data,
'listgroups' => $this->getListGroups($access, $em), 'listgroups' => $this->getListGroups($access, $em),
'listmodos' => $this->getListModos($em), 'listmodos' => $this->getListModos($em),
'maxsize' => ('user' == $access ? 1200 : null), 'maxsize' => ('all' == $access ? 1200 : null),
]); ]);
} }
@ -660,7 +695,7 @@ class UserController extends AbstractController
return true; return true;
break; break;
case 'user': case 'all':
if ($this->getUser()->getId() != $entity->getId()) { if ($this->getUser()->getId() != $entity->getId()) {
throw $this->createAccessDeniedException('Permission denied'); throw $this->createAccessDeniedException('Permission denied');
} }
@ -688,7 +723,7 @@ class UserController extends AbstractController
return true; return true;
break; break;
case 'user': case 'all':
if ($this->getUser()->getId() != $entity->getId()) { if ($this->getUser()->getId() != $entity->getId()) {
throw $this->createAccessDeniedException('Permission denied'); throw $this->createAccessDeniedException('Permission denied');
} }

View File

@ -32,6 +32,26 @@ class Niveau01
*/ */
private $label; private $label;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $code;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $postaladress;
/**
* @ORM\Column(type="string", length=60, nullable=true)
*/
private $telephonenumber;
/**
* @ORM\Column(type="string", length=60, nullable=true)
*/
private $email;
/** /**
* @ORM\Column(type="string") * @ORM\Column(type="string")
*/ */
@ -285,4 +305,52 @@ class Niveau01
return $this; return $this;
} }
public function getCode(): ?string
{
return $this->code;
}
public function setCode(?string $code): self
{
$this->code = $code;
return $this;
}
public function getPostaladress(): ?string
{
return $this->postaladress;
}
public function setPostaladress(?string $postaladress): self
{
$this->postaladress = $postaladress;
return $this;
}
public function getTelephonenumber(): ?string
{
return $this->telephonenumber;
}
public function setTelephonenumber(?string $telephonenumber): self
{
$this->telephonenumber = $telephonenumber;
return $this;
}
public function getEmail(): ?string
{
return $this->email;
}
public function setEmail(?string $email): self
{
$this->email = $email;
return $this;
}
} }

View File

@ -32,6 +32,26 @@ class Niveau02
*/ */
private $label; private $label;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $code;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $postaladress;
/**
* @ORM\Column(type="string", length=60, nullable=true)
*/
private $telephonenumber;
/**
* @ORM\Column(type="string", length=60, nullable=true)
*/
private $email;
/** /**
* @ORM\Column(type="string") * @ORM\Column(type="string")
*/ */
@ -204,4 +224,52 @@ class Niveau02
return $this; return $this;
} }
public function getCode(): ?string
{
return $this->code;
}
public function setCode(?string $code): self
{
$this->code = $code;
return $this;
}
public function getPostaladress(): ?string
{
return $this->postaladress;
}
public function setPostaladress(?string $postaladress): self
{
$this->postaladress = $postaladress;
return $this;
}
public function getTelephonenumber(): ?string
{
return $this->telephonenumber;
}
public function setTelephonenumber(?string $telephonenumber): self
{
$this->telephonenumber = $telephonenumber;
return $this;
}
public function getEmail(): ?string
{
return $this->email;
}
public function setEmail(?string $email): self
{
$this->email = $email;
return $this;
}
} }

View File

@ -32,6 +32,26 @@ class Niveau03
*/ */
private $label; private $label;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $code;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $postaladress;
/**
* @ORM\Column(type="string", length=60, nullable=true)
*/
private $telephonenumber;
/**
* @ORM\Column(type="string", length=60, nullable=true)
*/
private $email;
/** /**
* @ORM\Column(type="string") * @ORM\Column(type="string")
*/ */
@ -220,4 +240,52 @@ class Niveau03
return $this; return $this;
} }
public function getCode(): ?string
{
return $this->code;
}
public function setCode(?string $code): self
{
$this->code = $code;
return $this;
}
public function getPostaladress(): ?string
{
return $this->postaladress;
}
public function setPostaladress(?string $postaladress): self
{
$this->postaladress = $postaladress;
return $this;
}
public function getTelephonenumber(): ?string
{
return $this->telephonenumber;
}
public function setTelephonenumber(?string $telephonenumber): self
{
$this->telephonenumber = $telephonenumber;
return $this;
}
public function getEmail(): ?string
{
return $this->email;
}
public function setEmail(?string $email): self
{
$this->email = $email;
return $this;
}
} }

View File

@ -32,6 +32,26 @@ class Niveau04
*/ */
private $label; private $label;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $code;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $postaladress;
/**
* @ORM\Column(type="string", length=60, nullable=true)
*/
private $telephonenumber;
/**
* @ORM\Column(type="string", length=60, nullable=true)
*/
private $email;
/** /**
* @ORM\Column(type="string") * @ORM\Column(type="string")
*/ */
@ -196,4 +216,52 @@ class Niveau04
return $this; return $this;
} }
public function getCode(): ?string
{
return $this->code;
}
public function setCode(?string $code): self
{
$this->code = $code;
return $this;
}
public function getPostaladress(): ?string
{
return $this->postaladress;
}
public function setPostaladress(?string $postaladress): self
{
$this->postaladress = $postaladress;
return $this;
}
public function getTelephonenumber(): ?string
{
return $this->telephonenumber;
}
public function setTelephonenumber(?string $telephonenumber): self
{
$this->telephonenumber = $telephonenumber;
return $this;
}
public function getEmail(): ?string
{
return $this->email;
}
public function setEmail(?string $email): self
{
$this->email = $email;
return $this;
}
} }

View File

@ -71,6 +71,11 @@ class User implements UserInterface, LegacyPasswordAuthenticatedUserInterface
*/ */
private $salt; private $salt;
/**
* @ORM\Column(type="boolean")
*/
protected $isactive;
/** /**
* @ORM\Column(type="string", length=128, unique=true) * @ORM\Column(type="string", length=128, unique=true)
*/ */
@ -278,7 +283,12 @@ class User implements UserInterface, LegacyPasswordAuthenticatedUserInterface
public function getDisplayname() public function getDisplayname()
{ {
return $this->firstname.' '.$this->lastname; return $this->firstname.' '.$this->lastname.(!$this->isactive ? ' (inactif)' : '');
}
public function getFullname()
{
return $this->username.' = '.$this->firstname.' '.$this->lastname.(!$this->isactive ? ' (inactif)' : '');
} }
// == FIN DU CODE A NE PAS REGENERER // == FIN DU CODE A NE PAS REGENERER
@ -655,4 +665,16 @@ class User implements UserInterface, LegacyPasswordAuthenticatedUserInterface
return $this; return $this;
} }
public function isIsactive(): ?bool
{
return $this->isactive;
}
public function setIsactive(bool $isactive): self
{
$this->isactive = $isactive;
return $this;
}
} }

View File

@ -109,7 +109,11 @@ class UserSubscriber implements EventSubscriberInterface
$attributes = $this->ldap->listAttributesUser(); $attributes = $this->ldap->listAttributesUser();
$ldapentrys = $this->ldap->search($filter, $attributes, $this->ldap->getParameter('baseuser')); $ldapentrys = $this->ldap->search($filter, $attributes, $this->ldap->getParameter('baseuser'));
if (empty($ldapentrys)) { if (empty($ldapentrys)) {
$this->ldap->addUser($this->entity); if ($this->entity->isIsactive()) {
$this->ldap->addUser($this->entity);
}
} elseif (!$this->entity->isIsactive()) {
$this->nine2ldapremove();
} elseif ($this->ldap->ismodifyUser($this->entity, $ldapentrys[0])) { } elseif ($this->ldap->ismodifyUser($this->entity, $ldapentrys[0])) {
$this->ldap->modifyUser($this->entity, $ldapentrys[0]['cn']); $this->ldap->modifyUser($this->entity, $ldapentrys[0]['cn']);
} }

View File

@ -41,7 +41,7 @@ class GroupType extends AbstractType
'remote_route' => 'app_'.$options['access'].'_user_selectlist', 'remote_route' => 'app_'.$options['access'].'_user_selectlist',
'class' => 'App\Entity\User', 'class' => 'App\Entity\User',
'primary_key' => 'id', 'primary_key' => 'id',
'text_property' => 'username', 'text_property' => 'fullname',
'minimum_input_length' => 2, 'minimum_input_length' => 2,
'page_limit' => 10, 'page_limit' => 10,
'allow_clear' => true, 'allow_clear' => true,

View File

@ -4,6 +4,7 @@ namespace App\Form;
use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType; use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType; use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType; use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\Extension\Core\Type\TextType; use Symfony\Component\Form\Extension\Core\Type\TextType;
@ -27,6 +28,35 @@ class Niveau01Type extends AbstractType
] ]
); );
$builder->add('code',
TextType::class, [
'label' => 'Code',
'required' => false,
]
);
$builder->add('email',
EmailType::class, [
'label' => 'Mail',
'required' => false,
]
);
$builder->add('postaladress',
TextareaType::class, [
'label' => 'Adresse',
'required' => false,
'attr' => ['style' => 'height:90px'],
]
);
$builder->add('telephonenumber',
TextType::class, [
'label' => 'Téléphone',
'required' => false,
]
);
// Si masteridentity = LDAP alors on demande le filtre des utilisateurs qui appartiennent à ce groupe // Si masteridentity = LDAP alors on demande le filtre des utilisateurs qui appartiennent à ce groupe
if ('LDAP' == $options['appMasteridentity'] || 'LDAP2NINE' == $options['appSynchro']) { if ('LDAP' == $options['appMasteridentity'] || 'LDAP2NINE' == $options['appSynchro']) {
$builder->add('fgassocldap', $builder->add('fgassocldap',

View File

@ -6,7 +6,9 @@ use Doctrine\ORM\EntityRepository;
use Doctrine\ORM\Query\Expr\Join; use Doctrine\ORM\Query\Expr\Join;
use Symfony\Bridge\Doctrine\Form\Type\EntityType; use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType; use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\Extension\Core\Type\TextType; use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Component\OptionsResolver\OptionsResolver;
@ -54,6 +56,35 @@ class Niveau02Type extends AbstractType
'label' => 'Label', 'label' => 'Label',
] ]
); );
$builder->add('code',
TextType::class, [
'label' => 'Code',
'required' => false,
]
);
$builder->add('email',
EmailType::class, [
'label' => 'Mail',
'required' => false,
]
);
$builder->add('postaladress',
TextareaType::class, [
'label' => 'Adresse',
'required' => false,
'attr' => ['style' => 'height:90px'],
]
);
$builder->add('telephonenumber',
TextType::class, [
'label' => 'Téléphone',
'required' => false,
]
);
} }
public function configureOptions(OptionsResolver $resolver) public function configureOptions(OptionsResolver $resolver)

View File

@ -6,7 +6,9 @@ use Doctrine\ORM\EntityRepository;
use Doctrine\ORM\Query\Expr\Join; use Doctrine\ORM\Query\Expr\Join;
use Symfony\Bridge\Doctrine\Form\Type\EntityType; use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType; use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\Extension\Core\Type\TextType; use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Component\OptionsResolver\OptionsResolver;
@ -76,6 +78,35 @@ class Niveau03Type extends AbstractType
'label' => 'Label', 'label' => 'Label',
] ]
); );
$builder->add('code',
TextType::class, [
'label' => 'Code',
'required' => false,
]
);
$builder->add('email',
EmailType::class, [
'label' => 'Mail',
'required' => false,
]
);
$builder->add('postaladress',
TextareaType::class, [
'label' => 'Adresse',
'required' => false,
'attr' => ['style' => 'height:90px'],
]
);
$builder->add('telephonenumber',
TextType::class, [
'label' => 'Téléphone',
'required' => false,
]
);
} }
public function configureOptions(OptionsResolver $resolver) public function configureOptions(OptionsResolver $resolver)

View File

@ -6,7 +6,9 @@ use Doctrine\ORM\EntityRepository;
use Doctrine\ORM\Query\Expr\Join; use Doctrine\ORM\Query\Expr\Join;
use Symfony\Bridge\Doctrine\Form\Type\EntityType; use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType; use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\Extension\Core\Type\TextType; use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Component\OptionsResolver\OptionsResolver;
@ -97,6 +99,35 @@ class Niveau04Type extends AbstractType
'label' => 'Label', 'label' => 'Label',
] ]
); );
$builder->add('code',
TextType::class, [
'label' => 'Code',
'required' => false,
]
);
$builder->add('email',
EmailType::class, [
'label' => 'Mail',
'required' => false,
]
);
$builder->add('postaladress',
TextareaType::class, [
'label' => 'Adresse',
'required' => false,
'attr' => ['style' => 'height:90px'],
]
);
$builder->add('telephonenumber',
TextType::class, [
'label' => 'Téléphone',
'required' => false,
]
);
} }
public function configureOptions(OptionsResolver $resolver) public function configureOptions(OptionsResolver $resolver)

View File

@ -39,6 +39,16 @@ class UserType extends AbstractType
] ]
); );
if ('all' != $options['access']) {
$choices = ['oui' => '1', 'non' => '0'];
$builder->add('isactive',
ChoiceType::class, [
'label' => 'Actif',
'choices' => $choices,
]
);
}
if ('SQL' == $options['appMasteridentity'] || 'submit' == $options['mode']) { if ('SQL' == $options['appMasteridentity'] || 'submit' == $options['mode']) {
$builder->add('password', $builder->add('password',
RepeatedType::class, [ RepeatedType::class, [

View File

@ -30,4 +30,17 @@ class UserRepository extends ServiceEntityRepository
$this->getEntityManager()->flush(); $this->getEntityManager()->flush();
} }
} }
public function getPreference(User $entity, $key, $default)
{
$preference = $entity->getPreference();
dump($preference);
if (is_array($preference)) {
if (array_key_exists($key, $preference)) {
return $preference[$key][0];
}
}
return $default;
}
} }

View File

@ -431,6 +431,10 @@ class LdapService
$connection = $this->connect(); $connection = $this->connect();
$result = null; $result = null;
if (!$user->isIsactive()) {
$todel = true;
}
// NIVEAU01 // NIVEAU01
// On recherche le Niveau01 actuellement asscocié à l'utilisateur // On recherche le Niveau01 actuellement asscocié à l'utilisateur
$criteria = '(&(cn=*)(memberUid='.$user->getUsername().'))'; $criteria = '(&(cn=*)(memberUid='.$user->getUsername().'))';
@ -765,7 +769,9 @@ class LdapService
$attrs['memberuid'] = []; $attrs['memberuid'] = [];
foreach ($niveau01->getUsers() as $user) { foreach ($niveau01->getUsers() as $user) {
array_push($attrs['memberuid'], $user->getUsername()); if ($user->isIsactive()) {
array_push($attrs['memberuid'], $user->getUsername());
}
} }
sort($attrs['memberuid']); sort($attrs['memberuid']);
@ -893,7 +899,9 @@ class LdapService
$attrs['memberuid'] = []; $attrs['memberuid'] = [];
foreach ($niveau02->getUsers() as $user) { foreach ($niveau02->getUsers() as $user) {
array_push($attrs['memberuid'], $user->getUsername()); if ($user->isIsactive()) {
array_push($attrs['memberuid'], $user->getUsername());
}
} }
sort($attrs['memberuid']); sort($attrs['memberuid']);
@ -1021,7 +1029,9 @@ class LdapService
$attrs['memberuid'] = []; $attrs['memberuid'] = [];
foreach ($niveau03->getUsers() as $user) { foreach ($niveau03->getUsers() as $user) {
array_push($attrs['memberuid'], $user->getUsername()); if ($user->isIsactive()) {
array_push($attrs['memberuid'], $user->getUsername());
}
} }
sort($attrs['memberuid']); sort($attrs['memberuid']);
@ -1149,7 +1159,9 @@ class LdapService
$attrs['memberuid'] = []; $attrs['memberuid'] = [];
foreach ($niveau04->getUsers() as $user) { foreach ($niveau04->getUsers() as $user) {
array_push($attrs['memberuid'], $user->getUsername()); if ($user->isIsactive()) {
array_push($attrs['memberuid'], $user->getUsername());
}
} }
sort($attrs['memberuid']); sort($attrs['memberuid']);
@ -1277,7 +1289,9 @@ class LdapService
$attrs['memberuid'] = []; $attrs['memberuid'] = [];
foreach ($group->getUsers() as $usergroup) { foreach ($group->getUsers() as $usergroup) {
array_push($attrs['memberuid'], $usergroup->getUser()->getUsername()); if ($usergroup->getUser()->isIsactive()) {
array_push($attrs['memberuid'], $usergroup->getUser()->getUsername());
}
} }
sort($attrs['memberuid']); sort($attrs['memberuid']);
@ -1306,11 +1320,13 @@ class LdapService
$result = $this->search($criteria, ['memberuid'], $subbranch); $result = $this->search($criteria, ['memberuid'], $subbranch);
if (!$this->in_array_r($usergroup->getUser()->getUsername(), $result[0])) { if (!$this->in_array_r($usergroup->getUser()->getUsername(), $result[0])) {
$dn = $this->getGroupDN($usergroup->getGroup()->getLabel()); if ($usergroup->getUser()->isIsactive()) {
$entry['memberuid'] = $usergroup->getUser()->getUsername(); $dn = $this->getGroupDN($usergroup->getGroup()->getLabel());
$result = ldap_mod_add($connection, $dn, $entry); $entry['memberuid'] = $usergroup->getUser()->getUsername();
if (!$result) { $result = ldap_mod_add($connection, $dn, $entry);
$this->ldapError(); if (!$result) {
$this->ldapError();
}
} }
} }

View File

@ -0,0 +1,34 @@
<?php
namespace App\Service;
use App\Entity\User;
use Symfony\Component\Security\Core\Exception\AccountExpiredException;
use Symfony\Component\Security\Core\Exception\CustomUserMessageAccountStatusException;
use Symfony\Component\Security\Core\User\UserCheckerInterface;
use Symfony\Component\Security\Core\User\UserInterface;
class UserChecker implements UserCheckerInterface
{
public function checkPreAuth(UserInterface $user): void
{
if (!$user instanceof User) {
return;
}
if (!$user->isIsactive()) {
throw new CustomUserMessageAccountStatusException('Votre compte a été désactivé');
}
}
public function checkPostAuth(UserInterface $user): void
{
if (!$user instanceof User) {
return;
}
if (!$user->isIsactive()) {
throw new AccountExpiredException('...');
}
}
}

View File

@ -49,7 +49,7 @@
{% if app.user %} {% if app.user %}
$.ajax({ $.ajax({
method: "POST", method: "POST",
url: "{{ path('app_user_preference') }}", url: "{{ path('app_all_preference') }}",
data: { data: {
id:0, id:0,
key:'fgaudit', key:'fgaudit',

View File

@ -66,7 +66,7 @@
{% elseif config.type=="header" %} {% elseif config.type=="header" %}
<div style="margin:10px auto;"> <div style="margin:10px auto;">
<img id="config_value_img" src="{{ path("app_minio_image",{file:"header/"~config.value}) }}" style="width:100%;margin:auto;display:block;"> <img id="config_value_img" src="{{ path("app_minio_image",{file:"header/"~config.value}) }}" style="width:100%;margin:auto;display:block;">
<a class="btn btn-info btn-modal" style="width:100%" data-modalid="mymodallarge" data-modaltitle="Bannière" data-modalurl="{{ path('app_user_crop01', {"type": "header", "reportinput": "#config_value" }) }}" title='Ajouter une Bannière'>Modifier</a> <a class="btn btn-info btn-modal" style="width:100%" data-modalid="mymodallarge" data-modaltitle="Bannière" data-modalurl="{{ path('app_all_crop01', {"type": "header", "reportinput": "#config_value" }) }}" title='Ajouter une Bannière'>Modifier</a>
</div> </div>
{% endif %} {% endif %}
{{ form_row(form.help) }} {{ form_row(form.help) }}

View File

@ -26,7 +26,7 @@
window.parent.$(".modal-title").html("ETAPE 1 - Téléchargez votre image"); window.parent.$(".modal-title").html("ETAPE 1 - Téléchargez votre image");
function dropzonesuccess( file, response ) { function dropzonesuccess( file, response ) {
$(location).attr('href',"{{ path('app_user_crop02', {"type": type, "reportinput": reportinput }) }}?file="+response["file"]); $(location).attr('href',"{{ path('app_all_crop02', {"type": type, "reportinput": reportinput }) }}?file="+response["file"]);
} }
function closeModal() { function closeModal() {

View File

@ -6,7 +6,7 @@
<p> <p>
{%if access=="admin" %} {%if access=="admin" %}
<a class="btn btn-success" href={{ path('app_'~access~'_group_submit') }}>Ajouter</a> <a class="btn btn-success" href={{ path('app_'~access~'_group_submit') }}>Ajouter</a>
{%elseif access=="user" and app.session.get("submitgroup") %} {%elseif access=="all" and app.session.get("submitgroup") %}
<a class="btn btn-success" href={{ path('app_'~access~'_group_submit') }}>Ajouter</a> <a class="btn btn-success" href={{ path('app_'~access~'_group_submit') }}>Ajouter</a>
{% endif %} {% endif %}

View File

@ -45,6 +45,11 @@
Caractères interdits = caractères spéciaux sauf ' @ . - _<br> Caractères interdits = caractères spéciaux sauf ' @ . - _<br>
</div> </div>
{{ form_row(form.code) }}
{{ form_row(form.email) }}
{{ form_row(form.telephonenumber) }}
{{ form_row(form.postaladress) }}
{% if form.ldapfilter is defined %} {% if form.ldapfilter is defined %}
{{ form_row(form.fgassocldap) }} {{ form_row(form.fgassocldap) }}

View File

@ -47,6 +47,12 @@
Caractères interdits = caractères spéciaux sauf ' @ . - _<br> Caractères interdits = caractères spéciaux sauf ' @ . - _<br>
</div> </div>
{{ form_row(form.code) }}
{{ form_row(form.email) }}
{{ form_row(form.telephonenumber) }}
{{ form_row(form.postaladress) }}
{% if form.ldapfilter is defined %} {% if form.ldapfilter is defined %}
{{ form_row(form.ldapfilter) }} {{ form_row(form.ldapfilter) }}
{% endif %} {% endif %}

View File

@ -48,6 +48,11 @@
Caractères interdits = caractères spéciaux sauf ' @ . - _<br> Caractères interdits = caractères spéciaux sauf ' @ . - _<br>
</div> </div>
{{ form_row(form.code) }}
{{ form_row(form.email) }}
{{ form_row(form.telephonenumber) }}
{{ form_row(form.postaladress) }}
{% if form.ldapfilter is defined %} {% if form.ldapfilter is defined %}
{{ form_row(form.ldapfilter) }} {{ form_row(form.ldapfilter) }}
{% endif %} {% endif %}

View File

@ -49,6 +49,11 @@
Caractères interdits = caractères spéciaux sauf ' @ . - _<br> Caractères interdits = caractères spéciaux sauf ' @ . - _<br>
</div> </div>
{{ form_row(form.code) }}
{{ form_row(form.email) }}
{{ form_row(form.telephonenumber) }}
{{ form_row(form.postaladress) }}
{% if form.ldapfilter is defined %} {% if form.ldapfilter is defined %}
{{ form_row(form.ldapfilter) }} {{ form_row(form.ldapfilter) }}
{% endif %} {% endif %}

View File

@ -67,7 +67,12 @@
{% endif %} {% endif %}
<img id="user_avatar_img" src="{{ path('app_minio_image',{file:"avatar/"~avatar}) }}" style="max-width:90px;background-color:var(--colorbgbodydark);"> <img id="user_avatar_img" src="{{ path('app_minio_image',{file:"avatar/"~avatar}) }}" style="max-width:90px;background-color:var(--colorbgbodydark);">
{{ form_widget(form.avatar) }} {{ form_widget(form.avatar) }}
<a class="btn btn-info btn-modal" style="width:100%" data-modalid="mymodallarge" data-modaltitle="Avatar" data-modalurl="{{ path('app_user_crop01', {"type": "avatar", "reportinput": "#user_avatar" }) }}" title='Ajouter un Avatar'>Modifier</a> <a class="btn btn-info btn-modal" style="width:100%" data-modalid="mymodallarge" data-modaltitle="Avatar" data-modalurl="{{ path('app_all_crop01', {"type": "avatar", "reportinput": "#user_avatar" }) }}" title='Ajouter un Avatar'>Modifier</a>
{% if form.isactive is defined %}
<center>{{ form_row(form.isactive) }}</center>
{% endif %}
</div> </div>
</div> </div>

View File

@ -1,7 +1,7 @@
{% extends 'base.html.twig' %} {% extends 'base.html.twig' %}
{% block body %} {% block body %}
{% if access=="admin" or access=="modo" %} {% if access!="all" %}
<h1 class="page-header">Gestion des Utilisateurs</h1> <h1 class="page-header">Gestion des Utilisateurs</h1>
{% if appMasteridentity=="SQL" or not appSynchroPurgeUser %} {% if appMasteridentity=="SQL" or not appSynchroPurgeUser %}
<a class="btn btn-success" href={{ path('app_'~access~'_user_submit') }}>Ajouter</a> <a class="btn btn-success" href={{ path('app_'~access~'_user_submit') }}>Ajouter</a>
@ -9,9 +9,17 @@
{% endif %} {% endif %}
{% if auditUse and (access=="admin" or access=="audit") %} {% if auditUse and (access=="admin" or access=="audit") %}
<a class="btn btn-secondary float-end" href="{{ path("app_"~access~"_audit_render",{entityname:"User"}) }}"><i class="fas fa-eye fa-fw"></i> Audit</a> <a class="btn btn-secondary float-end ms-3" href="{{ path("app_"~access~"_audit_render",{entityname:"User"}) }}"><i class="fas fa-eye fa-fw"></i> Audit</a>
{% endif %} {% endif %}
{% if access!="all" %}
<div class="form-check form-switch float-end mt-2">
<input class="form-check-input" type="checkbox" role="switch" id="checkisactivate" {% if isactive %}checked{%endif%}>
<label class="form-check-label" for="checkisactivate">{% if isactive %}Utilisateurs Actif{%else%}Utilisateurs Inactif{%endif%}</label>
</div>
{%endif%}
<div class="card mt-4"> <div class="card mt-4">
<div class="card-header"> <div class="card-header">
<i class="fa fa-table fa-fw"></i> Liste des Utilisateurs <i class="fa fa-table fa-fw"></i> Liste des Utilisateurs
@ -61,9 +69,26 @@
ajax: "{{ path('app_modo_user_tablelist') }}", ajax: "{{ path('app_modo_user_tablelist') }}",
{% else %} {% else %}
order: [[ 1, "asc" ]], order: [[ 1, "asc" ]],
ajax: "{{ path('app_user_user_tablelist') }}", ajax: "{{ path('app_all_user_tablelist') }}",
{% endif %} {% endif %}
}); });
{% if access!="all" %}
$('#checkisactivate').change(function() {
$.ajax({
method: "POST",
url: "{{ path('app_all_preference') }}",
data: {
id:0,
key:'userisactive',
value: ($("#checkisactivate").is(":checked"))
},
success: function() {
location.reload();
}
});
});
{% endif %}
}); });
</script> </script>
{% endblock %} {% endblock %}

View File

@ -39,7 +39,7 @@
<div class="pe-3"> <div class="pe-3">
<nav class="nav"> <nav class="nav">
{% if app.user %} {% if app.user %}
<a class="nav-link" href="{{path("app_user_user")}}" title="Mon Profil"> <a class="nav-link" href="{{path("app_all_user")}}" title="Mon Profil">
<img src="{{ path('app_minio_image',{file:"avatar/"~app.user.avatar}) }}" class="avatar" style="width:35px;height:35px;"> <img src="{{ path('app_minio_image',{file:"avatar/"~app.user.avatar}) }}" class="avatar" style="width:35px;height:35px;">
</a> </a>
@ -50,11 +50,11 @@
{% endif %} {% endif %}
{% if app.session.get("showannuaire") %} {% if app.session.get("showannuaire") %}
<a class="nav-link" href="{{path("app_user_users")}}" title="Annuaire des Utilisateurs"><i class="fas fa-address-book fa-2x"></i></a> <a class="nav-link" href="{{path("app_all_users")}}" title="Annuaire des Utilisateurs"><i class="fas fa-address-book fa-2x"></i></a>
{% endif %} {% endif %}
{% if appGroupuse %} {% if appGroupuse %}
<a class="nav-link" href="{{path("app_user_group")}}" title="Gestion des Groupes de Travail"><i class="fas fa-users fa-2x"></i></a> <a class="nav-link" href="{{path("app_all_group")}}" title="Gestion des Groupes de Travail"><i class="fas fa-users fa-2x"></i></a>
{% endif %} {% endif %}
<a id="switchHeader" class="nav-link" onclick="switchHeader()" title="Cacher / Afficher Bannière"><i class="fa fa-chevron-up fa-2x"></i></a> <a id="switchHeader" class="nav-link" onclick="switchHeader()" title="Cacher / Afficher Bannière"><i class="fa fa-chevron-up fa-2x"></i></a>
@ -68,7 +68,7 @@
</nav> </nav>
{% if app.user %} {% if app.user %}
<div id="nameuser" style="text-align:right; margin-top:5px"><a href="{{ path('app_user_user') }}" title="Mon Profil">{{ app.user.firstname }} {{ app.user.lastname }}</a></div> <div id="nameuser" style="text-align:right; margin-top:5px"><a href="{{ path('app_all_user') }}" title="Mon Profil">{{ app.user.firstname }} {{ app.user.lastname }}</a></div>
{% endif %} {% endif %}
</div> </div>
</div> </div>
@ -99,7 +99,7 @@
<ul id="menulink" class="nav navbar-right pe-3" style="display:none;"> <ul id="menulink" class="nav navbar-right pe-3" style="display:none;">
{% if app.user %} {% if app.user %}
<a href="{{path("app_user_user")}}"> <a href="{{path("app_all_user")}}">
<img src="{{ path('app_minio_image',{file:"avatar/"~app.user.avatar}) }}" class="avatar" style="width:25px; height:25px; margin-top:-3px; margin-right:3px;"> <img src="{{ path('app_minio_image',{file:"avatar/"~app.user.avatar}) }}" class="avatar" style="width:25px; height:25px; margin-top:-3px; margin-right:3px;">
</a> </a>
@ -110,10 +110,12 @@
{% endif %} {% endif %}
{% if app.session.get("showannuaire") %} {% if app.session.get("showannuaire") %}
<a href="{{path("app_user_users")}}"><i class="fas fa-address-book fa-fw"></i></a> <a href="{{path("app_all_users")}}"><i class="fas fa-address-book fa-fw"></i></a>
{% endif %} {% endif %}
<a href="{{path("app_user_group")}}"><i class="fas fa-users fa-fw"></i></a> {% if appGroupuse %}
<a href="{{path("app_all_group")}}"><i class="fas fa-users fa-fw"></i></a>
{% endif %}
<a id="switchHeader" class="btn-link" onclick="switchHeader()" title="Cacher / Afficher Bannière"><i class="fa fa-chevron-down fa-fw"></i></a> <a id="switchHeader" class="btn-link" onclick="switchHeader()" title="Cacher / Afficher Bannière"><i class="fa fa-chevron-down fa-fw"></i></a>
@ -180,7 +182,7 @@
{% if app.user %} {% if app.user %}
$.ajax({ $.ajax({
method: "POST", method: "POST",
url: "{{ path('app_user_preference') }}", url: "{{ path('app_all_preference') }}",
data: { data: {
id:0, id:0,
key:'fgheader', key:'fgheader',