⬆️ chore(composer): Met à jour les dépendances et les configurations du projet.

 feat(Members): Ajoute les entités MembersPage et MembersCosplan et leurs relations.
🔧 fix(caddy): Corrige la redirection des assets Trustpilot dans Caddyfile.
⚙️ chore(vich_uploader): Ajoute les configurations VichUploader pour MembersPage.
This commit is contained in:
Serreau Jovann
2025-11-26 08:50:24 +01:00
parent 402998e417
commit 9cca3b9e0e
15 changed files with 965 additions and 203 deletions

View File

@@ -1,9 +0,0 @@
Confidentialité : ULTRA SECRÈTE
Ce projet est strictement confidentiel.
Tous les droits sont réservés. Aucune partie de ce code, de cette documentation ou de tout autre contenu du projet ne peut être copiée, reproduite, distribuée, modifiée, traduite, transmise ou utilisée, sous quelque forme ou par quelque moyen que ce soit, sans l'autorisation écrite préalable explicite de [VOTRE NOM OU ENTREPRISE].
Toute utilisation non autorisée est strictement interdite et pourra faire lobjet de poursuites judiciaires.
© 2025 SARL SITECONSEIL. Tous droits réservés.

View File

@@ -10,19 +10,19 @@
"ext-iconv": "*",
"ext-libxml": "*",
"ext-zip": "*",
"chillerlan/php-qrcode": ">=5.0.4",
"chillerlan/php-qrcode": ">=5.0.5",
"cocur/slugify": ">=4.6",
"doctrine/dbal": "^3.10.3",
"doctrine/doctrine-bundle": "^2.18.1",
"doctrine/doctrine-migrations-bundle": "^3.6.0",
"doctrine/doctrine-migrations-bundle": "^3.7.0",
"doctrine/orm": "^3.5.7",
"docusealco/docuseal-php": "^1.0",
"docusealco/docuseal-php": "^1.0.5",
"endroid/qr-code": ">=6.0.9",
"exbil/mailcow-php-api": ">=0.14.2",
"exbil/mailcow-php-api": ">=0.15.0",
"fpdf/fpdf": ">=1.86",
"google/apiclient": "^2.18",
"google/apiclient": "^2.18.4",
"google/cloud": "^0.296.0",
"healey/robots": "^1.0",
"healey/robots": "^1.0.1",
"imagine/imagine": "^1.5",
"io-developer/php-whois": ">=4.1.10",
"knplabs/knp-paginator-bundle": "^6.9.1",
@@ -33,12 +33,12 @@
"lufiipe/insee-sierene": ">=1",
"minishlink/web-push": "^9.0.3",
"mittwald/vault-php": "^3.0.2",
"mobiledetect/mobiledetectlib": "^4.8",
"mobiledetect/mobiledetectlib": "^4.8.09",
"nelmio/cors-bundle": "^2.6",
"ovh/ovh": ">=3.5",
"pear/net_dns2": ">=2.0.6",
"phpdocumentor/reflection-docblock": "^5.6.3",
"phpoffice/phpspreadsheet": ">=5.2",
"pear/net_dns2": ">=2.0.7",
"phpdocumentor/reflection-docblock": "^5.6.4",
"phpoffice/phpspreadsheet": ">=5.3",
"phpstan/phpdoc-parser": "^2.3",
"presta/sitemap-bundle": "^4.2",
"sentry/sentry-symfony": "^5.6",
@@ -53,7 +53,7 @@
"symfony/doctrine-messenger": "7.3.*",
"symfony/dotenv": "7.3.*",
"symfony/expression-language": "7.3.*",
"symfony/flex": "^2.9.0",
"symfony/flex": "^2.10.0",
"symfony/form": "7.3.*",
"symfony/framework-bundle": "7.3.*",
"symfony/http-client": "7.3.*",
@@ -76,9 +76,9 @@
"symfony/validator": "7.3.*",
"symfony/web-link": "7.3.*",
"symfony/yaml": "7.3.*",
"tecnickcom/tcpdf": "^6.10",
"twig/extra-bundle": "^3.22",
"twig/intl-extra": "^3.22",
"tecnickcom/tcpdf": "^6.10.1",
"twig/extra-bundle": "^3.22.1",
"twig/intl-extra": "^3.22.1",
"twig/twig": "^3.22",
"vich/uploader-bundle": "^2.8.1",
"web-auth/webauthn-lib": ">=5.2.2"
@@ -136,12 +136,12 @@
},
"require-dev": {
"fakerphp/faker": "^1.24.1",
"phpunit/phpunit": "^12.4.3",
"phpunit/phpunit": "^12.4.4",
"rector/rector": "^2.2.8",
"symfony/browser-kit": "7.3.*",
"symfony/css-selector": "7.3.*",
"symfony/debug-bundle": "7.3.*",
"symfony/maker-bundle": "^1.64",
"symfony/maker-bundle": "^1.65",
"symfony/stopwatch": "7.3.*",
"symfony/web-profiler-bundle": "7.3.*"
}

350
composer.lock generated
View File

@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "360146f459050d75e1363bd79b5792e0",
"content-hash": "f27062872645f8d1a8553efdd75c2aef",
"packages": [
{
"name": "async-aws/core",
@@ -187,16 +187,16 @@
},
{
"name": "aws/aws-sdk-php",
"version": "3.359.11",
"version": "3.363.2",
"source": {
"type": "git",
"url": "https://github.com/aws/aws-sdk-php.git",
"reference": "c04a8b3c40bca26da591a8ff14bcc390d26c1644"
"reference": "f8b5f125248daa8942144b4771c041a63ec41900"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/c04a8b3c40bca26da591a8ff14bcc390d26c1644",
"reference": "c04a8b3c40bca26da591a8ff14bcc390d26c1644",
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/f8b5f125248daa8942144b4771c041a63ec41900",
"reference": "f8b5f125248daa8942144b4771c041a63ec41900",
"shasum": ""
},
"require": {
@@ -278,22 +278,22 @@
"support": {
"forum": "https://github.com/aws/aws-sdk-php/discussions",
"issues": "https://github.com/aws/aws-sdk-php/issues",
"source": "https://github.com/aws/aws-sdk-php/tree/3.359.11"
"source": "https://github.com/aws/aws-sdk-php/tree/3.363.2"
},
"time": "2025-11-12T19:18:02+00:00"
"time": "2025-11-25T19:04:55+00:00"
},
{
"name": "bacon/bacon-qr-code",
"version": "v3.0.1",
"version": "v3.0.3",
"source": {
"type": "git",
"url": "https://github.com/Bacon/BaconQrCode.git",
"reference": "f9cc1f52b5a463062251d666761178dbdb6b544f"
"reference": "36a1cb2b81493fa5b82e50bf8068bf84d1542563"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Bacon/BaconQrCode/zipball/f9cc1f52b5a463062251d666761178dbdb6b544f",
"reference": "f9cc1f52b5a463062251d666761178dbdb6b544f",
"url": "https://api.github.com/repos/Bacon/BaconQrCode/zipball/36a1cb2b81493fa5b82e50bf8068bf84d1542563",
"reference": "36a1cb2b81493fa5b82e50bf8068bf84d1542563",
"shasum": ""
},
"require": {
@@ -303,8 +303,9 @@
},
"require-dev": {
"phly/keep-a-changelog": "^2.12",
"phpunit/phpunit": "^10.5.11 || 11.0.4",
"phpunit/phpunit": "^10.5.11 || ^11.0.4",
"spatie/phpunit-snapshot-assertions": "^5.1.5",
"spatie/pixelmatch-php": "^1.2.0",
"squizlabs/php_codesniffer": "^3.9"
},
"suggest": {
@@ -332,9 +333,9 @@
"homepage": "https://github.com/Bacon/BaconQrCode",
"support": {
"issues": "https://github.com/Bacon/BaconQrCode/issues",
"source": "https://github.com/Bacon/BaconQrCode/tree/v3.0.1"
"source": "https://github.com/Bacon/BaconQrCode/tree/v3.0.3"
},
"time": "2024-10-01T13:55:55+00:00"
"time": "2025-11-19T17:15:36+00:00"
},
{
"name": "brick/math",
@@ -467,16 +468,16 @@
},
{
"name": "chillerlan/php-qrcode",
"version": "5.0.4",
"version": "5.0.5",
"source": {
"type": "git",
"url": "https://github.com/chillerlan/php-qrcode.git",
"reference": "390393e97a6e42ccae0e0d6205b8d4200f7ddc43"
"reference": "7b66282572fc14075c0507d74d9837dab25b38d6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/chillerlan/php-qrcode/zipball/390393e97a6e42ccae0e0d6205b8d4200f7ddc43",
"reference": "390393e97a6e42ccae0e0d6205b8d4200f7ddc43",
"url": "https://api.github.com/repos/chillerlan/php-qrcode/zipball/7b66282572fc14075c0507d74d9837dab25b38d6",
"reference": "7b66282572fc14075c0507d74d9837dab25b38d6",
"shasum": ""
},
"require": {
@@ -487,7 +488,7 @@
"require-dev": {
"chillerlan/php-authenticator": "^4.3.1 || ^5.2.1",
"ext-fileinfo": "*",
"phan/phan": "^5.5.1",
"phan/phan": "^5.5.2",
"phpcompatibility/php-compatibility": "10.x-dev",
"phpmd/phpmd": "^2.15",
"phpunit/phpunit": "^9.6",
@@ -556,7 +557,7 @@
"type": "Ko-Fi"
}
],
"time": "2025-09-19T17:30:27+00:00"
"time": "2025-11-23T23:51:44+00:00"
},
{
"name": "chillerlan/php-settings-container",
@@ -1275,16 +1276,16 @@
},
{
"name": "doctrine/doctrine-migrations-bundle",
"version": "3.6.0",
"version": "3.7.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/DoctrineMigrationsBundle.git",
"reference": "49ecc564568d7da101779112579e78b677fbc94a"
"reference": "1e380c6dd8ac8488217f39cff6b77e367f1a644b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/49ecc564568d7da101779112579e78b677fbc94a",
"reference": "49ecc564568d7da101779112579e78b677fbc94a",
"url": "https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/1e380c6dd8ac8488217f39cff6b77e367f1a644b",
"reference": "1e380c6dd8ac8488217f39cff6b77e367f1a644b",
"shasum": ""
},
"require": {
@@ -1340,7 +1341,7 @@
],
"support": {
"issues": "https://github.com/doctrine/DoctrineMigrationsBundle/issues",
"source": "https://github.com/doctrine/DoctrineMigrationsBundle/tree/3.6.0"
"source": "https://github.com/doctrine/DoctrineMigrationsBundle/tree/3.7.0"
},
"funding": [
{
@@ -1356,7 +1357,7 @@
"type": "tidelift"
}
],
"time": "2025-11-07T19:40:03+00:00"
"time": "2025-11-15T19:02:59+00:00"
},
{
"name": "doctrine/event-manager",
@@ -1688,16 +1689,16 @@
},
{
"name": "doctrine/migrations",
"version": "3.9.4",
"version": "3.9.5",
"source": {
"type": "git",
"url": "https://github.com/doctrine/migrations.git",
"reference": "1b88fcb812f2cd6e77c83d16db60e3cf1e35c66c"
"reference": "1b823afbc40f932dae8272574faee53f2755eac5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/migrations/zipball/1b88fcb812f2cd6e77c83d16db60e3cf1e35c66c",
"reference": "1b88fcb812f2cd6e77c83d16db60e3cf1e35c66c",
"url": "https://api.github.com/repos/doctrine/migrations/zipball/1b823afbc40f932dae8272574faee53f2755eac5",
"reference": "1b823afbc40f932dae8272574faee53f2755eac5",
"shasum": ""
},
"require": {
@@ -1707,15 +1708,15 @@
"doctrine/event-manager": "^1.2 || ^2.0",
"php": "^8.1",
"psr/log": "^1.1.3 || ^2 || ^3",
"symfony/console": "^5.4 || ^6.0 || ^7.0",
"symfony/stopwatch": "^5.4 || ^6.0 || ^7.0",
"symfony/var-exporter": "^6.2 || ^7.0"
"symfony/console": "^5.4 || ^6.0 || ^7.0 || ^8.0",
"symfony/stopwatch": "^5.4 || ^6.0 || ^7.0 || ^8.0",
"symfony/var-exporter": "^6.2 || ^7.0 || ^8.0"
},
"conflict": {
"doctrine/orm": "<2.12 || >=4"
},
"require-dev": {
"doctrine/coding-standard": "^13",
"doctrine/coding-standard": "^14",
"doctrine/orm": "^2.13 || ^3",
"doctrine/persistence": "^2 || ^3 || ^4",
"doctrine/sql-formatter": "^1.0",
@@ -1727,9 +1728,9 @@
"phpstan/phpstan-strict-rules": "^2",
"phpstan/phpstan-symfony": "^2",
"phpunit/phpunit": "^10.3 || ^11.0 || ^12.0",
"symfony/cache": "^5.4 || ^6.0 || ^7.0",
"symfony/process": "^5.4 || ^6.0 || ^7.0",
"symfony/yaml": "^5.4 || ^6.0 || ^7.0"
"symfony/cache": "^5.4 || ^6.0 || ^7.0 || ^8.0",
"symfony/process": "^5.4 || ^6.0 || ^7.0 || ^8.0",
"symfony/yaml": "^5.4 || ^6.0 || ^7.0 || ^8.0"
},
"suggest": {
"doctrine/sql-formatter": "Allows to generate formatted SQL with the diff command.",
@@ -1771,7 +1772,7 @@
],
"support": {
"issues": "https://github.com/doctrine/migrations/issues",
"source": "https://github.com/doctrine/migrations/tree/3.9.4"
"source": "https://github.com/doctrine/migrations/tree/3.9.5"
},
"funding": [
{
@@ -1787,7 +1788,7 @@
"type": "tidelift"
}
],
"time": "2025-08-19T06:41:07+00:00"
"time": "2025-11-20T11:15:36+00:00"
},
{
"name": "doctrine/orm",
@@ -2203,25 +2204,25 @@
},
{
"name": "exbil/mailcow-php-api",
"version": "0.14.2",
"version": "0.15.0",
"source": {
"type": "git",
"url": "https://github.com/Exbil/mailcow-php-api.git",
"reference": "54357004d003d7825ab1b060419bd0a74b7a995a"
"reference": "ee2912335cc3e3a3a0ae206899afe4dafd9e7183"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Exbil/mailcow-php-api/zipball/54357004d003d7825ab1b060419bd0a74b7a995a",
"reference": "54357004d003d7825ab1b060419bd0a74b7a995a",
"url": "https://api.github.com/repos/Exbil/mailcow-php-api/zipball/ee2912335cc3e3a3a0ae206899afe4dafd9e7183",
"reference": "ee2912335cc3e3a3a0ae206899afe4dafd9e7183",
"shasum": ""
},
"require": {
"ext-json": "*",
"guzzlehttp/guzzle": "^7.5",
"php": ">=7.2"
"php": ">=7.4"
},
"require-dev": {
"phpunit/phpunit": "^9.5.0"
"phpunit/phpunit": "^9.5|^10.0|^11.0"
},
"type": "library",
"autoload": {
@@ -2242,7 +2243,7 @@
],
"authors": [
{
"name": "Efe Bagri",
"name": "Efe Bağrı",
"email": "composer@exbil.net",
"homepage": "https://www.exbil.net"
},
@@ -2256,10 +2257,12 @@
"homepage": "https://openducks.org"
}
],
"description": "A full-featured implementation of the MailCow API",
"description": "A full-featured implementation of the MailCow API with configurable SSL verification and timeout settings",
"keywords": [
"API-Client",
"api",
"email-api",
"mail-server",
"mailcow",
"mailcow-api",
"php",
@@ -2267,10 +2270,11 @@
"rest"
],
"support": {
"docs": "https://github.com/exbil/mailcow-php-api#readme",
"issues": "https://github.com/exbil/mailcow-php-api/issues",
"source": "https://github.com/exbil/mailcow-php-api"
},
"time": "2024-10-16T22:07:41+00:00"
"time": "2025-11-25T00:01:46+00:00"
},
{
"name": "firebase/php-jwt",
@@ -2459,16 +2463,16 @@
},
{
"name": "google/apiclient-services",
"version": "v0.420.1",
"version": "v0.421.0",
"source": {
"type": "git",
"url": "https://github.com/googleapis/google-api-php-client-services.git",
"reference": "f1200dbf48d02dcfa36c5771f4dbc0433655a7ab"
"reference": "d84e7301a52405677807564dab6b1a112dfd03bd"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/googleapis/google-api-php-client-services/zipball/f1200dbf48d02dcfa36c5771f4dbc0433655a7ab",
"reference": "f1200dbf48d02dcfa36c5771f4dbc0433655a7ab",
"url": "https://api.github.com/repos/googleapis/google-api-php-client-services/zipball/d84e7301a52405677807564dab6b1a112dfd03bd",
"reference": "d84e7301a52405677807564dab6b1a112dfd03bd",
"shasum": ""
},
"require": {
@@ -2497,9 +2501,9 @@
],
"support": {
"issues": "https://github.com/googleapis/google-api-php-client-services/issues",
"source": "https://github.com/googleapis/google-api-php-client-services/tree/v0.420.1"
"source": "https://github.com/googleapis/google-api-php-client-services/tree/v0.421.0"
},
"time": "2025-11-17T01:06:15+00:00"
"time": "2025-11-23T01:06:22+00:00"
},
{
"name": "google/auth",
@@ -3321,16 +3325,16 @@
},
{
"name": "google/gax",
"version": "v1.38.1",
"version": "v1.38.2",
"source": {
"type": "git",
"url": "https://github.com/googleapis/gax-php.git",
"reference": "04ba0821b551f8788e23ea0335186d224a7278d1"
"reference": "9848673203b9af459ce0481f73fa22debf7cc4db"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/googleapis/gax-php/zipball/04ba0821b551f8788e23ea0335186d224a7278d1",
"reference": "04ba0821b551f8788e23ea0335186d224a7278d1",
"url": "https://api.github.com/repos/googleapis/gax-php/zipball/9848673203b9af459ce0481f73fa22debf7cc4db",
"reference": "9848673203b9af459ce0481f73fa22debf7cc4db",
"shasum": ""
},
"require": {
@@ -3372,9 +3376,9 @@
],
"support": {
"issues": "https://github.com/googleapis/gax-php/issues",
"source": "https://github.com/googleapis/gax-php/tree/v1.38.1"
"source": "https://github.com/googleapis/gax-php/tree/v1.38.2"
},
"time": "2025-11-06T22:48:43+00:00"
"time": "2025-11-19T17:28:29+00:00"
},
{
"name": "google/grpc-gcp",
@@ -3874,16 +3878,16 @@
},
{
"name": "illuminate/collections",
"version": "v12.38.1",
"version": "v12.40.1",
"source": {
"type": "git",
"url": "https://github.com/illuminate/collections.git",
"reference": "deb291b109b6f7fd776a3550a120771137b3c5d1"
"reference": "3a794986bad4caf369d17ae19d4ef20a38dd8b0c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/illuminate/collections/zipball/deb291b109b6f7fd776a3550a120771137b3c5d1",
"reference": "deb291b109b6f7fd776a3550a120771137b3c5d1",
"url": "https://api.github.com/repos/illuminate/collections/zipball/3a794986bad4caf369d17ae19d4ef20a38dd8b0c",
"reference": "3a794986bad4caf369d17ae19d4ef20a38dd8b0c",
"shasum": ""
},
"require": {
@@ -3929,11 +3933,11 @@
"issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework"
},
"time": "2025-10-30T12:22:05+00:00"
"time": "2025-11-24T14:13:52+00:00"
},
{
"name": "illuminate/conditionable",
"version": "v12.38.1",
"version": "v12.40.1",
"source": {
"type": "git",
"url": "https://github.com/illuminate/conditionable.git",
@@ -3979,7 +3983,7 @@
},
{
"name": "illuminate/contracts",
"version": "v12.38.1",
"version": "v12.40.1",
"source": {
"type": "git",
"url": "https://github.com/illuminate/contracts.git",
@@ -4027,7 +4031,7 @@
},
{
"name": "illuminate/macroable",
"version": "v12.38.1",
"version": "v12.40.1",
"source": {
"type": "git",
"url": "https://github.com/illuminate/macroable.git",
@@ -4073,16 +4077,16 @@
},
{
"name": "illuminate/support",
"version": "v12.38.1",
"version": "v12.40.1",
"source": {
"type": "git",
"url": "https://github.com/illuminate/support.git",
"reference": "008b6c0d45f548de0f801d60a5854a7f9e4dd32f"
"reference": "6fb0a6a1850b7f276735aa1810b32df049ac16ba"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/illuminate/support/zipball/008b6c0d45f548de0f801d60a5854a7f9e4dd32f",
"reference": "008b6c0d45f548de0f801d60a5854a7f9e4dd32f",
"url": "https://api.github.com/repos/illuminate/support/zipball/6fb0a6a1850b7f276735aa1810b32df049ac16ba",
"reference": "6fb0a6a1850b7f276735aa1810b32df049ac16ba",
"shasum": ""
},
"require": {
@@ -4148,7 +4152,7 @@
"issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework"
},
"time": "2025-11-06T14:27:18+00:00"
"time": "2025-11-24T21:58:53+00:00"
},
{
"name": "imagine/imagine",
@@ -5122,22 +5126,22 @@
},
{
"name": "league/oauth2-client",
"version": "2.8.1",
"version": "2.9.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/oauth2-client.git",
"reference": "9df2924ca644736c835fc60466a3a60390d334f9"
"reference": "26e8c5da4f3d78cede7021e09b1330a0fc093d5e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/oauth2-client/zipball/9df2924ca644736c835fc60466a3a60390d334f9",
"reference": "9df2924ca644736c835fc60466a3a60390d334f9",
"url": "https://api.github.com/repos/thephpleague/oauth2-client/zipball/26e8c5da4f3d78cede7021e09b1330a0fc093d5e",
"reference": "26e8c5da4f3d78cede7021e09b1330a0fc093d5e",
"shasum": ""
},
"require": {
"ext-json": "*",
"guzzlehttp/guzzle": "^6.5.8 || ^7.4.5",
"php": "^7.1 || >=8.0.0 <8.5.0"
"php": "^7.1 || >=8.0.0 <8.6.0"
},
"require-dev": {
"mockery/mockery": "^1.3.5",
@@ -5181,9 +5185,9 @@
],
"support": {
"issues": "https://github.com/thephpleague/oauth2-client/issues",
"source": "https://github.com/thephpleague/oauth2-client/tree/2.8.1"
"source": "https://github.com/thephpleague/oauth2-client/tree/2.9.0"
},
"time": "2025-02-26T04:37:30+00:00"
"time": "2025-11-25T22:17:17+00:00"
},
{
"name": "liip/imagine-bundle",
@@ -6396,16 +6400,16 @@
},
{
"name": "pear/net_dns2",
"version": "v2.0.6",
"version": "v2.0.7",
"source": {
"type": "git",
"url": "https://github.com/mikepultz/netdns2.git",
"reference": "451841dc0d4fa3642f80e403039c6be3a247af8b"
"reference": "5353baa6d960623b64863fd7eeae663a1eb12e3d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/mikepultz/netdns2/zipball/451841dc0d4fa3642f80e403039c6be3a247af8b",
"reference": "451841dc0d4fa3642f80e403039c6be3a247af8b",
"url": "https://api.github.com/repos/mikepultz/netdns2/zipball/5353baa6d960623b64863fd7eeae663a1eb12e3d",
"reference": "5353baa6d960623b64863fd7eeae663a1eb12e3d",
"shasum": ""
},
"require": {
@@ -6455,7 +6459,7 @@
"type": "github"
}
],
"time": "2025-10-17T18:26:26+00:00"
"time": "2025-11-17T21:16:04+00:00"
},
{
"name": "phpdocumentor/reflection-common",
@@ -6512,16 +6516,16 @@
},
{
"name": "phpdocumentor/reflection-docblock",
"version": "5.6.3",
"version": "5.6.4",
"source": {
"type": "git",
"url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
"reference": "94f8051919d1b0369a6bcc7931d679a511c03fe9"
"reference": "90a04bcbf03784066f16038e87e23a0a83cee3c2"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/94f8051919d1b0369a6bcc7931d679a511c03fe9",
"reference": "94f8051919d1b0369a6bcc7931d679a511c03fe9",
"url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/90a04bcbf03784066f16038e87e23a0a83cee3c2",
"reference": "90a04bcbf03784066f16038e87e23a0a83cee3c2",
"shasum": ""
},
"require": {
@@ -6570,22 +6574,22 @@
"description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
"support": {
"issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
"source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.3"
"source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.4"
},
"time": "2025-08-01T19:43:32+00:00"
"time": "2025-11-17T21:13:10+00:00"
},
{
"name": "phpdocumentor/type-resolver",
"version": "1.10.0",
"version": "1.12.0",
"source": {
"type": "git",
"url": "https://github.com/phpDocumentor/TypeResolver.git",
"reference": "679e3ce485b99e84c775d28e2e96fade9a7fb50a"
"reference": "92a98ada2b93d9b201a613cb5a33584dde25f195"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/679e3ce485b99e84c775d28e2e96fade9a7fb50a",
"reference": "679e3ce485b99e84c775d28e2e96fade9a7fb50a",
"url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/92a98ada2b93d9b201a613cb5a33584dde25f195",
"reference": "92a98ada2b93d9b201a613cb5a33584dde25f195",
"shasum": ""
},
"require": {
@@ -6628,22 +6632,22 @@
"description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
"support": {
"issues": "https://github.com/phpDocumentor/TypeResolver/issues",
"source": "https://github.com/phpDocumentor/TypeResolver/tree/1.10.0"
"source": "https://github.com/phpDocumentor/TypeResolver/tree/1.12.0"
},
"time": "2024-11-09T15:12:26+00:00"
"time": "2025-11-21T15:09:14+00:00"
},
{
"name": "phpoffice/phpspreadsheet",
"version": "5.2.0",
"version": "5.3.0",
"source": {
"type": "git",
"url": "https://github.com/PHPOffice/PhpSpreadsheet.git",
"reference": "3b8994b3aac4b61018bc04fc8c441f4fd68c18eb"
"reference": "4d597c1aacdde1805a33c525b9758113ea0d90df"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/3b8994b3aac4b61018bc04fc8c441f4fd68c18eb",
"reference": "3b8994b3aac4b61018bc04fc8c441f4fd68c18eb",
"url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/4d597c1aacdde1805a33c525b9758113ea0d90df",
"reference": "4d597c1aacdde1805a33c525b9758113ea0d90df",
"shasum": ""
},
"require": {
@@ -6685,7 +6689,7 @@
},
"suggest": {
"dompdf/dompdf": "Option for rendering PDF with PDF Writer",
"ext-intl": "PHP Internationalization Functions, regquired for NumberFormat Wizard",
"ext-intl": "PHP Internationalization Functions, required for NumberFormat Wizard",
"mitoteam/jpgraph": "Option for rendering charts, or including charts with PDF or HTML Writers",
"mpdf/mpdf": "Option for rendering PDF with PDF Writer",
"tecnickcom/tcpdf": "Option for rendering PDF with PDF Writer"
@@ -6734,9 +6738,9 @@
],
"support": {
"issues": "https://github.com/PHPOffice/PhpSpreadsheet/issues",
"source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/5.2.0"
"source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/5.3.0"
},
"time": "2025-10-26T15:54:22+00:00"
"time": "2025-11-24T15:47:10+00:00"
},
{
"name": "phpseclib/phpseclib",
@@ -9948,16 +9952,16 @@
},
{
"name": "symfony/flex",
"version": "v2.9.0",
"version": "v2.10.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/flex.git",
"reference": "94b37978c9982dc41c5b6a4147892d2d3d1b9ce6"
"reference": "9cd384775973eabbf6e8b05784dda279fc67c28d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/flex/zipball/94b37978c9982dc41c5b6a4147892d2d3d1b9ce6",
"reference": "94b37978c9982dc41c5b6a4147892d2d3d1b9ce6",
"url": "https://api.github.com/repos/symfony/flex/zipball/9cd384775973eabbf6e8b05784dda279fc67c28d",
"reference": "9cd384775973eabbf6e8b05784dda279fc67c28d",
"shasum": ""
},
"require": {
@@ -9965,7 +9969,8 @@
"php": ">=8.1"
},
"conflict": {
"composer/semver": "<1.7.2"
"composer/semver": "<1.7.2",
"symfony/dotenv": "<5.4"
},
"require-dev": {
"composer/composer": "^2.1",
@@ -9996,7 +10001,7 @@
"description": "Composer plugin for Symfony",
"support": {
"issues": "https://github.com/symfony/flex/issues",
"source": "https://github.com/symfony/flex/tree/v2.9.0"
"source": "https://github.com/symfony/flex/tree/v2.10.0"
},
"funding": [
{
@@ -10016,7 +10021,7 @@
"type": "tidelift"
}
],
"time": "2025-10-31T15:22:50+00:00"
"time": "2025-11-16T09:38:19+00:00"
},
{
"name": "symfony/form",
@@ -14384,16 +14389,16 @@
},
{
"name": "tecnickcom/tcpdf",
"version": "6.10.0",
"version": "6.10.1",
"source": {
"type": "git",
"url": "https://github.com/tecnickcom/TCPDF.git",
"reference": "ca5b6de294512145db96bcbc94e61696599c391d"
"reference": "7a2701251e5d52fc3d508fd71704683eb54f5939"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/tecnickcom/TCPDF/zipball/ca5b6de294512145db96bcbc94e61696599c391d",
"reference": "ca5b6de294512145db96bcbc94e61696599c391d",
"url": "https://api.github.com/repos/tecnickcom/TCPDF/zipball/7a2701251e5d52fc3d508fd71704683eb54f5939",
"reference": "7a2701251e5d52fc3d508fd71704683eb54f5939",
"shasum": ""
},
"require": {
@@ -14443,7 +14448,7 @@
],
"support": {
"issues": "https://github.com/tecnickcom/TCPDF/issues",
"source": "https://github.com/tecnickcom/TCPDF/tree/6.10.0"
"source": "https://github.com/tecnickcom/TCPDF/tree/6.10.1"
},
"funding": [
{
@@ -14451,26 +14456,26 @@
"type": "custom"
}
],
"time": "2025-05-27T18:02:28+00:00"
"time": "2025-11-21T10:58:21+00:00"
},
{
"name": "twig/extra-bundle",
"version": "v3.22.0",
"version": "v3.22.1",
"source": {
"type": "git",
"url": "https://github.com/twigphp/twig-extra-bundle.git",
"reference": "6d253f0fe28a83a045497c8fb3ea9bfe84e82cf4"
"reference": "b6534bc925bec930004facca92fccebd0c809247"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/twigphp/twig-extra-bundle/zipball/6d253f0fe28a83a045497c8fb3ea9bfe84e82cf4",
"reference": "6d253f0fe28a83a045497c8fb3ea9bfe84e82cf4",
"url": "https://api.github.com/repos/twigphp/twig-extra-bundle/zipball/b6534bc925bec930004facca92fccebd0c809247",
"reference": "b6534bc925bec930004facca92fccebd0c809247",
"shasum": ""
},
"require": {
"php": ">=8.1.0",
"symfony/framework-bundle": "^5.4|^6.4|^7.0",
"symfony/twig-bundle": "^5.4|^6.4|^7.0",
"symfony/framework-bundle": "^5.4|^6.4|^7.0|^8.0",
"symfony/twig-bundle": "^5.4|^6.4|^7.0|^8.0",
"twig/twig": "^3.2|^4.0"
},
"require-dev": {
@@ -14513,7 +14518,7 @@
"twig"
],
"support": {
"source": "https://github.com/twigphp/twig-extra-bundle/tree/v3.22.0"
"source": "https://github.com/twigphp/twig-extra-bundle/tree/v3.22.1"
},
"funding": [
{
@@ -14525,25 +14530,25 @@
"type": "tidelift"
}
],
"time": "2025-09-15T05:57:37+00:00"
"time": "2025-11-02T11:00:49+00:00"
},
{
"name": "twig/intl-extra",
"version": "v3.22.0",
"version": "v3.22.1",
"source": {
"type": "git",
"url": "https://github.com/twigphp/intl-extra.git",
"reference": "7393fc911c7315db18a805d3a541ac7bb9e4fdc0"
"reference": "93ac31e53cdd3f2e541f42690cd0c54ca8138ab1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/twigphp/intl-extra/zipball/7393fc911c7315db18a805d3a541ac7bb9e4fdc0",
"reference": "7393fc911c7315db18a805d3a541ac7bb9e4fdc0",
"url": "https://api.github.com/repos/twigphp/intl-extra/zipball/93ac31e53cdd3f2e541f42690cd0c54ca8138ab1",
"reference": "93ac31e53cdd3f2e541f42690cd0c54ca8138ab1",
"shasum": ""
},
"require": {
"php": ">=8.1.0",
"symfony/intl": "^5.4|^6.4|^7.0",
"symfony/intl": "^5.4|^6.4|^7.0|^8.0",
"twig/twig": "^3.13|^4.0"
},
"require-dev": {
@@ -14577,7 +14582,7 @@
"twig"
],
"support": {
"source": "https://github.com/twigphp/intl-extra/tree/v3.22.0"
"source": "https://github.com/twigphp/intl-extra/tree/v3.22.1"
},
"funding": [
{
@@ -14589,7 +14594,7 @@
"type": "tidelift"
}
],
"time": "2025-09-15T06:05:04+00:00"
"time": "2025-11-02T11:00:49+00:00"
},
{
"name": "twig/twig",
@@ -15022,16 +15027,16 @@
},
{
"name": "web-token/jwt-library",
"version": "4.1.0",
"version": "4.1.2",
"source": {
"type": "git",
"url": "https://github.com/web-token/jwt-library.git",
"reference": "b05d01d4138b1e06328e29075a21a6da974935df"
"reference": "621ff3ec618c6a34f63d47e467cefe8788871d6f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/web-token/jwt-library/zipball/b05d01d4138b1e06328e29075a21a6da974935df",
"reference": "b05d01d4138b1e06328e29075a21a6da974935df",
"url": "https://api.github.com/repos/web-token/jwt-library/zipball/621ff3ec618c6a34f63d47e467cefe8788871d6f",
"reference": "621ff3ec618c6a34f63d47e467cefe8788871d6f",
"shasum": ""
},
"require": {
@@ -15095,7 +15100,7 @@
],
"support": {
"issues": "https://github.com/web-token/jwt-library/issues",
"source": "https://github.com/web-token/jwt-library/tree/4.1.0"
"source": "https://github.com/web-token/jwt-library/tree/4.1.2"
},
"funding": [
{
@@ -15107,7 +15112,7 @@
"type": "patreon"
}
],
"time": "2025-10-22T08:01:38+00:00"
"time": "2025-11-17T21:14:49+00:00"
},
{
"name": "webmozart/assert",
@@ -15924,16 +15929,16 @@
},
{
"name": "phpunit/phpunit",
"version": "12.4.3",
"version": "12.4.4",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "d8f644d8d9bb904867f7a0aeb1bd306e0d966949"
"reference": "9253ec75a672e39fcc9d85bdb61448215b8162c7"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/d8f644d8d9bb904867f7a0aeb1bd306e0d966949",
"reference": "d8f644d8d9bb904867f7a0aeb1bd306e0d966949",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/9253ec75a672e39fcc9d85bdb61448215b8162c7",
"reference": "9253ec75a672e39fcc9d85bdb61448215b8162c7",
"shasum": ""
},
"require": {
@@ -16001,7 +16006,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
"source": "https://github.com/sebastianbergmann/phpunit/tree/12.4.3"
"source": "https://github.com/sebastianbergmann/phpunit/tree/12.4.4"
},
"funding": [
{
@@ -16025,7 +16030,7 @@
"type": "tidelift"
}
],
"time": "2025-11-13T07:20:26+00:00"
"time": "2025-11-21T07:39:11+00:00"
},
{
"name": "rector/rector",
@@ -17325,31 +17330,31 @@
},
{
"name": "symfony/maker-bundle",
"version": "v1.64.0",
"version": "v1.65.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/maker-bundle.git",
"reference": "c86da84640b0586e92aee2b276ee3638ef2f425a"
"reference": "9a0276d7486b29cae641b4a0a85d5e5cc149bff2"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/maker-bundle/zipball/c86da84640b0586e92aee2b276ee3638ef2f425a",
"reference": "c86da84640b0586e92aee2b276ee3638ef2f425a",
"url": "https://api.github.com/repos/symfony/maker-bundle/zipball/9a0276d7486b29cae641b4a0a85d5e5cc149bff2",
"reference": "9a0276d7486b29cae641b4a0a85d5e5cc149bff2",
"shasum": ""
},
"require": {
"doctrine/inflector": "^2.0",
"nikic/php-parser": "^5.0",
"php": ">=8.1",
"symfony/config": "^6.4|^7.0",
"symfony/console": "^6.4|^7.0",
"symfony/dependency-injection": "^6.4|^7.0",
"symfony/config": "^6.4|^7.0|^8.0",
"symfony/console": "^6.4|^7.0|^8.0",
"symfony/dependency-injection": "^6.4|^7.0|^8.0",
"symfony/deprecation-contracts": "^2.2|^3",
"symfony/filesystem": "^6.4|^7.0",
"symfony/finder": "^6.4|^7.0",
"symfony/framework-bundle": "^6.4|^7.0",
"symfony/http-kernel": "^6.4|^7.0",
"symfony/process": "^6.4|^7.0"
"symfony/filesystem": "^6.4|^7.0|^8.0",
"symfony/finder": "^6.4|^7.0|^8.0",
"symfony/framework-bundle": "^6.4|^7.0|^8.0",
"symfony/http-kernel": "^6.4|^7.0|^8.0",
"symfony/process": "^6.4|^7.0|^8.0"
},
"conflict": {
"doctrine/doctrine-bundle": "<2.10",
@@ -17357,13 +17362,14 @@
},
"require-dev": {
"composer/semver": "^3.0",
"doctrine/doctrine-bundle": "^2.5.0",
"doctrine/doctrine-bundle": "^2.5.0|^3.0.0",
"doctrine/orm": "^2.15|^3",
"symfony/http-client": "^6.4|^7.0",
"symfony/phpunit-bridge": "^6.4.1|^7.0",
"symfony/security-core": "^6.4|^7.0",
"symfony/security-http": "^6.4|^7.0",
"symfony/yaml": "^6.4|^7.0",
"doctrine/persistence": "^3.1|^4.0",
"symfony/http-client": "^6.4|^7.0|^8.0",
"symfony/phpunit-bridge": "^6.4.1|^7.0|^8.0",
"symfony/security-core": "^6.4|^7.0|^8.0",
"symfony/security-http": "^6.4|^7.0|^8.0",
"symfony/yaml": "^6.4|^7.0|^8.0",
"twig/twig": "^3.0|^4.x-dev"
},
"type": "symfony-bundle",
@@ -17398,7 +17404,7 @@
],
"support": {
"issues": "https://github.com/symfony/maker-bundle/issues",
"source": "https://github.com/symfony/maker-bundle/tree/v1.64.0"
"source": "https://github.com/symfony/maker-bundle/tree/v1.65.0"
},
"funding": [
{
@@ -17409,12 +17415,16 @@
"url": "https://github.com/fabpot",
"type": "github"
},
{
"url": "https://github.com/nicolas-grekas",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
"time": "2025-06-23T16:12:08+00:00"
"time": "2025-11-24T15:41:51+00:00"
},
{
"name": "symfony/web-profiler-bundle",
@@ -17507,16 +17517,16 @@
},
{
"name": "theseer/tokenizer",
"version": "1.2.3",
"version": "1.3.1",
"source": {
"type": "git",
"url": "https://github.com/theseer/tokenizer.git",
"reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2"
"reference": "b7489ce515e168639d17feec34b8847c326b0b3c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
"reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
"url": "https://api.github.com/repos/theseer/tokenizer/zipball/b7489ce515e168639d17feec34b8847c326b0b3c",
"reference": "b7489ce515e168639d17feec34b8847c326b0b3c",
"shasum": ""
},
"require": {
@@ -17545,7 +17555,7 @@
"description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
"support": {
"issues": "https://github.com/theseer/tokenizer/issues",
"source": "https://github.com/theseer/tokenizer/tree/1.2.3"
"source": "https://github.com/theseer/tokenizer/tree/1.3.1"
},
"funding": [
{
@@ -17553,7 +17563,7 @@
"type": "github"
}
],
"time": "2024-03-03T12:36:25+00:00"
"time": "2025-11-17T20:03:58+00:00"
}
],
"aliases": [],

View File

@@ -17,6 +17,27 @@ vich_uploader:
inject_on_load: true
delete_on_update: true
delete_on_remove: true
members_page_avatar:
uri_prefix: /storage/members_page_avatar
upload_destination: '%kernel.project_dir%/public/storage/members_page_avatar'
namer: Vich\UploaderBundle\Naming\UniqidNamer
inject_on_load: true
delete_on_update: true
delete_on_remove: true
members_page_cosplay:
uri_prefix: /storage/members_page_avatar
upload_destination: '%kernel.project_dir%/public/storage/members_page_avatar'
namer: Vich\UploaderBundle\Naming\UniqidNamer
inject_on_load: true
delete_on_update: true
delete_on_remove: true
members_page_cosplay_details:
uri_prefix: /storage/members_page_cosplay_details
upload_destination: '%kernel.project_dir%/public/storage/members_page_cosplay_details'
namer: Vich\UploaderBundle\Naming\UniqidNamer
inject_on_load: true
delete_on_update: true
delete_on_remove: true
ag:
uri_prefix: /storage/ag
upload_destination: '%kernel.project_dir%/public/storage/ag'

View File

@@ -30,7 +30,12 @@
output stdout
format json
}
handle_path /ts.js {
redir https://widget.trustpilot.com/bootstrap/v5/tp.widget.bootstrap.min.js
}
handle_path /tp.widget.bootstrap.min.js.map {
redir https://widget.trustpilot.com/bootstrap/v5/tp.widget.bootstrap.min.js.map
}
# Configuration des en-têtes CORS pour les requêtes OPTIONS du profiler
# Note: Caddy a une directive 'header' mais c'est pour les réponses.
# Pour gérer spécifiquement les OPTIONS en tant que preflight, c'est plus direct

View File

@@ -0,0 +1,36 @@
<?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 Version20251126073528 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 TABLE members_page (id SERIAL NOT NULL, member_id INT DEFAULT NULL, title VARCHAR(255) NOT NULL, description TEXT DEFAULT NULL, avatar_file_name VARCHAR(255) DEFAULT NULL, avatar_dimensions JSON DEFAULT NULL, avatar_size VARCHAR(255) DEFAULT NULL, avatar_mine_type VARCHAR(255) DEFAULT NULL, avatar_original_name VARCHAR(255) DEFAULT NULL, update_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, PRIMARY KEY(id))');
$this->addSql('CREATE UNIQUE INDEX UNIQ_5B6096857597D3FE ON members_page (member_id)');
$this->addSql('COMMENT ON COLUMN members_page.update_at IS \'(DC2Type:datetime_immutable)\'');
$this->addSql('ALTER TABLE members_page ADD CONSTRAINT FK_5B6096857597D3FE FOREIGN KEY (member_id) REFERENCES members (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
}
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 members_page DROP CONSTRAINT FK_5B6096857597D3FE');
$this->addSql('DROP TABLE members_page');
}
}

View File

@@ -0,0 +1,35 @@
<?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 Version20251126073931 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 TABLE members_cosplan (id SERIAL NOT NULL, member_id INT DEFAULT NULL, personnage VARCHAR(255) NOT NULL, univers VARCHAR(255) NOT NULL, description TEXT DEFAULT NULL, PRIMARY KEY(id))');
$this->addSql('CREATE INDEX IDX_7BAC19D77597D3FE ON members_cosplan (member_id)');
$this->addSql('ALTER TABLE members_cosplan ADD CONSTRAINT FK_7BAC19D77597D3FE FOREIGN KEY (member_id) REFERENCES members (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
}
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 members_cosplan DROP CONSTRAINT FK_7BAC19D77597D3FE');
$this->addSql('DROP TABLE members_cosplan');
}
}

View File

@@ -0,0 +1,43 @@
<?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 Version20251126074809 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('ALTER TABLE members_cosplan ADD cosplan_file_name VARCHAR(255) DEFAULT NULL');
$this->addSql('ALTER TABLE members_cosplan ADD cosplan_dimensions JSON DEFAULT NULL');
$this->addSql('ALTER TABLE members_cosplan ADD cosplan_size VARCHAR(255) DEFAULT NULL');
$this->addSql('ALTER TABLE members_cosplan ADD cosplan_mine_type VARCHAR(255) DEFAULT NULL');
$this->addSql('ALTER TABLE members_cosplan ADD cosplan_original_name VARCHAR(255) DEFAULT NULL');
$this->addSql('ALTER TABLE members_cosplan ADD update_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL');
$this->addSql('COMMENT ON COLUMN members_cosplan.update_at IS \'(DC2Type:datetime_immutable)\'');
}
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 members_cosplan DROP cosplan_file_name');
$this->addSql('ALTER TABLE members_cosplan DROP cosplan_dimensions');
$this->addSql('ALTER TABLE members_cosplan DROP cosplan_size');
$this->addSql('ALTER TABLE members_cosplan DROP cosplan_mine_type');
$this->addSql('ALTER TABLE members_cosplan DROP cosplan_original_name');
$this->addSql('ALTER TABLE members_cosplan DROP update_at');
}
}

View File

@@ -0,0 +1,34 @@
<?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 Version20251126074920 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('ALTER TABLE members_cosplan ADD is_approved BOOLEAN NOT NULL');
$this->addSql('ALTER TABLE members_page ADD is_approved BOOLEAN NOT NULL');
}
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 members_cosplan DROP is_approved');
$this->addSql('ALTER TABLE members_page DROP is_approved');
}
}

View File

@@ -11,23 +11,23 @@
},
"devDependencies": {
"@hotwired/stimulus": "^3.2.2",
"@tailwindcss/postcss": "^4.1.13",
"@tailwindcss/postcss": "^4.1.17",
"postcss": "^8.5.6",
"postcss-scss": "^4.0.9",
"rollup-plugin-javascript-obfuscator": "^1.0.4",
"sass": "^1.93.0",
"vite": "^7.1.7"
"sass": "^1.94.2",
"vite": "^7.2.4"
},
"dependencies": {
"@grafikart/drop-files-element": "^1.0.9",
"@hotwired/turbo": "^8.0.13",
"@hotwired/turbo": "^8.0.20",
"@preact/preset-vite": "^2.10.2",
"@tailwindcss/vite": "^4.1.13",
"autoprefixer": "^10.4.21",
"@tailwindcss/vite": "^4.1.17",
"autoprefixer": "^10.4.22",
"body-scroll-lock": "^4.0.0-beta.0",
"react-email-editor": "^1.7.11",
"sortablejs": "^1.15.6",
"tailwindcss": "^4.1.13",
"tailwindcss": "^4.1.17",
"tom-select": "^2.4.3",
"vite-plugin-compression": "^0.5.1",
"vite-plugin-favicon": "^1.0.8"

View File

@@ -110,6 +110,15 @@ class Members
#[ORM\OneToMany(targetEntity: MainSigned::class, mappedBy: 'members')]
private Collection $mainSigneds;
#[ORM\OneToOne(mappedBy: 'member', cascade: ['persist', 'remove'])]
private ?MembersPage $membersPage = null;
/**
* @var Collection<int, MembersCosplan>
*/
#[ORM\OneToMany(targetEntity: MembersCosplan::class, mappedBy: 'member')]
private Collection $membersCosplans;
public function __construct()
{
$this->membersCotisations = new ArrayCollection();
@@ -118,6 +127,7 @@ class Members
$this->mainMembers = new ArrayCollection();
$this->agVotes = new ArrayCollection();
$this->mainSigneds = new ArrayCollection();
$this->membersCosplans = new ArrayCollection();
}
public function getId(): ?int
@@ -576,4 +586,56 @@ class Members
return $this;
}
public function getMembersPage(): ?MembersPage
{
return $this->membersPage;
}
public function setMembersPage(?MembersPage $membersPage): static
{
// unset the owning side of the relation if necessary
if ($membersPage === null && $this->membersPage !== null) {
$this->membersPage->setMember(null);
}
// set the owning side of the relation if necessary
if ($membersPage !== null && $membersPage->getMember() !== $this) {
$membersPage->setMember($this);
}
$this->membersPage = $membersPage;
return $this;
}
/**
* @return Collection<int, MembersCosplan>
*/
public function getMembersCosplans(): Collection
{
return $this->membersCosplans;
}
public function addMembersCosplan(MembersCosplan $membersCosplan): static
{
if (!$this->membersCosplans->contains($membersCosplan)) {
$this->membersCosplans->add($membersCosplan);
$membersCosplan->setMember($this);
}
return $this;
}
public function removeMembersCosplan(MembersCosplan $membersCosplan): static
{
if ($this->membersCosplans->removeElement($membersCosplan)) {
// set the owning side to null (unless already changed)
if ($membersCosplan->getMember() === $this) {
$membersCosplan->setMember(null);
}
}
return $this;
}
}

View File

@@ -0,0 +1,227 @@
<?php
namespace App\Entity;
use App\Repository\MembersCosplanRepository;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\HttpFoundation\File\File;
use Vich\UploaderBundle\Mapping\Annotation as Vich;
#[ORM\Entity(repositoryClass: MembersCosplanRepository::class)]
#[Vich\Uploadable()]
class MembersCosplan
{
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column]
private ?int $id = null;
#[ORM\ManyToOne(inversedBy: 'membersCosplans')]
private ?Members $member = null;
#[ORM\Column(length: 255)]
private ?string $personnage = null;
#[ORM\Column(length: 255)]
private ?string $univers = null;
#[ORM\Column(type: Types::TEXT, nullable: true)]
private ?string $description = null;
#[Vich\UploadableField(mapping: 'members_page_avatar',fileNameProperty: 'cosplanFileName', size: 'cosplanSize', mimeType: 'cosplanMineType', originalName: 'cosplanOriginalName',dimensions: 'cosplanDimensions')]
private ?File $cosplan = null;
#[ORM\Column(nullable: true)]
private ?string $cosplanFileName = null;
#[ORM\Column(nullable: true)]
private ?array $cosplanDimensions = [];
#[ORM\Column(length: 255,nullable: true)]
private ?string $cosplanSize = null;
#[ORM\Column(length: 255,nullable: true)]
private ?string $cosplanMineType = null;
#[ORM\Column(length: 255,nullable: true)]
private ?string $cosplanOriginalName = null;
#[ORM\Column(nullable: true)]
private ?\DateTimeImmutable $updateAt;
#[ORM\Column]
private ?bool $isApproved = null;
public function getId(): ?int
{
return $this->id;
}
public function getMember(): ?Members
{
return $this->member;
}
public function setMember(?Members $member): static
{
$this->member = $member;
return $this;
}
public function getPersonnage(): ?string
{
return $this->personnage;
}
public function setPersonnage(string $personnage): static
{
$this->personnage = $personnage;
return $this;
}
public function getUnivers(): ?string
{
return $this->univers;
}
public function setUnivers(string $univers): static
{
$this->univers = $univers;
return $this;
}
public function getDescription(): ?string
{
return $this->description;
}
public function setDescription(?string $description): static
{
$this->description = $description;
return $this;
}
/**
* @return \DateTimeImmutable|null
*/
public function getUpdateAt(): ?\DateTimeImmutable
{
return $this->updateAt;
}
/**
* @return File|null
*/
public function getCosplan(): ?File
{
return $this->cosplan;
}
/**
* @return array|null
*/
public function getCosplanDimensions(): ?array
{
return $this->cosplanDimensions;
}
/**
* @return string|null
*/
public function getCosplanFileName(): ?string
{
return $this->cosplanFileName;
}
/**
* @return string|null
*/
public function getCosplanMineType(): ?string
{
return $this->cosplanMineType;
}
/**
* @return string|null
*/
public function getCosplanOriginalName(): ?string
{
return $this->cosplanOriginalName;
}
/**
* @return string|null
*/
public function getCosplanSize(): ?string
{
return $this->cosplanSize;
}
/**
* @param \DateTimeImmutable|null $updateAt
*/
public function setUpdateAt(?\DateTimeImmutable $updateAt): void
{
$this->updateAt = $updateAt;
}
/**
* @param File|null $cosplan
*/
public function setCosplan(?File $cosplan): void
{
$this->cosplan = $cosplan;
}
/**
* @param array|null $cosplanDimensions
*/
public function setCosplanDimensions(?array $cosplanDimensions): void
{
$this->cosplanDimensions = $cosplanDimensions;
}
/**
* @param string|null $cosplanFileName
*/
public function setCosplanFileName(?string $cosplanFileName): void
{
$this->cosplanFileName = $cosplanFileName;
}
/**
* @param string|null $cosplanMineType
*/
public function setCosplanMineType(?string $cosplanMineType): void
{
$this->cosplanMineType = $cosplanMineType;
}
/**
* @param string|null $cosplanOriginalName
*/
public function setCosplanOriginalName(?string $cosplanOriginalName): void
{
$this->cosplanOriginalName = $cosplanOriginalName;
}
/**
* @param string|null $cosplanSize
*/
public function setCosplanSize(?string $cosplanSize): void
{
$this->cosplanSize = $cosplanSize;
}
public function isApproved(): ?bool
{
return $this->isApproved;
}
public function setIsApproved(bool $isApproved): static
{
$this->isApproved = $isApproved;
return $this;
}
}

212
src/Entity/MembersPage.php Normal file
View File

@@ -0,0 +1,212 @@
<?php
namespace App\Entity;
use App\Repository\MembersPageRepository;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\HttpFoundation\File\File;
use Vich\UploaderBundle\Mapping\Annotation as Vich;
#[ORM\Entity(repositoryClass: MembersPageRepository::class)]
#[Vich\Uploadable()]
class MembersPage
{
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column]
private ?int $id = null;
#[ORM\OneToOne(inversedBy: 'membersPage', cascade: ['persist', 'remove'])]
private ?Members $member = null;
#[ORM\Column(length: 255)]
private ?string $title = null;
#[ORM\Column(type: Types::TEXT, nullable: true)]
private ?string $description = null;
#[Vich\UploadableField(mapping: 'members_page_avatar',fileNameProperty: 'avatarFileName', size: 'avatarSize', mimeType: 'avatarMineType', originalName: 'avatarOriginalName',dimensions: 'avatarDimensions')]
private ?File $avatar = null;
#[ORM\Column(nullable: true)]
private ?string $avatarFileName = null;
#[ORM\Column(nullable: true)]
private ?array $avatarDimensions = [];
#[ORM\Column(length: 255,nullable: true)]
private ?string $avatarSize = null;
#[ORM\Column(length: 255,nullable: true)]
private ?string $avatarMineType = null;
#[ORM\Column(length: 255,nullable: true)]
private ?string $avatarOriginalName = null;
#[ORM\Column(nullable: true)]
private ?\DateTimeImmutable $updateAt;
#[ORM\Column]
private ?bool $isApproved = null;
public function getId(): ?int
{
return $this->id;
}
public function getMember(): ?Members
{
return $this->member;
}
public function setMember(?Members $member): static
{
$this->member = $member;
return $this;
}
public function getTitle(): ?string
{
return $this->title;
}
public function setTitle(string $title): static
{
$this->title = $title;
return $this;
}
public function getDescription(): ?string
{
return $this->description;
}
public function setDescription(?string $description): static
{
$this->description = $description;
return $this;
}
/**
* @return \DateTimeImmutable|null
*/
public function getUpdateAt(): ?\DateTimeImmutable
{
return $this->updateAt;
}
/**
* @return File|null
*/
public function getAvatar(): ?File
{
return $this->avatar;
}
/**
* @return array|null
*/
public function getAvatarDimensions(): ?array
{
return $this->avatarDimensions;
}
/**
* @return string|null
*/
public function getAvatarFileName(): ?string
{
return $this->avatarFileName;
}
/**
* @return string|null
*/
public function getAvatarMineType(): ?string
{
return $this->avatarMineType;
}
/**
* @return string|null
*/
public function getAvatarOriginalName(): ?string
{
return $this->avatarOriginalName;
}
/**
* @return string|null
*/
public function getAvatarSize(): ?string
{
return $this->avatarSize;
}
/**
* @param string|null $avatarSize
*/
public function setAvatarSize(?string $avatarSize): void
{
$this->avatarSize = $avatarSize;
}
/**
* @param string|null $avatarOriginalName
*/
public function setAvatarOriginalName(?string $avatarOriginalName): void
{
$this->avatarOriginalName = $avatarOriginalName;
}
/**
* @param string|null $avatarMineType
*/
public function setAvatarMineType(?string $avatarMineType): void
{
$this->avatarMineType = $avatarMineType;
}
/**
* @param string|null $avatarFileName
*/
public function setAvatarFileName(?string $avatarFileName): void
{
$this->avatarFileName = $avatarFileName;
}
/**
* @param array|null $avatarDimensions
*/
public function setAvatarDimensions(?array $avatarDimensions): void
{
$this->avatarDimensions = $avatarDimensions;
}
/**
* @param \DateTimeImmutable|null $updateAt
*/
public function setUpdateAt(?\DateTimeImmutable $updateAt): void
{
$this->updateAt = $updateAt;
}
/**
* @param File|null $avatar
*/
public function setAvatar(?File $avatar): void
{
$this->avatar = $avatar;
}
public function isApproved(): ?bool
{
return $this->isApproved;
}
public function setIsApproved(bool $isApproved): static
{
$this->isApproved = $isApproved;
return $this;
}
}

View File

@@ -0,0 +1,43 @@
<?php
namespace App\Repository;
use App\Entity\MembersCosplan;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Persistence\ManagerRegistry;
/**
* @extends ServiceEntityRepository<MembersCosplan>
*/
class MembersCosplanRepository extends ServiceEntityRepository
{
public function __construct(ManagerRegistry $registry)
{
parent::__construct($registry, MembersCosplan::class);
}
// /**
// * @return MembersCospan[] Returns an array of MembersCospan objects
// */
// public function findByExampleField($value): array
// {
// return $this->createQueryBuilder('m')
// ->andWhere('m.exampleField = :val')
// ->setParameter('val', $value)
// ->orderBy('m.id', 'ASC')
// ->setMaxResults(10)
// ->getQuery()
// ->getResult()
// ;
// }
// public function findOneBySomeField($value): ?MembersCospan
// {
// return $this->createQueryBuilder('m')
// ->andWhere('m.exampleField = :val')
// ->setParameter('val', $value)
// ->getQuery()
// ->getOneOrNullResult()
// ;
// }
}

View File

@@ -0,0 +1,43 @@
<?php
namespace App\Repository;
use App\Entity\MembersPage;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Persistence\ManagerRegistry;
/**
* @extends ServiceEntityRepository<MembersPage>
*/
class MembersPageRepository extends ServiceEntityRepository
{
public function __construct(ManagerRegistry $registry)
{
parent::__construct($registry, MembersPage::class);
}
// /**
// * @return MembersPage[] Returns an array of MembersPage objects
// */
// public function findByExampleField($value): array
// {
// return $this->createQueryBuilder('m')
// ->andWhere('m.exampleField = :val')
// ->setParameter('val', $value)
// ->orderBy('m.id', 'ASC')
// ->setMaxResults(10)
// ->getQuery()
// ->getResult()
// ;
// }
// public function findOneBySomeField($value): ?MembersPage
// {
// return $this->createQueryBuilder('m')
// ->andWhere('m.exampleField = :val')
// ->setParameter('val', $value)
// ->getQuery()
// ->getOneOrNullResult()
// ;
// }
}