Compare commits
	
		
			91 Commits
		
	
	
		
			202210.10.
			...
			release/te
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | b18719a351 | ||
| 148687e0e2 | |||
|  | 82ee0db8de | ||
| 01959d06d4 | |||
| 6d019adb1d | |||
| a912f29bd9 | |||
| 921b5c39de | |||
| cb11a6cddd | |||
| 65dc5ba549 | |||
| b4a158a150 | |||
| 3f2e587291 | |||
| 0429802206 | |||
| 72348f77dc | |||
| ed156c5bae | |||
| 81d64d44a8 | |||
| 4cc6fbc7ec | |||
| 43c1fcfd36 | |||
| 84dc922364 | |||
| 927dd6e7db | |||
| 8e1619bc18 | |||
| f4cdff06a0 | |||
| dd30db868c | |||
| 8c0ba841ee | |||
| 977ab5927c | |||
| 7ef8e99c03 | |||
| 0e8396c554 | |||
| 6d7d3e0259 | |||
| 4abc2aa3ee | |||
| f06b8dcd1e | |||
| 7f85d66337 | |||
| cc716beaec | |||
| ac61038625 | |||
| 9827832753 | |||
| 0706901415 | |||
| c4d3c784d3 | |||
| ce136ba0f3 | |||
| 05d4a10a5b | |||
|  | c06166fdc2 | ||
| fb1219163e | |||
| 52c40e5f52 | |||
| a144b0e4be | |||
| 8d310ef7c8 | |||
| eff7e9470d | |||
| cad7c0c53d | |||
| c29f6cdf96 | |||
| 430915f831 | |||
| 29253b4f01 | |||
| 93972a0135 | |||
| 63c7130be3 | |||
| 63489e7055 | |||
| 6d8b858cc8 | |||
| 28444d5bbf | |||
| fb25e8b346 | |||
| efed281312 | |||
| a6a988a33a | |||
| 859eb37526 | |||
| b55914e40f | |||
| 7f1085d2c2 | |||
|  | b81638eda9 | ||
| 571d662737 | |||
| 78a98bff40 | |||
| 2f18130e72 | |||
| 2af27e8b42 | |||
| fcd00855f9 | |||
| e9c478c062 | |||
| d38e9a5c0a | |||
| b63a4f2a5f | |||
| 1a1188c612 | |||
| 39b9e839c2 | |||
| 23c438f0d7 | |||
| a4fd3dbeb6 | |||
| 1ef5ef50a3 | |||
| da2149cb60 | |||
| 491c5f3b49 | |||
| 8d3b56c6fe | |||
| 4157b4bb21 | |||
| 99ec0b765f | |||
| dc19006738 | |||
| e55562c4cd | |||
| 82c8140e4b | |||
| e55745b48b | |||
| f80d2c47ce | |||
| da2f5f37c0 | |||
| beab370cd6 | |||
| b10074e440 | |||
| d8792adc5f | |||
| 0ba659e17f | |||
| 645113c13a | |||
| 412cc332bb | |||
| ba33c507e6 | |||
| a54f1d1a06 | 
							
								
								
									
										46
									
								
								.drone.yml
									
									
									
									
									
								
							
							
						
						
									
										46
									
								
								.drone.yml
									
									
									
									
									
								
							| @@ -21,7 +21,7 @@ steps: | ||||
|           registry: h3m6q87t.gra7.container-registry.ovh.net | ||||
|           repo: h3m6q87t.gra7.container-registry.ovh.net/chillbasics/php-base | ||||
|           tag: latest | ||||
|           target: chill_base_php | ||||
|           target: chill_base_php82 | ||||
|           pull_image: true | ||||
|           cache_from: | ||||
|               - h3m6q87t.gra7.container-registry.ovh.net/chillbasics/php-base:latest | ||||
| @@ -33,6 +33,8 @@ steps: | ||||
|       commands: | ||||
|           - composer install --no-scripts --no-interaction | ||||
|           - composer update --with-all-dependencies --no-interaction chill-project/chill-bundles | ||||
|       depends_on: | ||||
|           - build-base-image | ||||
|  | ||||
|     - name: build-assets | ||||
|       image: node:14 | ||||
| @@ -40,6 +42,8 @@ steps: | ||||
|       commands: | ||||
|           - yarn install | ||||
|           - yarn run encore production | ||||
|       depends_on: | ||||
|           - composer-install | ||||
|  | ||||
|     - name: build-image-php | ||||
|       image: plugins/docker | ||||
| @@ -56,6 +60,9 @@ steps: | ||||
|           cache_from: | ||||
|               - h3m6q87t.gra7.container-registry.ovh.net/chillbasics/php-base:latest | ||||
|               - chill/base-image:latest | ||||
|       depends_on: | ||||
|           - build-assets | ||||
|           - composer-install | ||||
|  | ||||
|     - name: build-image-nginx | ||||
|       image: plugins/docker | ||||
| @@ -70,3 +77,40 @@ steps: | ||||
|           tag: | ||||
|             - ${DRONE_TAG} | ||||
|           Dockerfile: docker/nginx/Dockerfile | ||||
|       depends_on: | ||||
|           - build-assets | ||||
|  | ||||
| --- | ||||
|  | ||||
| kind: pipeline | ||||
| type: docker | ||||
| name: build-base-image-php82 | ||||
|  | ||||
| trigger: | ||||
|     event: | ||||
|         - cron | ||||
|         - push | ||||
|     cron: | ||||
|         - base-image-php82 | ||||
|  | ||||
| steps: | ||||
|     - name: build-base-image | ||||
|       image: plugins/docker | ||||
|       settings: | ||||
|           username: | ||||
|               from_secret: docker_username_gitea | ||||
|           password: | ||||
|               from_secret: docker_password_gitea | ||||
|           registry: gitea.champs-libres.be/chill-project/chill-skeleton-basic | ||||
|           repo: gitea.champs-libres.be/chill-project/chill-skeleton-basic/base-image | ||||
|           tag: | ||||
|             - php82 | ||||
|             - latest | ||||
|           target: chill_base_php82 | ||||
|           pull_image: true | ||||
|  | ||||
| --- | ||||
| kind: signature | ||||
| hmac: 707a5ef589fb6320f9e9e1dec7d8d4d11b477ba09e3b2b08d6f31f98d6d3f5d0 | ||||
|  | ||||
| ... | ||||
|   | ||||
							
								
								
									
										51
									
								
								.env
									
									
									
									
									
								
							
							
						
						
									
										51
									
								
								.env
									
									
									
									
									
								
							| @@ -3,18 +3,16 @@ | ||||
| ## `$ composer symfony:dump-env prod` | ||||
| ## | ||||
|  | ||||
| ## Project environment | ||||
| # this should be set in docker-compose.yml file | ||||
| # APP_ENV=prod | ||||
|  | ||||
| ## Enable debug | ||||
| APP_DEBUG=false | ||||
|  | ||||
| ## Locale | ||||
| LOCALE=fr | ||||
|  | ||||
| ## Framework secret | ||||
| APP_SECRET=ThisTokenIsNotSoSecretChangeIt | ||||
| ###> symfony/framework-bundle ### | ||||
| # this should be set in docker-compose.yml file | ||||
| APP_ENV=prod | ||||
| APP_SECRET=ChangeItf2b58287ef7f9976409d3f6c72529e99ChangeIt | ||||
| TRUSTED_PROXIES=127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16 | ||||
| TRUSTED_HOSTS='^(localhost|example\.com|nginx)$' | ||||
| ###< symfony/framework-bundle ### | ||||
|  | ||||
| ## Wopi server for editing documents online | ||||
| WOPI_SERVER=http://collabora:9980 | ||||
| @@ -22,13 +20,6 @@ WOPI_SERVER=http://collabora:9980 | ||||
| # must be manually set in .env.local | ||||
| # ADMIN_PASSWORD= | ||||
|  | ||||
| ## Symfony/framework-bundle | ||||
| TRUSTED_HOSTS='^(localhost|127.0.0.1|test.localde)$' | ||||
| TRUSTED_PROXIES=~ | ||||
|  | ||||
| ## Doctrine/doctrine-bundle | ||||
| DATABASE_URL= | ||||
|  | ||||
| ## Symfony/swiftmailer | ||||
| ## Mailer | ||||
| ###> symfony/mailer ### | ||||
| @@ -60,6 +51,14 @@ TWILIO_SID=~ | ||||
| TWILIO_SECRET=~ | ||||
| DEFAULT_CARRIER_CODE=BE | ||||
|  | ||||
| ADD_ADDRESS_DEFAULT_COUNTRY=BE | ||||
|  | ||||
| ADD_ADDRESS_MAP_CENTER_X=50.8443 | ||||
| ADD_ADDRESS_MAP_CENTER_Y=4.3523 | ||||
| ADD_ADDRESS_MAP_CENTER_Z=15 | ||||
|  | ||||
| SHORT_MESSAGE_DSN=null://null | ||||
|  | ||||
| ## DOCKER IMAGES REGISTRY | ||||
| #IMAGE_PHP= | ||||
| #IMAGE_NGINX= | ||||
| @@ -68,3 +67,23 @@ DEFAULT_CARRIER_CODE=BE | ||||
| #VERSION=test | ||||
| #VERSION=prod | ||||
|  | ||||
| ###> symfony/messenger ### | ||||
| # Choose one of the transports below | ||||
| # MESSENGER_TRANSPORT_DSN=doctrine://default | ||||
| # MESSENGER_TRANSPORT_DSN=amqp://guest:guest@localhost:5672/%2f/messages | ||||
| # MESSENGER_TRANSPORT_DSN=redis://localhost:6379/messages | ||||
| MESSENGER_TRANSPORT_DSN=sync:// | ||||
| ###< symfony/messenger ### | ||||
|  | ||||
| ###> doctrine/doctrine-bundle ### | ||||
| # Format described at https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url | ||||
| # IMPORTANT: You MUST configure your server version, either here or in config/packages/doctrine.yaml | ||||
| # | ||||
| DATABASE_URL="postgresql://postgres:postgres@db:5432/postgres?serverVersion=14&charset=utf8" | ||||
| ###< doctrine/doctrine-bundle ### | ||||
|  | ||||
| ###> lexik/jwt-authentication-bundle ### | ||||
| JWT_SECRET_KEY=%kernel.project_dir%/config/jwt/private.pem | ||||
| JWT_PUBLIC_KEY=%kernel.project_dir%/config/jwt/public.pem | ||||
| JWT_PASSPHRASE=2a30f6ba26521a2613821da35f28386e | ||||
| ###< lexik/jwt-authentication-bundle ### | ||||
|   | ||||
							
								
								
									
										2
									
								
								.env.dev
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								.env.dev
									
									
									
									
									
								
							| @@ -11,3 +11,5 @@ MAILER_URL=smtp://smtp:1025 | ||||
| PGADMIN_DEFAULT_EMAIL=admin@chill.social | ||||
| PGADMIN_DEFAULT_PASSWORD=password | ||||
|  | ||||
| ## Phpstorm IDE project path | ||||
| PROJECT_DIR= | ||||
|   | ||||
							
								
								
									
										25
									
								
								.gitea/workflows/release_preparation.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								.gitea/workflows/release_preparation.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,25 @@ | ||||
| name: Prepare release for chill app | ||||
| run-name: Update composer.lock and dependencies for preparing a release | ||||
|  | ||||
| on: | ||||
|     push: | ||||
|         branches: | ||||
|             - 'release/**' | ||||
|  | ||||
| jobs: | ||||
|     update-deps: | ||||
|         steps: | ||||
|             - name: check out repository | ||||
|               uses: https://github.com/actions/checkout@v4 | ||||
|             - name: run composer update to update composer.lock | ||||
|               uses: docker://gitea.champs-libres.be/chill-project/chill-skeleton-basic/base-image:latest | ||||
|               with: | ||||
|                   # this is where we set the command to execute | ||||
|                   args: composer update --no-install | ||||
|             - name: commit changed files | ||||
|               uses: https://github.com/stefanzweifel/git-auto-commit-action@v5 | ||||
|               with: | ||||
|                   commit_message: "update composer.lock and file (automatic update through CI)" | ||||
|                   commit_user_name: Action Bot | ||||
|                   commit_user_email: bot@chill.social | ||||
|  | ||||
							
								
								
									
										8
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -9,6 +9,7 @@ config/secrets/ | ||||
|  | ||||
| ## env files | ||||
| .env.local | ||||
| .env.dev.local | ||||
|  | ||||
| .composer/* | ||||
| composer.phar | ||||
| @@ -49,17 +50,18 @@ phpunit.xml | ||||
| nbproject/* | ||||
|  | ||||
| .idea | ||||
| .ignore | ||||
|  | ||||
| ### template/api/specs.yaml should be compiled | ||||
| templates/api/specs.yaml | ||||
|  | ||||
|  | ||||
| ###> symfony/webpack-encore-bundle ### | ||||
| /node_modules/ | ||||
| /public/build/ | ||||
| npm-debug.log | ||||
| yarn-error.log | ||||
| ###< symfony/webpack-encore-bundle ### | ||||
|  | ||||
| ###> symfony/phpunit-bridge ### | ||||
| .phpunit | ||||
| .phpunit.result.cache | ||||
| @@ -75,3 +77,7 @@ yarn-error.log | ||||
|  | ||||
| docker-compose.override.yml | ||||
| docker-compose.override.yaml | ||||
|  | ||||
| ###> lexik/jwt-authentication-bundle ### | ||||
| /config/jwt/*.pem | ||||
| ###< lexik/jwt-authentication-bundle ### | ||||
|   | ||||
							
								
								
									
										66
									
								
								Dockerfile
									
									
									
									
									
								
							
							
						
						
									
										66
									
								
								Dockerfile
									
									
									
									
									
								
							| @@ -1,4 +1,4 @@ | ||||
| FROM php:7.4-fpm-buster AS chill_base_php | ||||
| FROM php:8.2-fpm-alpine AS chill_base_php82 | ||||
|  | ||||
| ENV POSTGRES_VERSION 14 | ||||
|  | ||||
| @@ -6,27 +6,31 @@ ENV POSTGRES_VERSION 14 | ||||
| ARG UID=1000 | ||||
| ARG GID=1000 | ||||
|  | ||||
| RUN apt update && apt -y --no-install-recommends install wget gnupg  \ | ||||
|    && wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc |  apt-key add - \ | ||||
|    && echo "deb http://apt.postgresql.org/pub/repos/apt/ buster-pgdg main" > /etc/apt/sources.list.d/pgdg.list \ | ||||
|    && apt update && apt -y --no-install-recommends install \ | ||||
|       libicu-dev \ | ||||
|       g++ \ | ||||
|       postgresql-server-dev-$POSTGRES_VERSION \ | ||||
|       libzip-dev libzip4 unzip \ | ||||
|       libfreetype6-dev \ | ||||
|       libonig-dev `# install oniguruma, required for mbstring` \ | ||||
|       libpng-dev \ | ||||
|       libjpeg62-turbo-dev \ | ||||
|       git \ | ||||
|    && docker-php-ext-configure gd --with-freetype --with-jpeg \ | ||||
|    && docker-php-ext-install -j$(nproc) gd \ | ||||
|    && docker-php-ext-install intl pdo_pgsql mbstring zip bcmath sockets exif \ | ||||
|    && pecl install redis \ | ||||
|    && docker-php-ext-enable redis \ | ||||
|    && apt remove -y wget libicu-dev g++ gnupg libzip-dev \ | ||||
|    && apt autoremove -y \ | ||||
|    && apt purge -y | ||||
| # install php extensions and deps | ||||
| RUN apk update && apk add --no-cache \ | ||||
|     wget gnupg \ | ||||
|     libpq-dev \ | ||||
|     icu-dev icu-libs icu-data-full \ | ||||
|     oniguruma-dev \ | ||||
|     libzip libzip-dev \ | ||||
|     linux-headers \ | ||||
|     gcc g++ make autoconf \ | ||||
|     bash git \ | ||||
|     && docker-php-ext-install pdo_pgsql intl mbstring zip bcmath exif sockets \ | ||||
|     && git clone https://github.com/nikic/php-ast.git \ | ||||
|     && cd php-ast \ | ||||
|     && phpize \ | ||||
|     && ./configure \ | ||||
|     && make install \ | ||||
|     && echo 'extension=ast.so' > /usr/local/etc/php/php.ini \ | ||||
|     && cd .. && rm -rf php-ast \ | ||||
|     && pecl install redis \ | ||||
|     && docker-php-ext-enable redis \ | ||||
|     && apk add libpng-dev libjpeg-turbo-dev freetype-dev \ | ||||
|     && docker-php-ext-configure gd --with-freetype --with-jpeg \ | ||||
|     && docker-php-ext-install -j$(nproc) gd \ | ||||
|     && apk add postgresql${POSTGRES_VERSION}-client \ | ||||
|     && apk del --purge wget gnupg libpq-dev icu-dev oniguruma-dev libzip-dev linux-headers gcc g++ make autoconf | ||||
|  | ||||
| RUN { \ | ||||
|     echo ""; \ | ||||
| @@ -41,15 +45,31 @@ RUN { \ | ||||
|     echo ""; \ | ||||
|     } >> /usr/local/etc/php/conf.d/date.ini | ||||
|  | ||||
| # temporary fix, while php-cs-fixer has conflict dependencies | ||||
| # with chill | ||||
| RUN curl -o /usr/local/bin/php-cs-fixer https://cs.symfony.com/download/php-cs-fixer-v3.phar \ | ||||
|     && chmod +x /usr/local/bin/php-cs-fixer | ||||
| # to make php-cs-fixer works with php 8.2 | ||||
| ENV PHP_CS_FIXER_IGNORE_ENV=1 | ||||
|  | ||||
| COPY --from=composer:2 /usr/bin/composer /usr/bin/composer | ||||
| ENV COMPOSER_ALLOW_SUPERUSER=1 | ||||
| ENV COMPOSER_MEMORY_LIMIT=-1 | ||||
|  | ||||
| # shell bash preference | ||||
| RUN sed -i " \ | ||||
|     s|root:x:0:0:root:/root:/bin/ash|root:x:0:0:root:/root:/bin/bash|g; \ | ||||
|     s|postgres:x:70:70:PostgreSQL user:/var/lib/postgresql:/bin/sh|postgres:x:70:70:PostgreSQL user:/var/lib/postgresql:/bin/bash|g" \ | ||||
|     /etc/passwd | ||||
|  | ||||
| # chmod on redis.so | ||||
| RUN chmod 755 -R /usr/local/lib/php/extensions/ | ||||
|  | ||||
| WORKDIR /var/www/app | ||||
|  | ||||
| CMD ["php-fpm"] | ||||
|  | ||||
| FROM chill_base_php AS chill_php | ||||
| FROM chill_base_php82 AS chill_php82 | ||||
|  | ||||
| # copy directories | ||||
|  | ||||
|   | ||||
							
								
								
									
										12
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								Makefile
									
									
									
									
									
								
							| @@ -2,12 +2,12 @@ THIS_FILE := $(lastword $(MAKEFILE_LIST)) | ||||
| PWD:=$(shell echo ${PWD}) | ||||
| UID:=$(shell id -u) | ||||
| GID:=$(shell id -g) | ||||
| BASE_TAG=chill_base_php | ||||
| DOCKERNODE_CMD=docker run --rm --user ${UID}:${GID} -v ${PWD}:/app --workdir /app -e YARN_CACHE_FOLDER=/app/.yarncache node:14 | ||||
| DOCKERNODE_CMD=docker run --rm --user ${UID}:${GID} -v ${PWD}:/app --workdir /app -e YARN_CACHE_FOLDER=/app/.yarncache node:16 | ||||
| DOCKER_COMPOSE_PHP_EXEC_CMD=docker-compose run --rm --user $(UID):$(GID) -e CLEAR_CACHE=false -e COMPOSER_HOME=/var/www/app/.composer --entrypoint /usr/bin/env php | ||||
| DOCKER_PHP_EXEC_CMD_BASE=docker run --rm --user $(UID):$(GID) -v ${PWD}:/var/www/app -e CLEAR_CACHE=false -e COMPOSER_HOME=/var/www/app/.composer --entrypoint /usr/bin/env --net=host $(BASE_TAG) | ||||
| PHP_BASE_IMAGE=php:7.4-fpm-buster | ||||
| PHP_BASE_IMAGE_CHILL=chill_base_php | ||||
| DOCKER_PHP_EXEC_CMD_BASE=docker run --rm --user $(UID):$(GID) -v ${PWD}:/var/www/app -e CLEAR_CACHE=false -e COMPOSER_HOME=/var/www/app/.composer --entrypoint /usr/bin/env $(PHP_BASE_IMAGE_TAG) | ||||
| PHP_BASE_IMAGE=php:8.2-fpm-alpine | ||||
| PHP_BASE_IMAGE_TARGET=chill_base_php82 | ||||
| PHP_BASE_IMAGE_TAG=chill_php82 | ||||
| NGINX_BASE_IMAGE=nginx | ||||
| CALVER=$(shell date "+v%Y%m%d%H%M")-${CALVERSION} | ||||
| ifneq (,$(wildcard ./.env)) | ||||
| @@ -39,7 +39,7 @@ build-assets: | ||||
| 	$(DOCKERNODE_CMD) yarn run encore production | ||||
|  | ||||
| init: | ||||
| 	docker build --target chill_base_php -t $(BASE_TAG) . | ||||
| 	docker build --pull --target $(PHP_BASE_IMAGE_TARGET) --tag $(PHP_BASE_IMAGE_TAG) . | ||||
| 	$(DOCKER_PHP_EXEC_CMD_BASE) composer update --no-scripts --no-interaction | ||||
| 	@$(MAKE) -f $(THIS_FILE) build-assets | ||||
| 	@$(MAKE) -f $(THIS_FILE) post-install | ||||
|   | ||||
| @@ -15,7 +15,7 @@ | ||||
|     }, | ||||
|     "require": { | ||||
|         "ext-redis": "*", | ||||
|         "chill-project/chill-bundles": "dev-master#69704e52116be5f85a090e70d4a3068308e12b25", | ||||
|         "chill-project/chill-bundles": "2.10.0", | ||||
|         "symfony/flex": "^1.9", | ||||
|         "symfony/http-client": "^4.4 || ^5", | ||||
|         "nelmio/alice": "^3.8", | ||||
| @@ -36,8 +36,7 @@ | ||||
|         "symfony/web-profiler-bundle": "^5.0", | ||||
|         "symfony/var-dumper": "4.*", | ||||
|         "symfony/phpunit-bridge": "^5.2", | ||||
|         "symfony/debug-bundle": "^5.1", | ||||
|         "box/spout": "^3.3" | ||||
|         "symfony/debug-bundle": "^5.1" | ||||
|     }, | ||||
|     "minimum-stability": "dev", | ||||
|     "prefer-stable": true, | ||||
| @@ -54,11 +53,14 @@ | ||||
|         "bin-dir": "bin", | ||||
|         "allow-plugins": { | ||||
|             "ocramius/package-versions": true, | ||||
|             "symfony/flex": true | ||||
|             "symfony/flex": true, | ||||
|             "symfony/runtime": true | ||||
|         }, | ||||
|         "preferred-install": { | ||||
|           "chill-project/chill-bundles": "source", | ||||
|           "champs-libres/async-uploader-bundle": "source" | ||||
|           "champs-libres/async-uploader-bundle": "source", | ||||
|           "champs-libres/wopi-bundle": "source", | ||||
|           "champs-libres/wopi-lib": "source" | ||||
|         } | ||||
|     } | ||||
| } | ||||
|   | ||||
							
								
								
									
										3890
									
								
								composer.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										3890
									
								
								composer.lock
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -13,7 +13,6 @@ return [ | ||||
|     Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle::class => ['dev' => true, 'test' => true], | ||||
|     Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true], | ||||
|     Symfony\Bundle\DebugBundle\DebugBundle::class => ['dev' => true, 'test' => true], | ||||
|     Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle::class => ['all' => true], | ||||
|     Knp\Bundle\MenuBundle\KnpMenuBundle::class => ['all' => true], | ||||
|     Knp\Bundle\TimeBundle\KnpTimeBundle::class => ['all' => true], | ||||
|     ChampsLibres\AsyncUploaderBundle\ChampsLibresAsyncUploaderBundle::class => ['all' => true], | ||||
| @@ -33,6 +32,8 @@ return [ | ||||
|     Chill\WopiBundle\ChillWopiBundle::class => ['all' => true], | ||||
|     loophp\PsrHttpMessageBridgeBundle\PsrHttpMessageBridgeBundle::class => ['all' => true], | ||||
|     ChampsLibres\WopiBundle\WopiBundle::class => ['all' => true], | ||||
|     \Misd\PhoneNumberBundle\MisdPhoneNumberBundle::class => ['all' => true], | ||||
|     App\App::class => [ 'all' => true ], | ||||
|     Misd\PhoneNumberBundle\MisdPhoneNumberBundle::class => ['all' => true], | ||||
|     App\App::class => ['all' => true], | ||||
|     KnpU\OAuth2ClientBundle\KnpUOAuth2ClientBundle::class => ['all' => true], | ||||
|     Lexik\Bundle\JWTAuthenticationBundle\LexikJWTAuthenticationBundle::class => ['all' => true], | ||||
| ]; | ||||
|   | ||||
| @@ -12,12 +12,20 @@ chill_main: | ||||
|         twilio_sid: '%env(resolve:TWILIO_SID)%' | ||||
|         twilio_secret: '%env(resolve:TWILIO_SECRET)%' | ||||
|         default_carrier_code: '%env(resolve:DEFAULT_CARRIER_CODE)%' | ||||
|     short_messages: | ||||
|         dsn: '%env(string:SHORT_MESSAGE_DSN)%' | ||||
|     acl: | ||||
|         form_show_scopes: false | ||||
|         form_show_centers: false | ||||
|         form_show_scopes: true | ||||
|         form_show_centers: true | ||||
|     access_global_history: false | ||||
|     access_user_change_password: true | ||||
|     access_permissions_group_list: true | ||||
|     add_address: | ||||
|         default_country: '%env(string:ADD_ADDRESS_DEFAULT_COUNTRY)%' | ||||
|         map_center: | ||||
|             x: '%env(float:ADD_ADDRESS_MAP_CENTER_X)%' | ||||
|             y: '%env(float:ADD_ADDRESS_MAP_CENTER_Y)%' | ||||
|             z: '%env(float:ADD_ADDRESS_MAP_CENTER_Z)%' | ||||
|  | ||||
| chill_custom_fields: | ||||
|     show_empty_values_in_views: false | ||||
| @@ -40,7 +48,7 @@ chill_person: | ||||
|         civility: visible | ||||
|         deathdate: visible | ||||
|     validation: | ||||
|         center_required: false | ||||
|         center_required: true | ||||
|  | ||||
| chill_activity: | ||||
|     form: | ||||
|   | ||||
| @@ -56,7 +56,6 @@ chill_budget: | ||||
|             - { key: mutuelle, labels: [{lang: fr, label: "Mutuelle"}]} | ||||
|             - { key: transport, labels: [{lang: fr, label: "Frais de transport"}]} | ||||
|             - { key: decouvbank, labels: [{lang: fr, label: "Découvert bancaire utilisé"}]} | ||||
|             - { key: credit, labels: [{lang: fr, label: "Procédure de saisie"}]} | ||||
|             - { key: procsaisie, labels: [{lang: fr, label: "Procédure de saisie"}]} | ||||
|             - { key: indus, labels: [{lang: fr, label: "Indus"}]} | ||||
|             - { key: apurement, labels: [{lang: fr, label: "Plan d'apurement"}]} | ||||
| @@ -82,6 +81,5 @@ chill_budget: | ||||
|             - { key: debt_bank, labels: [{lang: fr, label: "Dette de découvert bancaire utilisé"}]} | ||||
|             - { key: debt_garbage, labels: [{lang: fr, label: "Dette de taxe d’ordures ménagère"}]} | ||||
|             - { key: debt_other, labels: [{lang: fr, label: "Dette autre"}]} | ||||
|             - { key: credit, labels: [{lang: fr, label: "Crédit"}]} | ||||
|             - { key: autre, labels: [{lang: fr, label: "Autre"}]} | ||||
|  | ||||
|   | ||||
							
								
								
									
										3
									
								
								config/packages/chill_calendar.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								config/packages/chill_calendar.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| chill_calendar: | ||||
|     remote_calendars_sync: | ||||
|         enabled: false | ||||
| @@ -3,3 +3,10 @@ framework: | ||||
|         # allow to debug from ngrok, useful for webhooks coming from outside: | ||||
|         - '^(.+\.)?ngrok\.io$' | ||||
|         - 'nginx' | ||||
|  | ||||
|     ## Open files in phpstorm IDE from profiler links | ||||
|     # ref: https://symfony.com/doc/current/reference/configuration/framework.html#ide | ||||
|     # need: https://github.com/sanduhrs/phpstorm-url-handler/blob/master/phpstorm-url-handler | ||||
|     # set var in file .env.dev.local (PROJECT_DIR=<relative path from home folder>) | ||||
|     ide: 'phpstorm://open?file=%%f&line=%%l&/var/www/app/>%env(resolve:PROJECT_DIR)%' | ||||
|  | ||||
|   | ||||
| @@ -1,4 +0,0 @@ | ||||
| # See https://symfony.com/doc/current/email/dev_environment.html | ||||
| swiftmailer: | ||||
|     # send all emails to a specific address | ||||
|     #delivery_addresses: ['me@example.com'] | ||||
| @@ -1,3 +1,10 @@ | ||||
| framework: | ||||
|     cache: | ||||
|         pools: | ||||
|             doctrine.system_cache_pool: | ||||
|                 adapter: cache.adapter.redis | ||||
|  | ||||
|  | ||||
| doctrine: | ||||
|     dbal: | ||||
|         url: '%env(resolve:DATABASE_URL)%' | ||||
| @@ -5,7 +12,7 @@ doctrine: | ||||
|             geometry: string | ||||
|         # IMPORTANT: You MUST configure your server version, | ||||
|         # either here or in the DATABASE_URL env var (see .env file) | ||||
|         #server_version: '5.7' | ||||
|         #server_version: '14' | ||||
|     orm: | ||||
|         auto_generate_proxy_classes: true | ||||
|         naming_strategy: doctrine.orm.naming_strategy.default | ||||
|   | ||||
| @@ -33,6 +33,3 @@ framework: | ||||
|     ## sf4 check: ou à déplacer dans un chill.yaml | ||||
|     assets: | ||||
|         json_manifest_path: '%kernel.project_dir%/public/build/manifest.json' | ||||
|  | ||||
|     templating: | ||||
|         engines: ['twig'] | ||||
|   | ||||
							
								
								
									
										3
									
								
								config/packages/knpu_oauth2_client.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								config/packages/knpu_oauth2_client.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| knpu_oauth2_client: | ||||
|     clients: | ||||
|         # configure your clients as described here: https://github.com/knpuniversity/oauth2-client-bundle#configuration | ||||
							
								
								
									
										12
									
								
								config/packages/lexik_jwt_authentication.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								config/packages/lexik_jwt_authentication.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | ||||
| lexik_jwt_authentication: | ||||
|     secret_key: '%env(resolve:JWT_SECRET_KEY)%' | ||||
|     public_key: '%env(resolve:JWT_PUBLIC_KEY)%' | ||||
|     pass_phrase: '%env(JWT_PASSPHRASE)%' | ||||
|  | ||||
|     # required for wopi - recommended duration | ||||
|     token_ttl: 36000 | ||||
|  | ||||
|     token_extractors: | ||||
|         query_parameter: | ||||
|             enabled: true | ||||
|             name: access_token | ||||
							
								
								
									
										27
									
								
								config/packages/messenger.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								config/packages/messenger.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,27 @@ | ||||
| framework: | ||||
|     messenger: | ||||
|         # reset services after consuming messages | ||||
|         # reset_on_message: true | ||||
|  | ||||
|         # Uncomment this (and the failed transport below) to send failed messages to this transport for later handling. | ||||
|         failure_transport: failed | ||||
|  | ||||
|         transports: | ||||
|             # https://symfony.com/doc/current/messenger.html#transport-configuration | ||||
|             async: '%env(MESSENGER_TRANSPORT_DSN)%' | ||||
|             priority: | ||||
|                 dsn: '%env(MESSENGER_TRANSPORT_DSN)%' | ||||
|             failed: 'doctrine://default?queue_name=failed' | ||||
|             # sync: 'sync://' | ||||
|  | ||||
|         routing: | ||||
|             # Route your messages to the transports | ||||
|             # 'App\Message\YourMessage': async | ||||
|             'Chill\CalendarBundle\Messenger\Message\CalendarRangeMessage': async | ||||
|             'Chill\CalendarBundle\Messenger\Message\CalendarRangeRemovedMessage': async | ||||
|             'Chill\CalendarBundle\Messenger\Message\CalendarRemovedMessage': async | ||||
|             'Chill\CalendarBundle\Messenger\Message\CalendarMessage': async | ||||
|             'Chill\CalendarBundle\Messenger\Message\InviteUpdateMessage': async | ||||
|             'Chill\CalendarBundle\Messenger\Message\MSGraphChangeNotificationMessage': async | ||||
|             'Chill\MainBundle\Service\ShortMessage\ShortMessage': async | ||||
|             'Chill\DocGeneratorBundle\Service\Messenger\RequestGenerationMessage': priority | ||||
| @@ -1,9 +1,6 @@ | ||||
| doctrine: | ||||
|     orm: | ||||
|         auto_generate_proxy_classes: false | ||||
|         metadata_cache_driver: | ||||
|             type: pool | ||||
|             pool: doctrine.system_cache_pool | ||||
|         query_cache_driver: | ||||
|             type: pool | ||||
|             pool: doctrine.system_cache_pool | ||||
|   | ||||
							
								
								
									
										9
									
								
								config/packages/prod/lexik_jwt_authentication.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								config/packages/prod/lexik_jwt_authentication.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | ||||
| lexik_jwt_authentication: | ||||
|     # in production, the secret must be located in an environment variable | ||||
|     # for converting the file to a raw variable, use this command: | ||||
|     # | ||||
|     # cat path/to/private_or_public.pem | base64 -w0 | ||||
|     # | ||||
|     # then copy past the printed string into the dedicated environment variable | ||||
|     secret_key: '%env(base64:resolve:JWT_SECRET_KEY)%' | ||||
|     public_key: '%env(base64:resolve:JWT_PUBLIC_KEY)%' | ||||
| @@ -29,6 +29,14 @@ security: | ||||
|             pattern: ^/(_(profiler|wdt)|css|images|js)/ | ||||
|             security: false | ||||
|  | ||||
|         wopi: | ||||
|             pattern: ^/wopi | ||||
|             provider: chain_provider | ||||
|             stateless: true | ||||
|             guard: | ||||
|                 authenticators: | ||||
|                     - lexik_jwt_authentication.jwt_token_authenticator | ||||
|  | ||||
|         default: | ||||
|             anonymous: ~ | ||||
|             provider: chain_provider | ||||
| @@ -54,7 +62,7 @@ security: | ||||
|         - { path: ^/saml/metadata, roles: IS_AUTHENTICATED_ANONYMOUSLY } | ||||
|         - { path: ^/(login|logout), roles: IS_AUTHENTICATED_ANONYMOUSLY } | ||||
|         - { path: ^/public, roles: IS_AUTHENTICATED_ANONYMOUSLY } | ||||
|         - { path: ^/wopi, roles: IS_AUTHENTICATED_ANONYMOUSLY } | ||||
|         - { path: ^/wopi, roles: IS_AUTHENTICATED_FULLY } | ||||
|         # access for homepage, the homepage redirect admin to admin section | ||||
|         - { path: ^/$, roles: [ IS_AUTHENTICATED_REMEMBERED ] } | ||||
|         - { path: ^/homepage$, roles: [ IS_AUTHENTICATED_REMEMBERED ] } | ||||
|   | ||||
| @@ -1,3 +0,0 @@ | ||||
| swiftmailer: | ||||
|     url: '%env(MAILER_URL)%' | ||||
|     spool: { type: 'memory' } | ||||
							
								
								
									
										4
									
								
								config/packages/test/doctrine.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								config/packages/test/doctrine.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | ||||
| doctrine: | ||||
|     dbal: | ||||
|         # "TEST_TOKEN" is typically set by ParaTest | ||||
|         dbname: 'main_test%env(default::TEST_TOKEN)%' | ||||
| @@ -1,2 +0,0 @@ | ||||
| swiftmailer: | ||||
|     disable_delivery: true | ||||
| @@ -1,3 +1,3 @@ | ||||
| wopi: | ||||
|   server: "%env(resolve:WOPI_SERVER)%" | ||||
|   access_token_ttl: 0 | ||||
|   enable_lock: false | ||||
|   | ||||
							
								
								
									
										9
									
								
								config/preload.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								config/preload.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | ||||
| <?php | ||||
|  | ||||
| if (file_exists(dirname(__DIR__).'/var/cache/prod/srcApp_KernelProdContainer.preload.php')) { | ||||
|     require dirname(__DIR__).'/var/cache/prod/srcApp_KernelProdContainer.preload.php'; | ||||
| } | ||||
|  | ||||
| if (file_exists(dirname(__DIR__).'/var/cache/prod/App_KernelProdContainer.preload.php')) { | ||||
|     require dirname(__DIR__).'/var/cache/prod/App_KernelProdContainer.preload.php'; | ||||
| } | ||||
| @@ -1,3 +1,3 @@ | ||||
| chill_wopi_bundle: | ||||
|   resource: '@ChillWopiBundle/Resources/config/routes/routes.php' | ||||
|   prefix: /wopi | ||||
|   prefix: /chill/wopi | ||||
|   | ||||
| @@ -19,7 +19,6 @@ services: | ||||
|             - '../src/DependencyInjection/' | ||||
|             - '../src/Entity/' | ||||
|             - '../src/Kernel.php' | ||||
|             - '../src/Tests/' | ||||
|  | ||||
|     # controllers are imported separately to make sure services can be injected | ||||
|     # as action arguments even if you don't extend any base controller class | ||||
| @@ -36,15 +35,7 @@ services: | ||||
|         resource: '../src/Service/' | ||||
|  | ||||
|  | ||||
|     Chill\WopiBundle\Service\Wopi\ChillWopi: | ||||
|         decorates: ChampsLibres\WopiLib\Contract\Service\WopiInterface | ||||
|         arguments: | ||||
|             $cache: '@cache.user_data' | ||||
|  | ||||
|     ChampsLibres\WopiLib\Service\DocumentLockManager: | ||||
|         arguments: | ||||
|             $cache: '@cache.user_data' | ||||
|  | ||||
|     App\Service\Wopi\NullProofValidator: | ||||
|         decorates: ChampsLibres\WopiLib\Contract\Service\ProofValidatorInterface | ||||
|  | ||||
|   | ||||
| @@ -8,7 +8,7 @@ services: | ||||
|       args: | ||||
|         UID: ${PHP_FPM_USER:-1000} | ||||
|     # uncomment and set your own image if needed | ||||
|     image: ${IMAGE_PHP-chill_php}:${VERSION:-latest} | ||||
|     image: ${IMAGE_PHP-chill_php82}:${VERSION:-latest} | ||||
|     volumes: | ||||
|       - .:/var/www/app | ||||
|     environment: | ||||
|   | ||||
| @@ -10,7 +10,7 @@ services: | ||||
|       args: | ||||
|         UID: ${PHP_FPM_USER:-1000} | ||||
|     # uncomment and set your own image if needed | ||||
|     image: ${IMAGE_PHP-chill_php}:${VERSION:-latest} | ||||
|     image: ${IMAGE_PHP-chill_php82}:${VERSION:-latest} | ||||
|     # | ||||
|     # normally, you should not mount any volume and use your own image | ||||
|     # | ||||
|   | ||||
| @@ -8,7 +8,7 @@ services: | ||||
|       args: | ||||
|         UID: ${PHP_FPM_USER:-1000} | ||||
|     # uncomment and set your own image if needed | ||||
|     image: ${IMAGE_PHP:-chill_php}:${VERSION:-latest} | ||||
|     image: ${IMAGE_PHP:-chill_php82}:${VERSION:-latest} | ||||
|     volumes: | ||||
|       - .:/var/www/app | ||||
|     environment: | ||||
|   | ||||
| @@ -18,4 +18,4 @@ docker run \ | ||||
|     --volume ${PWD}:/app \ | ||||
|     --workdir /app \ | ||||
|     --env YARN_CACHE_FOLDER=/app/.yarncache \ | ||||
|     node:14 ${cmd} | ||||
|     node:16 ${cmd} | ||||
|   | ||||
| @@ -6,13 +6,13 @@ set -e | ||||
| # waiting for the database to be ready | ||||
| if [ -z "${DATABASE_HOST}" ]; then | ||||
|   while ! timeout 1 bash -c "cat < /dev/null > /dev/tcp/${DATABASE_HOST}/${DATABASE_PORT}" | ||||
|   do   | ||||
|     echo "$(date) : waiting one second for database";  | ||||
|     sleep 1;  | ||||
|   do | ||||
|     echo "$(date) : waiting one second for database"; | ||||
|     sleep 1; | ||||
|   done | ||||
|  | ||||
|   echo "$(date) : the database is ready"; | ||||
| else  | ||||
| else | ||||
|   echo "we assume the database is ready"; | ||||
| fi | ||||
|  | ||||
| @@ -36,8 +36,13 @@ fi | ||||
| if [ "${APP_ENV}" = "prod" ]; then | ||||
|   composer dump-env "${APP_ENV}" | ||||
|   chmod +r /var/www/app/.env.local.php | ||||
| fi | ||||
|  | ||||
|   if [ "${PREVENT_MIGRATIONS}" != "true" ]; then | ||||
|     php /var/www/app/bin/console doctrine:migrations:status | ||||
|     php /var/www/app/bin/console doctrine:migrations:migrate -n | ||||
|     php /var/www/app/bin/console messenger:setup-transports | ||||
|   fi | ||||
| fi | ||||
|  | ||||
| if [ "${CLEAR_CACHE}" != "false" ]; then | ||||
|   #prepare cache | ||||
|   | ||||
							
								
								
									
										60
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										60
									
								
								package.json
									
									
									
									
									
								
							| @@ -1,63 +1,11 @@ | ||||
| { | ||||
|   "devDependencies": { | ||||
|     "@alexlafroscia/yaml-merge": "^4.0.0", | ||||
|     "@apidevtools/swagger-cli": "^4.0.4", | ||||
|     "@ckeditor/ckeditor5-build-classic": "^25.0.0", | ||||
|     "@ckeditor/ckeditor5-dev-utils": "^24.3.0", | ||||
|     "@ckeditor/ckeditor5-dev-webpack-plugin": "^24.3.0", | ||||
|     "@ckeditor/ckeditor5-markdown-gfm": "^25.0.0", | ||||
|     "@ckeditor/ckeditor5-theme-lark": "^25.0.0", | ||||
|     "@ckeditor/ckeditor5-vue": "^2.0.1", | ||||
|     "@symfony/webpack-encore": "^0.33.0", | ||||
|     "@vue/compiler-sfc": "^3.0.11", | ||||
|     "bindings": "^1.5.0", | ||||
|     "bootstrap": "^5.0.1", | ||||
|     "chokidar": "^3.5.1", | ||||
|     "fork-awesome": "^1.1.7", | ||||
|     "jquery": "^3.6.0", | ||||
|     "node-sass": "^4.14.1", | ||||
|     "popper.js": "^1.16.1", | ||||
|     "postcss-loader": "^3.0.0", | ||||
|     "raw-loader": "^3.1.0", | ||||
|     "sass-loader": "^9.0.1", | ||||
|     "select2": "^4.0.13", | ||||
|     "select2-bootstrap-theme": "0.1.0-beta.10", | ||||
|     "style-loader": "^1.3.0", | ||||
|     "vue-loader": "^16.0.0", | ||||
|     "webpack-cli": "^3.3.12" | ||||
|   }, | ||||
|   "dependencies": { | ||||
|     "@fullcalendar/core": "^5.8.0", | ||||
|     "@fullcalendar/daygrid": "^5.8.0", | ||||
|     "@fullcalendar/interaction": "^5.8.0", | ||||
|     "@fullcalendar/list": "^5.8.0", | ||||
|     "@fullcalendar/timegrid": "^5.8.0", | ||||
|     "@fullcalendar/vue3": "^5.8.0", | ||||
|     "@popperjs/core": "^2.9.2", | ||||
|     "dropzone": "^5.7.6", | ||||
|     "es6-promise": "^4.2.8", | ||||
|     "leaflet": "^1.7.1", | ||||
|     "masonry-layout": "^4.2.2", | ||||
|     "mime-types": "^2.1.29", | ||||
|     "swagger-ui": "^3.48.0", | ||||
|     "vis-network": "^9.1.0", | ||||
|     "vue": "^3.0.11", | ||||
|     "vue-i18n": "^9.1.6", | ||||
|     "vue-multiselect": "3.0.0-alpha.2", | ||||
|     "vue-toast-notification": "^2.0", | ||||
|     "vuex": "^4.0.0" | ||||
|   }, | ||||
|   "browserslist": [ | ||||
|     "Firefox ESR" | ||||
|   "workspaces": [ | ||||
|     "vendor/chill-project/chill-bundles" | ||||
|   ], | ||||
|   "private": true, | ||||
|   "scripts": { | ||||
|     "dev-server": "encore dev-server", | ||||
|     "dev": "encore dev", | ||||
|     "watch": "encore dev --watch", | ||||
|     "build": "encore production --progress", | ||||
|     "specs-build": "yaml-merge vendor/chill-project/chill-bundles/src/Bundle/ChillMainBundle/chill.api.specs.yaml vendor/chill-project/chill-bundles/src/Bundle/ChillPersonBundle/chill.api.specs.yaml vendor/chill-project/chill-bundles/src/Bundle/ChillCalendarBundle/chill.api.specs.yaml vendor/chill-project/chill-bundles/src/Bundle/ChillThirdPartyBundle/chill.api.specs.yaml vendor/chill-project/chill-bundles/src/Bundle/ChillDocStoreBundle/chill.api.specs.yaml> templates/api/specs.yaml", | ||||
|     "specs-validate": "swagger-cli validate templates/api/specs.yaml", | ||||
|     "specs": "yarn run specs-build && yarn run specs-validate" | ||||
|   }, | ||||
|   "private": true | ||||
|   } | ||||
| } | ||||
|   | ||||
| @@ -13,7 +13,7 @@ if ($_SERVER['APP_DEBUG']) { | ||||
| } | ||||
|  | ||||
| if ($trustedProxies = $_SERVER['TRUSTED_PROXIES'] ?? false) { | ||||
|     Request::setTrustedProxies(explode(',', $trustedProxies), Request::HEADER_X_FORWARDED_ALL ^ Request::HEADER_X_FORWARDED_HOST); | ||||
|     Request::setTrustedProxies(explode(',', $trustedProxies), Request::HEADER_X_FORWARDED_FOR | Request::HEADER_X_FORWARDED_PORT | Request::HEADER_X_FORWARDED_PROTO); | ||||
| } | ||||
|  | ||||
| if ($trustedHosts = $_SERVER['TRUSTED_HOSTS'] ?? false) { | ||||
|   | ||||
							
								
								
									
										82
									
								
								symfony.lock
									
									
									
									
									
								
							
							
						
						
									
										82
									
								
								symfony.lock
									
									
									
									
									
								
							| @@ -1,7 +1,4 @@ | ||||
| { | ||||
|     "box/spout": { | ||||
|         "version": "v3.3.0" | ||||
|     }, | ||||
|     "brick/math": { | ||||
|         "version": "0.9.3" | ||||
|     }, | ||||
| @@ -51,16 +48,17 @@ | ||||
|         "version": "v0.5.3" | ||||
|     }, | ||||
|     "doctrine/doctrine-bundle": { | ||||
|         "version": "2.0", | ||||
|         "version": "2.7", | ||||
|         "recipe": { | ||||
|             "repo": "github.com/symfony/recipes", | ||||
|             "branch": "master", | ||||
|             "version": "2.0", | ||||
|             "ref": "a9f2463b9f73efe74482f831f03a204a41328555" | ||||
|             "branch": "main", | ||||
|             "version": "2.3", | ||||
|             "ref": "b8ddff356705ad8e704ea75b6872ce89a15d614d" | ||||
|         }, | ||||
|         "files": [ | ||||
|             "config/packages/doctrine.yaml", | ||||
|             "config/packages/prod/doctrine.yaml", | ||||
|             "config/packages/test/doctrine.yaml", | ||||
|             "src/Entity/.gitignore", | ||||
|             "src/Repository/.gitignore" | ||||
|         ] | ||||
| @@ -165,6 +163,18 @@ | ||||
|     "knplabs/knp-time-bundle": { | ||||
|         "version": "v1.12.0" | ||||
|     }, | ||||
|     "knpuniversity/oauth2-client-bundle": { | ||||
|         "version": "2.11", | ||||
|         "recipe": { | ||||
|             "repo": "github.com/symfony/recipes-contrib", | ||||
|             "branch": "main", | ||||
|             "version": "1.20", | ||||
|             "ref": "1ff300d8c030f55c99219cc55050b97a695af3f6" | ||||
|         }, | ||||
|         "files": [ | ||||
|             "config/packages/knpu_oauth2_client.yaml" | ||||
|         ] | ||||
|     }, | ||||
|     "laminas/laminas-code": { | ||||
|         "version": "3.4.1" | ||||
|     }, | ||||
| @@ -174,6 +184,18 @@ | ||||
|     "league/csv": { | ||||
|         "version": "9.6.2" | ||||
|     }, | ||||
|     "lexik/jwt-authentication-bundle": { | ||||
|         "version": "2.16", | ||||
|         "recipe": { | ||||
|             "repo": "github.com/symfony/recipes", | ||||
|             "branch": "main", | ||||
|             "version": "2.5", | ||||
|             "ref": "5b2157bcd5778166a5696e42f552ad36529a07a6" | ||||
|         }, | ||||
|         "files": [ | ||||
|             "config/packages/lexik_jwt_authentication.yaml" | ||||
|         ] | ||||
|     }, | ||||
|     "loophp/psr-http-message-bridge-bundle": { | ||||
|         "version": "1.0.0" | ||||
|     }, | ||||
| @@ -333,9 +355,6 @@ | ||||
|     "psr/http-message": { | ||||
|         "version": "1.0.1" | ||||
|     }, | ||||
|     "psr/link": { | ||||
|         "version": "1.0.0" | ||||
|     }, | ||||
|     "psr/log": { | ||||
|         "version": "1.1.3" | ||||
|     }, | ||||
| @@ -429,9 +448,6 @@ | ||||
|     "spomky-labs/base64url": { | ||||
|         "version": "v2.0.4" | ||||
|     }, | ||||
|     "swiftmailer/swiftmailer": { | ||||
|         "version": "v6.2.5" | ||||
|     }, | ||||
|     "symfony/asset": { | ||||
|         "version": "v4.4.11" | ||||
|     }, | ||||
| @@ -530,15 +546,16 @@ | ||||
|         "version": "4.4", | ||||
|         "recipe": { | ||||
|             "repo": "github.com/symfony/recipes", | ||||
|             "branch": "master", | ||||
|             "branch": "main", | ||||
|             "version": "4.4", | ||||
|             "ref": "af2e2efad553bc959a0c61d9185e33ca9eec5c99" | ||||
|             "ref": "24eb45d1355810154890460e6a05c0ca27318fe7" | ||||
|         }, | ||||
|         "files": [ | ||||
|             "config/bootstrap.php", | ||||
|             "config/packages/cache.yaml", | ||||
|             "config/packages/framework.yaml", | ||||
|             "config/packages/test/framework.yaml", | ||||
|             "config/preload.php", | ||||
|             "config/routes/dev/framework.yaml", | ||||
|             "config/services.yaml", | ||||
|             "public/index.php", | ||||
| @@ -582,6 +599,18 @@ | ||||
|             "ref": "fadbfe33303a76e25cb63401050439aa9b1a9c7f" | ||||
|         } | ||||
|     }, | ||||
|     "symfony/messenger": { | ||||
|         "version": "5.4", | ||||
|         "recipe": { | ||||
|             "repo": "github.com/symfony/recipes", | ||||
|             "branch": "main", | ||||
|             "version": "5.4", | ||||
|             "ref": "dfe610928a5c61619bdfc830cd7fa7f091368023" | ||||
|         }, | ||||
|         "files": [ | ||||
|             "config/packages/messenger.yaml" | ||||
|         ] | ||||
|     }, | ||||
|     "symfony/mime": { | ||||
|         "version": "v5.3.8" | ||||
|     }, | ||||
| @@ -624,9 +653,6 @@ | ||||
|     "symfony/polyfill-ctype": { | ||||
|         "version": "v1.18.0" | ||||
|     }, | ||||
|     "symfony/polyfill-iconv": { | ||||
|         "version": "v1.22.0" | ||||
|     }, | ||||
|     "symfony/polyfill-intl-grapheme": { | ||||
|         "version": "v1.18.0" | ||||
|     }, | ||||
| @@ -713,23 +739,6 @@ | ||||
|     "symfony/string": { | ||||
|         "version": "v5.1.3" | ||||
|     }, | ||||
|     "symfony/swiftmailer-bundle": { | ||||
|         "version": "2.5", | ||||
|         "recipe": { | ||||
|             "repo": "github.com/symfony/recipes", | ||||
|             "branch": "master", | ||||
|             "version": "2.5", | ||||
|             "ref": "ae4d22af30bbd484506bc1817c5a3ef72c855b93" | ||||
|         }, | ||||
|         "files": [ | ||||
|             "config/packages/dev/swiftmailer.yaml", | ||||
|             "config/packages/swiftmailer.yaml", | ||||
|             "config/packages/test/swiftmailer.yaml" | ||||
|         ] | ||||
|     }, | ||||
|     "symfony/templating": { | ||||
|         "version": "v4.4.11" | ||||
|     }, | ||||
|     "symfony/translation": { | ||||
|         "version": "3.3", | ||||
|         "recipe": { | ||||
| @@ -782,9 +791,6 @@ | ||||
|     "symfony/var-exporter": { | ||||
|         "version": "v5.1.3" | ||||
|     }, | ||||
|     "symfony/web-link": { | ||||
|         "version": "v5.2.12" | ||||
|     }, | ||||
|     "symfony/web-profiler-bundle": { | ||||
|         "version": "3.3", | ||||
|         "recipe": { | ||||
|   | ||||
| @@ -14,13 +14,6 @@ Save activity: Sauver l'échange | ||||
| 'The form is not valid. The activity has not been created !': Le formulaire est invalide. L'échange n'a pas été créé. | ||||
| 'Success : activity updated!': L'échange a été mis à jour. | ||||
| 'The form is not valid. The activity has not been updated !': Le formulaire est invalide. L'échange n'a pas été mis à jour. | ||||
| CHILL_ACTIVITY_CREATE: Créer un échange | ||||
| CHILL_ACTIVITY_UPDATE: Modifier un échange | ||||
| CHILL_ACTIVITY_SEE: Voir un échange | ||||
| CHILL_ACTIVITY_SEE_DETAILS: Voir le détail des échanges | ||||
| CHILL_ACTIVITY_DELETE: Supprimer un échange | ||||
| CHILL_ACTIVITY_STATS: Statistique des échanges | ||||
| CHILL_ACTIVITY_LIST: Liste des échanges | ||||
| Activity configuration: Configuration des échanges | ||||
| Activity configuration menu: Configuration des échanges | ||||
| Activity Types: Types d'échange | ||||
|   | ||||
							
								
								
									
										30
									
								
								tsconfig.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								tsconfig.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,30 @@ | ||||
| { | ||||
|   "extends": "@tsconfig/node14/tsconfig.json", | ||||
|   "compilerOptions": { | ||||
|     "lib": [ | ||||
|       "es2020", | ||||
|       "dom" | ||||
|     ], | ||||
|     "module": "es6", | ||||
|     "moduleResolution": "node", | ||||
|     "isolatedModules": true, | ||||
|     "allowJs": false, | ||||
|     "checkJs": false, | ||||
|     "importHelpers": true, | ||||
|     "allowSyntheticDefaultImports": true, | ||||
|     "types": [ | ||||
|       "node" | ||||
|     ], | ||||
|     "sourceMap": true | ||||
|   }, | ||||
|   "includes": [ | ||||
|     "./vendor/chill-project/chill-bundles/src/Bundle/**/*.ts", | ||||
|     "./vendor/chill-project/chill-bundles/src/Bundle/**/*.vue", | ||||
|     "./src/**/*.ts", | ||||
|     "./src/**/*.vue" | ||||
|   ], | ||||
|   "exclude": [ | ||||
|     "./vendor/chill-project/chill-bundles/tests/*", | ||||
|     "./vendor/chill-project/chill-bundles/docs/*" | ||||
|   ] | ||||
| } | ||||
| @@ -3,9 +3,9 @@ const { resolve, parse } = require('path'); | ||||
| const { readdir } = require('fs').promises; | ||||
|  | ||||
| /** | ||||
|  * get the file names inside given directory recursively, limiting to  | ||||
|  * get the file names inside given directory recursively, limiting to | ||||
|  * a given depth in the recursion | ||||
|  *  | ||||
|  * | ||||
|  * @param string  dir    the directory | ||||
|  * @param int     depth  the maximum depth to look into | ||||
|  */ | ||||
| @@ -28,22 +28,22 @@ async function* getFiles(dir, depth, ignored) { | ||||
| /** | ||||
|  * populate the config of encore in directories inside `'./src'` and | ||||
|  * `'./vendor'` and letting them to alter the encore config. | ||||
|  *  | ||||
|  * | ||||
|  * if a file `chill.webpack.config.js` is found, the default function is | ||||
|  * imported and executed. This function receive two arguments:  | ||||
|  *  | ||||
|  * imported and executed. This function receive two arguments: | ||||
|  * | ||||
|  * - `Encore`, the main encore object | ||||
|  * - `chillEntries`: the entries which will be appended to the main `chill` module, | ||||
|  * resulting in a chill.js and chill.css file. | ||||
|  *  | ||||
|  * | ||||
|  */ | ||||
| async function populateConfig(Encore, chillEntries) { | ||||
|     // chill-main contains some bootstrap that must be loaded first. | ||||
|     // we register them first and, then, store this chill.webpack.config.js file | ||||
|     // into `toIgnore`, ignoring it when we loop on other folders. | ||||
|     let  | ||||
|     let | ||||
|         toIgnore = []; | ||||
|          | ||||
|  | ||||
|     // loop into chill main | ||||
|     for await (const f of getFiles('./vendor/chill-project/chill-bundles/src/Bundle/ChillMainBundle/', 1, [])) { | ||||
|         let filename = parse(f).base; | ||||
| @@ -53,7 +53,7 @@ async function populateConfig(Encore, chillEntries) { | ||||
|             toIgnore.push(f); | ||||
|         } | ||||
|     } | ||||
|      | ||||
|  | ||||
|     // loop into other chill bundles | ||||
|     for await (const f of getFiles('./vendor/chill-project/chill-bundles/src/Bundle', 2, toIgnore)) { | ||||
|         let filename = parse(f).base; | ||||
| @@ -62,7 +62,7 @@ async function populateConfig(Encore, chillEntries) { | ||||
|             configure(Encore, chillEntries); | ||||
|         } | ||||
|     } | ||||
|      | ||||
|  | ||||
|     // loop into other vendors | ||||
|     for await (const f of getFiles('./vendor/', 3, toIgnore)) { | ||||
|         let filename = parse(f).base; | ||||
| @@ -71,7 +71,7 @@ async function populateConfig(Encore, chillEntries) { | ||||
|             configure(Encore, chillEntries); | ||||
|         } | ||||
|     } | ||||
|      | ||||
|  | ||||
|     // loop into src directory | ||||
|     for await (const f of getFiles('./src', 3, [])) { | ||||
|         let filename = parse(f).base; | ||||
| @@ -84,23 +84,37 @@ async function populateConfig(Encore, chillEntries) { | ||||
|  | ||||
| // export the final configuration | ||||
| module.exports = (async () => { | ||||
|  | ||||
|    // Manually configure the runtime environment if not already configured yet by the "encore" command. | ||||
|    // It's useful when you use tools that rely on webpack.config.js file. | ||||
|    if (!Encore.isRuntimeEnvironmentConfigured()) { | ||||
|       Encore.configureRuntimeEnvironment(process.env.NODE_ENV || 'dev'); | ||||
|    } | ||||
|     // basic encore configuration | ||||
|     Encore | ||||
|         .setOutputPath('public/build/') | ||||
|         .setPublicPath('/build') | ||||
|         .enableSassLoader() | ||||
|         .enableVueLoader(() => {}, {  | ||||
|         .enableVueLoader(() => {}, { | ||||
|             version: 3 | ||||
|         }) | ||||
|         .enableTypeScriptLoader(function (tsConfig){ | ||||
|            tsConfig.appendTsSuffixTo = [/\.vue$/]; | ||||
|            tsConfig.appendTsxSuffixTo = [/\.vue$/]; | ||||
|            // temporary fix for https://github.com/vuejs/vue-loader/issues/1915 and https://github.com/vuejs/core/issues/2855 | ||||
|            tsConfig.compilerOptions = {strict: !Encore.isProduction()}; | ||||
|            tsConfig.silent = false; | ||||
|         }) | ||||
|         //.enableForkedTypeScriptTypesChecking() | ||||
|         .autoProvidejQuery() | ||||
|         .enableSourceMaps(!Encore.isProduction()) | ||||
|         .cleanupOutputBeforeBuild() | ||||
|         .enableVersioning() | ||||
|         .enableSingleRuntimeChunk() | ||||
|         .splitEntryChunks() | ||||
|         .addLoader({ test: /\.pdf$/, loader: 'file-loader', options: { name: '[name]_[hash].[ext]', outputPath: 'pdf/' } }) | ||||
|         //.addLoader({ test: /\.pdf$/, loader: 'file-loader', options: { name: '[name]_[hash].[ext]', outputPath: 'pdf/' } }) | ||||
|     ; | ||||
|      | ||||
|  | ||||
|     // populate config with chill entries | ||||
|     let chillEntries = []; | ||||
|     await populateConfig(Encore, chillEntries); | ||||
| @@ -109,7 +123,7 @@ module.exports = (async () => { | ||||
|     if (!Encore.isProduction()) { | ||||
|         Encore | ||||
|             .addEntry('swagger', __dirname + '/assets/swagger-ui/index.js') | ||||
|             .addLoader({  | ||||
|             .addLoader({ | ||||
|                 test: /\.yaml$/, | ||||
|                 type: 'json', | ||||
|                 use: [ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user