dockerisation app
Cadoles/nineskeletor/pipeline/head There was a failure building this commit Details

This commit is contained in:
afornerot 2024-06-30 12:06:40 +02:00
parent a59fe6372b
commit f659e27ad6
23 changed files with 892 additions and 717 deletions

141
.env
View File

@ -1,5 +1,5 @@
# Symfony # Symfony
APP_ENV=prod APP_ENV=dev
APP_SECRET=changeme APP_SECRET=changeme
APP_SESSIONTIME=1440 APP_SESSIONTIME=1440
@ -7,28 +7,31 @@ APP_SESSIONTIME=1440
MESSENGER_TRANSPORT_DSN=doctrine://default?auto_setup=0 MESSENGER_TRANSPORT_DSN=doctrine://default?auto_setup=0
# Database # Database
DATABASE_URL="postgresql://symfony:ChangeMe@127.0.0.1:5432/ninegate?serverVersion=13&charset=utf8" DATABASE_URL="postgresql://symfony:ChangeMe@postgresql:5432/nineskeletor?serverVersion=13&charset=utf8"
# Redis Session # Redis Session
REDIS_HOST=127.0.0.1 REDIS_HOST=redis
REDIS_PORT=6379 REDIS_PORT=6379
# Mailer # Mailer
MAILER_METHOD=smtp MAILER_METHOD=smtp
MAILER_DSN=smtp://127.0.0.1:1025 MAILER_DSN=smtp://mailer:1025
MAILER_NOREPLY=noreply@noreply.fr MAILER_NOREPLY=noreply@noreply.fr
# Basic # Basic
APP_WEBURL=127.0.0.1:8000 APP_WEBURL=localhost:8005
APP_MASTERIDENTITY=SQL # SQL | SSO | LDAP APP_MASTERIDENTITY=SQL # SQL | SSO | LDAP
APP_AUTH=SQL # SQL | CAS | LDAP | OPENID | à faire SAML APP_AUTH=OPENID # SQL | CAS | LDAP | OPENID
APP_ALIAS=/ APP_ALIAS=/
APP_NAME=Nineskeletor APP_NAME=Nineskeletor
APP_MODEREGISTRATION= # null | BYADMIN | BYUSER APP_MODEREGISTRATION= # null | BYADMIN | BYUSER
APP_ADMINS='["admin"]' APP_ADMINS='["admin"]'
# Module = PORTAL | DOCUMENT
APP_MODULES='["PORTAL"]'
# Structure Organisationnelle # Structure Organisationnelle
APP_NIVEAUUPDATABLE=0 # Quel degres de niveau est modifiable par les utilisateurs seule les admin et modo via console peuvent outre passer ce param APP_NIVEAUUPDATABLE=0 # Quel degres de niveau est modifiable par les utilisateurs seule les admin et modo via console peuvent outre passer ce param
APP_NIVEAU01LABEL="Niveau 01" APP_NIVEAU01LABEL="Niveau 01"
APP_NIVEAU01LABELS="Niveaux 01" APP_NIVEAU01LABELS="Niveaux 01"
@ -51,52 +54,52 @@ APP_NIVEAU04MANDATORY='[""]'
APP_GROUPUSE=1 APP_GROUPUSE=1
APP_GROUPSUBMITER='["ALL"]' APP_GROUPSUBMITER='["ALL"]'
APP_ANNUSCOPEADMIN=ALL # ALL or number of niveau view : 1||2||3||4 APP_ANNUSCOPEADMIN=ALL # ALL or number of niveau view : 1||2||3||4
APP_ANNUSCOPEMODO=ALL # ALL or number of niveau view : 1||2||3||4 APP_ANNUSCOPEMODO=ALL # ALL or number of niveau view : 1||2||3||4
APP_ANNUSCOPEMASTER=ALL # ALL or number of niveau view : 1||2||3||4 APP_ANNUSCOPEMASTER=ALL # ALL or number of niveau view : 1||2||3||4
APP_ANNUSCOPEMANAGER=ALL # ALL or number of niveau view : 1||2||3||4 APP_ANNUSCOPEMANAGER=ALL # ALL or number of niveau view : 1||2||3||4
APP_ANNUSCOPEUSER=ALL # ALL or number of niveau view : 1||2||3||4 APP_ANNUSCOPEUSER=ALL # ALL or number of niveau view : 1||2||3||4
APP_USERVIEWISVISIBLE=1 # Profil user with isvisible field APP_USERVIEWISVISIBLE=1 # Profil user with isvisible field
# Synchronisation # Synchronisation
APP_SYNCHRO= # Synchronisation null | LDAP2NINE | NINE2LDAP | NINE2NINE APP_SYNCHRO=NINE2LDAP # Synchronisation null | LDAP2NINE | NINE2LDAP | NINE2NINE
APP_SYNDCHROPURGENIVEAU01=1 # Purger les niveau01s obsolète en cas de synchronisation APP_SYNDCHROPURGENIVEAU01=1 # Purger les niveau01s obsolète en cas de synchronisation
APP_SYNDCHROPURGENIVEAU02=1 # Purger les niveau02s obsolète en cas de synchronisation APP_SYNDCHROPURGENIVEAU02=1 # Purger les niveau02s obsolète en cas de synchronisation
APP_SYNDCHROPURGENIVEAU03=1 # Purger les niveau03s obsolète en cas de synchronisation APP_SYNDCHROPURGENIVEAU03=1 # Purger les niveau03s obsolète en cas de synchronisation
APP_SYNDCHROPURGENIVEAU04=1 # Purger les niveau04s obsolète en cas de synchronisation APP_SYNDCHROPURGENIVEAU04=1 # Purger les niveau04s obsolète en cas de synchronisation
APP_SYNDCHROPURGEGROUP=1 # Purger les groups obsolète en cas de synchronisation APP_SYNDCHROPURGEGROUP=1 # Purger les groups obsolète en cas de synchronisation
APP_SYNDCHROPURGEUSER=1 # Purger les users obsolète en cas de synchronisation APP_SYNDCHROPURGEUSER=1 # Purger les users obsolète en cas de synchronisation
# LDAP # LDAP
LDAP_HOST= # host du serveur ldap LDAP_HOST=openldap # host du serveur ldap ex:openldap
LDAP_PORT= # port du serveur ldap LDAP_PORT=389 # port du serveur ldap ex:389
LDAP_USETLS=0 # connection TLS 0/1 LDAP_USETLS=0 # connection TLS 0/1
LDAP_USERWRITER=0 # LDAP_USER compte writer ? 0/1 LDAP_USERWRITER=1 # LDAP_USER compte writer ? 0/1
LDAP_USER= # DN compte access ldap LDAP_USER="cn=admin,dc=nine,dc=fr" # DN compte access ldap
LDAP_PASSWORD= # Password comte access ldap LDAP_PASSWORD=changeme # Password comte access ldap
LDAP_BASEDN= # Base DN ex:dc=nine,dc=fr LDAP_BASEDN= # Base DN ex:dc=nine,dc=fr
LDAP_BASEORGANISATION= # Base Organisation ex:ou=nineskeletor,dc=nine,dc=fr LDAP_BASEORGANISATION="ou=nineskeletor,dc=nine,dc=fr" # Base Organisation ex:ou=nineskeletor,dc=nine,dc=fr
LDAP_BASENIVEAU01= # Base Niveau01 ex:ou=niveau01,ou=nineskeletor,dc=nine,dc=fr LDAP_BASENIVEAU01="ou=niveau01,ou=nineskeletor,dc=nine,dc=fr" # Base Niveau01 ex:ou=niveau01,ou=nineskeletor,dc=nine,dc=fr
LDAP_BASENIVEAU02= # Base Niveau02 ex:ou=niveau02,ou=nineskeletor,dc=nine,dc=fr LDAP_BASENIVEAU02="ou=niveau02,ou=nineskeletor,dc=nine,dc=fr" # Base Niveau02 ex:ou=niveau02,ou=nineskeletor,dc=nine,dc=fr
LDAP_BASENIVEAU03= # Base Niveau03 ex:ou=niveau03,ou=nineskeletor,dc=nine,dc=fr LDAP_BASENIVEAU03="ou=niveau03,ou=nineskeletor,dc=nine,dc=fr" # Base Niveau03 ex:ou=niveau03,ou=nineskeletor,dc=nine,dc=fr
LDAP_BASENIVEAU04= # Base Niveau04 ex:ou=niveau04,ou=nineskeletor,dc=nine,dc=fr LDAP_BASENIVEAU04="ou=niveau04,ou=nineskeletor,dc=nine,dc=fr" # Base Niveau04 ex:ou=niveau04,ou=nineskeletor,dc=nine,dc=fr
LDAP_BASEGROUP= # Base Group ex:ou=groups,ou=nineskeletor,dc=nine,dc=fr LDAP_BASEGROUP="ou=groups,ou=nineskeletor,dc=nine,dc=fr" # Base Group ex:ou=groups,ou=nineskeletor,dc=nine,dc=fr
LDAP_BASEUSER= # Base User ex:ou=users,ou=nineskeletor,dc=nine,dc=fr LDAP_BASEUSER="ou=users,ou=nineskeletor,dc=nine,dc=fr" # Base User ex:ou=users,ou=nineskeletor,dc=nine,dc=fr
LDAP_USERNAME=uid # Attribut id d'un user LDAP_USERNAME=uid # Attribut id d'un user
LDAP_FIRSTNAME=givenname # Attribut firstname d'un user LDAP_FIRSTNAME=givenname # Attribut firstname d'un user
LDAP_LASTNAME=sn # Attribut lastname d'un user LDAP_LASTNAME=sn # Attribut lastname d'un user
LDAP_EMAIL=mail # Attribut email d'un user LDAP_EMAIL=mail # Attribut email d'un user
LDAP_AVATAR= # Attribut avatar d'un user LDAP_AVATAR= # Attribut avatar d'un user
LDAP_MEMBEROF=memberof # Attribut memberof d'un user LDAP_MEMBEROF=memberof # Attribut memberof d'un user
LDAP_GROUPGID=gidnumber # Attribut gid d'un groupe LDAP_GROUPGID=gidnumber # Attribut gid d'un groupe
LDAP_GROUPNAME=cn # Attribut name d'un groupe LDAP_GROUPNAME=cn # Attribut name d'un groupe
LDAP_GROUPMEMBER=memberuid # Attribut stockant les membres d'un groupe LDAP_GROUPMEMBER=memberuid # Attribut stockant les membres d'un groupe
LDAP_GROUPMEMBERISDN=0 # LDAP_GROUPMEMBER stocke un uid ou un dn ? 0/1 LDAP_GROUPMEMBERISDN=0 # LDAP_GROUPMEMBER stocke un uid ou un dn ? 0/1
LDAP_FILTERGROUP=(cn=*) # requete ldap pour rechercher les groupes LDAP_FILTERGROUP=(cn=*) # requete ldap pour rechercher les groupes
LDAP_FILTERUSER=(uid=*) # requete ldap pour rechercher les users LDAP_FILTERUSER=(uid=*) # requete ldap pour rechercher les users
LDAP_AUTOSUBMIT=1 # if APP_AUTH = LDAP autocréer les users non existant LDAP_AUTOSUBMIT=1 # if APP_AUTH = LDAP autocréer les users non existant
LDAP_AUTOUPDATE=1 # if APP_AUTH = LDAP automodifier les users existant LDAP_AUTOUPDATE=1 # if APP_AUTH = LDAP automodifier les users existant
# If APP_AUTH = CAS # If APP_AUTH = CAS
CAS_HOST= CAS_HOST=
@ -109,16 +112,16 @@ CAS_FIRSTNAME=firstname
CAS_AVATAR= CAS_AVATAR=
CAS_NIVEAU01= CAS_NIVEAU01=
CAS_GROUP= CAS_GROUP=
CAS_AUTOSUBMIT=1 # if APP_AUTH = CAS autocréer les users non existant CAS_AUTOSUBMIT=1 # if APP_AUTH = CAS autocréer les users non existant
CAS_AUTOUPDATE=1 # if APP_AUTH = CAS automodifier les users existant CAS_AUTOUPDATE=1 # if APP_AUTH = CAS automodifier les users existant
# If APP_AUTH = OPENID # If APP_AUTH = OPENID
OAUTH_CLIENTID= OAUTH_CLIENTID=nineskeletor
OAUTH_CLIENTSECRET= OAUTH_CLIENTSECRET=changeme
OAUTH_LOGINURL= OAUTH_LOGINURL="http://localhost:7080/oauth2/auth"
OAUTH_LOGOUTURL= OAUTH_LOGOUTURL="http://localhost:7080/oauth2/sessions/logout"
OAUTH_TOKENURL= OAUTH_TOKENURL="http://hydra:4444/oauth2/token"
OAUTH_USERINFO= OAUTH_USERINFO="http://hydra:4444/userinfo"
OAUTH_USERNAME=username OAUTH_USERNAME=username
OAUTH_EMAIL=email OAUTH_EMAIL=email
OAUTH_LASTNAME=lastname OAUTH_LASTNAME=lastname
@ -126,15 +129,15 @@ OAUTH_FIRSTNAME=firstname
OAUTH_AVATAR= OAUTH_AVATAR=
OAUTH_NIVEAU01= OAUTH_NIVEAU01=
OAUTH_GROUP= OAUTH_GROUP=
OAUTH_AUTOSUBMIT=1 # if APP_AUTH = OPENID autocréer les users non existant OAUTH_AUTOSUBMIT=1 # if APP_AUTH = OPENID autocréer les users non existant
OAUTH_AUTOUPDATE=1 # if APP_AUTH = OPENID automodifier les users existant OAUTH_AUTOUPDATE=1 # if APP_AUTH = OPENID automodifier les users existant
# IF APP_SYNCHRO=NINE2NINE # IF APP_SYNCHRO=NINE2NINE
NINE_URL= NINE_URL=
NINE_SECRET= NINE_SECRET=
# If APP_MODEREGISTRATION != NULL # If APP_MODEREGISTRATION != NULL
APP_MODEREGISTRATIONTERM=6 # Temps en heure de la durée de validité de l'inscription APP_MODEREGISTRATIONTERM=6 # Temps en heure de la durée de validité de l'inscription
# Proxy # Proxy
PROXY_USE=0 PROXY_USE=0
@ -149,27 +152,27 @@ SONDE_USE=0
SONDE_URL= SONDE_URL=
# Mercure # Mercure
MERCURE_URL=https://127.0.0.1/.well-known/mercure MERCURE_URL=https://mercure/.well-known/mercure
MERCURE_PUBLIC_URL=https://127.0.0.1/.well-known/mercure MERCURE_PUBLIC_URL=https://127.0.0.1/.well-known/mercure
MERCURE_JWT_SECRET="!changeme!changeme!changeme!changeme!changeme!changeme!" MERCURE_JWT_SECRET="!changeme!changeme!changeme!changeme!changeme!changeme!"
# Minio # Minio
MINIO_URL=http://127.0.0.1:9000 MINIO_URL=http://nginx:9000
MINIO_KEY=minio MINIO_KEY=minio
MINIO_SECRET=changeme MINIO_SECRET=changeme
MINIO_BUCKET=ninegate MINIO_BUCKET=nineskeletor
MINIO_ROOT= MINIO_ROOT=
MINIO_PATH_STYLE=1 MINIO_PATH_STYLE=1
MINIO_SECURE=0 MINIO_SECURE=0
# Hydra apps # Hydra apps
HYDRA_LOGINCHALLENGE="http://127.0.0.1:4445/oauth2/auth/requests/login?login_challenge=" HYDRA_LOGINCHALLENGE="http://hydra:4445/oauth2/auth/requests/login?login_challenge="
HYDRA_LOGINCHALLENGEACCEPT="http://127.0.0.1:4445/oauth2/auth/requests/login/accept?login_challenge=" HYDRA_LOGINCHALLENGEACCEPT="http://hydra:4445/oauth2/auth/requests/login/accept?login_challenge="
HYDRA_CONSENTCHALLENGE="http://127.0.0.1:4445/oauth2/auth/requests/consent?consent_challenge=" HYDRA_CONSENTCHALLENGE="http://hydra:4445/oauth2/auth/requests/consent?consent_challenge="
HYDRA_CONSENTCHALLENGEACCEPT="http://127.0.0.1:4445/oauth2/auth/requests/consent/accept?consent_challenge=" HYDRA_CONSENTCHALLENGEACCEPT="http://hydra:4445/oauth2/auth/requests/consent/accept?consent_challenge="
# Lock # Lock
LOCK_DSN="postgresql://symfony:ChangeMe@127.0.0.1:5432/ninegate?serverVersion=13&charset=utf8" LOCK_DSN="postgresql://symfony:ChangeMe@postgresql:5432/nineskeletor?serverVersion=13&charset=utf8"
# Sentry # Sentry
SENTRY_DSN= SENTRY_DSN=

3
.gitignore vendored
View File

@ -29,3 +29,6 @@ yarn-error.log
/public/uploads/ckeditor /public/uploads/ckeditor
.php-cs-fixer.cache .php-cs-fixer.cache
###> phpstan/phpstan ###
phpstan.neon
###< phpstan/phpstan ###

41
.php-cs-fixer.dist.php Executable file → Normal file
View File

@ -1,12 +1,45 @@
<?php <?php
$finder = PhpCsFixer\Finder::create() $finder = PhpCsFixer\Finder::create()
->in(__DIR__.'/src'); ->in(__DIR__.'/src')
->name('*.php')
;
$config = new PhpCsFixer\Config(); // TODO: Définir les règles de style communes
return $config->setRules([ // spécifiques au projet
return (new PhpCsFixer\Config())
->setRules([
'@Symfony' => true, '@Symfony' => true,
'full_opening_tag' => false, 'concat_space' => ['spacing' => 'none'],
'array_syntax' => ['syntax' => 'short'],
'combine_consecutive_issets' => true,
'explicit_indirect_variable' => true,
'no_useless_return' => true,
'ordered_imports' => true,
'no_unused_imports' => true,
'no_spaces_after_function_name' => true,
'no_spaces_inside_parenthesis' => true,
'ternary_operator_spaces' => true,
'class_definition' => ['single_line' => true],
'whitespace_after_comma_in_array' => true,
// phpdoc
'phpdoc_add_missing_param_annotation' => ['only_untyped' => true],
'phpdoc_order' => true,
'phpdoc_types_order' => [
'null_adjustment' => 'always_last',
'sort_algorithm' => 'alpha',
],
'phpdoc_no_empty_return' => false,
'phpdoc_summary' => false,
'general_phpdoc_annotation_remove' => [
'annotations' => [
'expectedExceptionMessageRegExp',
'expectedException',
'expectedExceptionMessage',
'author',
],
],
]) ])
->setFinder($finder) ->setFinder($finder)
; ;

View File

@ -123,6 +123,7 @@
"require-dev": { "require-dev": {
"doctrine/doctrine-fixtures-bundle": "^3.4", "doctrine/doctrine-fixtures-bundle": "^3.4",
"lasserafn/php-initial-avatar-generator": "^4.2", "lasserafn/php-initial-avatar-generator": "^4.2",
"phpstan/phpstan": "^1.11",
"phpunit/phpunit": "^9.5", "phpunit/phpunit": "^9.5",
"symfony/browser-kit": "6.1.*", "symfony/browser-kit": "6.1.*",
"symfony/css-selector": "6.1.*", "symfony/css-selector": "6.1.*",

62
composer.lock generated
View File

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "479a2464d612243533a7aa3eae4281d9", "content-hash": "dc1aeeadbcecb4aa48c52c26ec8b74bf",
"packages": [ "packages": [
{ {
"name": "aws/aws-crt-php", "name": "aws/aws-crt-php",
@ -11705,6 +11705,64 @@
}, },
"time": "2022-02-21T01:04:05+00:00" "time": "2022-02-21T01:04:05+00:00"
}, },
{
"name": "phpstan/phpstan",
"version": "1.11.5",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpstan.git",
"reference": "490f0ae1c92b082f154681d7849aee776a7c1443"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/490f0ae1c92b082f154681d7849aee776a7c1443",
"reference": "490f0ae1c92b082f154681d7849aee776a7c1443",
"shasum": ""
},
"require": {
"php": "^7.2|^8.0"
},
"conflict": {
"phpstan/phpstan-shim": "*"
},
"bin": [
"phpstan",
"phpstan.phar"
],
"type": "library",
"autoload": {
"files": [
"bootstrap.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"description": "PHPStan - PHP Static Analysis Tool",
"keywords": [
"dev",
"static analysis"
],
"support": {
"docs": "https://phpstan.org/user-guide/getting-started",
"forum": "https://github.com/phpstan/phpstan/discussions",
"issues": "https://github.com/phpstan/phpstan/issues",
"security": "https://github.com/phpstan/phpstan/security/policy",
"source": "https://github.com/phpstan/phpstan-src"
},
"funding": [
{
"url": "https://github.com/ondrejmirtes",
"type": "github"
},
{
"url": "https://github.com/phpstan",
"type": "github"
}
],
"time": "2024-06-17T15:10:54+00:00"
},
{ {
"name": "phpunit/php-code-coverage", "name": "phpunit/php-code-coverage",
"version": "9.2.17", "version": "9.2.17",
@ -13596,5 +13654,5 @@
"ext-iconv": "*" "ext-iconv": "*"
}, },
"platform-dev": [], "platform-dev": [],
"plugin-api-version": "2.3.0" "plugin-api-version": "2.2.0"
} }

View File

@ -1,35 +1,36 @@
twig: twig:
default_path: '%kernel.project_dir%/templates' default_path: "%kernel.project_dir%/templates"
form_themes: form_themes:
- 'Form/fields.html.twig' - "Form/fields.html.twig"
- '@TetranzSelect2Entity/Form/fields.html.twig' - "@TetranzSelect2Entity/Form/fields.html.twig"
globals: globals:
appAlias: '%appAlias%' appAlias: "%appAlias%"
appName: '%appName%' appName: "%appName%"
appMasteridentity: '%appMasteridentity%' appMasteridentity: "%appMasteridentity%"
appAuth: '%appAuth%' appAuth: "%appAuth%"
appModeregistration: '%appModeregistration%' appModeregistration: "%appModeregistration%"
appSynchro: '%appSynchro%' appSynchro: "%appSynchro%"
appSynchroPurgeUser: '%appSynchroPurgeUser%' appSynchroPurgeUser: "%appSynchroPurgeUser%"
appNiveau01label: '%appNiveau01label%' appNiveau01label: "%appNiveau01label%"
appNiveau01labels: '%appNiveau01labels%' appNiveau01labels: "%appNiveau01labels%"
appNiveau02use: '%appNiveau02use%' appNiveau02use: "%appNiveau02use%"
appNiveau02label: '%appNiveau02label%' appNiveau02label: "%appNiveau02label%"
appNiveau02labels: '%appNiveau02labels%' appNiveau02labels: "%appNiveau02labels%"
appNiveau02mandatory: '%appNiveau02mandatory%' appNiveau02mandatory: "%appNiveau02mandatory%"
appNiveau03use: '%appNiveau03use%' appNiveau03use: "%appNiveau03use%"
appNiveau03label: '%appNiveau03label%' appNiveau03label: "%appNiveau03label%"
appNiveau03labels: '%appNiveau03labels%' appNiveau03labels: "%appNiveau03labels%"
appNiveau03mandatory: '%appNiveau03mandatory%' appNiveau03mandatory: "%appNiveau03mandatory%"
appNiveau04use: '%appNiveau04use%' appNiveau04use: "%appNiveau04use%"
appNiveau04label: '%appNiveau04label%' appNiveau04label: "%appNiveau04label%"
appNiveau04labels: '%appNiveau04labels%' appNiveau04labels: "%appNiveau04labels%"
appNiveau04mandatory: '%appNiveau04mandatory%' appNiveau04mandatory: "%appNiveau04mandatory%"
appGroupuse: '%appGroupuse%' appModules: "%appModules%"
sondeUse: '%sondeUse%' appGroupuse: "%appGroupuse%"
sondeUrl: '%sondeUrl%' sondeUse: "%sondeUse%"
auditUse: '%auditUse%' sondeUrl: "%sondeUrl%"
auditUse: "%auditUse%"
when@test: when@test:
twig: twig:
strict_variables: true strict_variables: true

View File

@ -1,286 +1,317 @@
parameters: parameters:
appEnv: "%env(resolve:APP_ENV)%"
appSecret: "%env(resolve:APP_SECRET)%"
appSessiontime: "%env(resolve:APP_SESSIONTIME)%"
appEnv: '%env(resolve:APP_ENV)%' appWeburl: "%env(resolve:APP_WEBURL)%"
appSecret: '%env(resolve:APP_SECRET)%' appAuth: "%env(resolve:APP_AUTH)%"
appSessiontime: '%env(resolve:APP_SESSIONTIME)%' appAlias: "%env(resolve:APP_ALIAS)%"
appName: "%env(resolve:APP_NAME)%"
appMasteridentity: "%env(resolve:APP_MASTERIDENTITY)%"
appModeregistration: "%env(resolve:APP_MODEREGISTRATION)%"
appAdmins: "%env(json:APP_ADMINS)%"
appWeburl: '%env(resolve:APP_WEBURL)%' appModules: "%env(json:APP_MODULES)%"
appAuth: '%env(resolve:APP_AUTH)%'
appAlias: '%env(resolve:APP_ALIAS)%'
appName: '%env(resolve:APP_NAME)%'
appMasteridentity: '%env(resolve:APP_MASTERIDENTITY)%'
appModeregistration: '%env(resolve:APP_MODEREGISTRATION)%'
appAdmins: '%env(json:APP_ADMINS)%'
appNiveau01label: '%env(resolve:APP_NIVEAU01LABEL)%' appNiveau01label: "%env(resolve:APP_NIVEAU01LABEL)%"
appNiveau01labels: '%env(resolve:APP_NIVEAU01LABELS)%' appNiveau01labels: "%env(resolve:APP_NIVEAU01LABELS)%"
appNiveau02use: '%env(resolve:APP_NIVEAU02USE)%' appNiveau02use: "%env(resolve:APP_NIVEAU02USE)%"
appNiveau02label: '%env(resolve:APP_NIVEAU02LABEL)%' appNiveau02label: "%env(resolve:APP_NIVEAU02LABEL)%"
appNiveau02labels: '%env(resolve:APP_NIVEAU02LABELS)%' appNiveau02labels: "%env(resolve:APP_NIVEAU02LABELS)%"
appNiveau02mandatory: '%env(json:APP_NIVEAU02MANDATORY)%' appNiveau02mandatory: "%env(json:APP_NIVEAU02MANDATORY)%"
appNiveau03use: '%env(resolve:APP_NIVEAU03USE)%' appNiveau03use: "%env(resolve:APP_NIVEAU03USE)%"
appNiveau03label: '%env(resolve:APP_NIVEAU03LABEL)%' appNiveau03label: "%env(resolve:APP_NIVEAU03LABEL)%"
appNiveau03labels: '%env(resolve:APP_NIVEAU03LABELS)%' appNiveau03labels: "%env(resolve:APP_NIVEAU03LABELS)%"
appNiveau03mandatory: '%env(json:APP_NIVEAU03MANDATORY)%' appNiveau03mandatory: "%env(json:APP_NIVEAU03MANDATORY)%"
appNiveau04use: '%env(resolve:APP_NIVEAU04USE)%' appNiveau04use: "%env(resolve:APP_NIVEAU04USE)%"
appNiveau04label: '%env(resolve:APP_NIVEAU04LABEL)%' appNiveau04label: "%env(resolve:APP_NIVEAU04LABEL)%"
appNiveau04labels: '%env(resolve:APP_NIVEAU04LABELS)%' appNiveau04labels: "%env(resolve:APP_NIVEAU04LABELS)%"
appNiveau04mandatory: '%env(json:APP_NIVEAU04MANDATORY)%' appNiveau04mandatory: "%env(json:APP_NIVEAU04MANDATORY)%"
appNiveauupdatable: '%env(resolve:APP_NIVEAUUPDATABLE)%' appNiveauupdatable: "%env(resolve:APP_NIVEAUUPDATABLE)%"
appGroupuse: '%env(resolve:APP_GROUPUSE)%' appGroupuse: "%env(resolve:APP_GROUPUSE)%"
appGroupsubmiter: '%env(json:APP_GROUPSUBMITER)%' appGroupsubmiter: "%env(json:APP_GROUPSUBMITER)%"
appAnnuscopeadmin: '%env(resolve:APP_ANNUSCOPEADMIN)%' appAnnuscopeadmin: "%env(resolve:APP_ANNUSCOPEADMIN)%"
appAnnuscopemodo: '%env(resolve:APP_ANNUSCOPEMODO)%' appAnnuscopemodo: "%env(resolve:APP_ANNUSCOPEMODO)%"
appAnnuscopemaster: '%env(resolve:APP_ANNUSCOPEMASTER)%' appAnnuscopemaster: "%env(resolve:APP_ANNUSCOPEMASTER)%"
appAnnuscopemanager: '%env(resolve:APP_ANNUSCOPEMANAGER)%' appAnnuscopemanager: "%env(resolve:APP_ANNUSCOPEMANAGER)%"
appAnnuscopeuser: '%env(resolve:APP_ANNUSCOPEUSER)%' appAnnuscopeuser: "%env(resolve:APP_ANNUSCOPEUSER)%"
appUserviewisvisible: '%env(resolve:APP_USERVIEWISVISIBLE)%' appUserviewisvisible: "%env(resolve:APP_USERVIEWISVISIBLE)%"
appSynchro: '%env(resolve:APP_SYNCHRO)%' appSynchro: "%env(resolve:APP_SYNCHRO)%"
appSynchroPurgeNiveau01: '%env(resolve:APP_SYNDCHROPURGENIVEAU01)%' appSynchroPurgeNiveau01: "%env(resolve:APP_SYNDCHROPURGENIVEAU01)%"
appSynchroPurgeNiveau02: '%env(resolve:APP_SYNDCHROPURGENIVEAU02)%' appSynchroPurgeNiveau02: "%env(resolve:APP_SYNDCHROPURGENIVEAU02)%"
appSynchroPurgeNiveau03: '%env(resolve:APP_SYNDCHROPURGENIVEAU03)%' appSynchroPurgeNiveau03: "%env(resolve:APP_SYNDCHROPURGENIVEAU03)%"
appSynchroPurgeNiveau04: '%env(resolve:APP_SYNDCHROPURGENIVEAU04)%' appSynchroPurgeNiveau04: "%env(resolve:APP_SYNDCHROPURGENIVEAU04)%"
appSynchroPurgeGroup: '%env(resolve:APP_SYNDCHROPURGEGROUP)%' appSynchroPurgeGroup: "%env(resolve:APP_SYNDCHROPURGEGROUP)%"
appSynchroPurgeUser: '%env(resolve:APP_SYNDCHROPURGEUSER)%' appSynchroPurgeUser: "%env(resolve:APP_SYNDCHROPURGEUSER)%"
databaseUrl: '%env(resolve:DATABASE_URL)%' databaseUrl: "%env(resolve:DATABASE_URL)%"
appMailmethod: '%env(resolve:MAILER_METHOD)%' appMailmethod: "%env(resolve:MAILER_METHOD)%"
appMaildsn: '%env(resolve:MAILER_DSN)%' appMaildsn: "%env(resolve:MAILER_DSN)%"
appMailnoreply: '%env(resolve:MAILER_NOREPLY)%' appMailnoreply: "%env(resolve:MAILER_NOREPLY)%"
ldapHost: '%env(resolve:LDAP_HOST)%' ldapHost: "%env(resolve:LDAP_HOST)%"
ldapPort: '%env(resolve:LDAP_PORT)%' ldapPort: "%env(resolve:LDAP_PORT)%"
ldapUsetls: '%env(resolve:LDAP_USETLS)%' ldapUsetls: "%env(resolve:LDAP_USETLS)%"
ldapUserwriter: '%env(resolve:LDAP_USERWRITER)%' ldapUserwriter: "%env(resolve:LDAP_USERWRITER)%"
ldapUser: '%env(resolve:LDAP_USER)%' ldapUser: "%env(resolve:LDAP_USER)%"
ldapPassword: '%env(resolve:LDAP_PASSWORD)%' ldapPassword: "%env(resolve:LDAP_PASSWORD)%"
ldapBasedn: '%env(resolve:LDAP_BASEDN)%' ldapBasedn: "%env(resolve:LDAP_BASEDN)%"
ldapBaseorganisation: '%env(resolve:LDAP_BASEORGANISATION)%' ldapBaseorganisation: "%env(resolve:LDAP_BASEORGANISATION)%"
ldapBaseniveau01: '%env(resolve:LDAP_BASENIVEAU01)%' ldapBaseniveau01: "%env(resolve:LDAP_BASENIVEAU01)%"
ldapBaseniveau02: '%env(resolve:LDAP_BASENIVEAU02)%' ldapBaseniveau02: "%env(resolve:LDAP_BASENIVEAU02)%"
ldapBaseniveau03: '%env(resolve:LDAP_BASENIVEAU03)%' ldapBaseniveau03: "%env(resolve:LDAP_BASENIVEAU03)%"
ldapBaseniveau04: '%env(resolve:LDAP_BASENIVEAU04)%' ldapBaseniveau04: "%env(resolve:LDAP_BASENIVEAU04)%"
ldapBasegroup: '%env(resolve:LDAP_BASEGROUP)%' ldapBasegroup: "%env(resolve:LDAP_BASEGROUP)%"
ldapBaseuser: '%env(resolve:LDAP_BASEUSER)%' ldapBaseuser: "%env(resolve:LDAP_BASEUSER)%"
ldapUsername: '%env(resolve:LDAP_USERNAME)%' ldapUsername: "%env(resolve:LDAP_USERNAME)%"
ldapFirstname: '%env(resolve:LDAP_FIRSTNAME)%' ldapFirstname: "%env(resolve:LDAP_FIRSTNAME)%"
ldapLastname: '%env(resolve:LDAP_LASTNAME)%' ldapLastname: "%env(resolve:LDAP_LASTNAME)%"
ldapEmail: '%env(resolve:LDAP_EMAIL)%' ldapEmail: "%env(resolve:LDAP_EMAIL)%"
ldapAvatar: '%env(resolve:LDAP_AVATAR)%' ldapAvatar: "%env(resolve:LDAP_AVATAR)%"
ldapMemberof: '%env(resolve:LDAP_MEMBEROF)%' ldapMemberof: "%env(resolve:LDAP_MEMBEROF)%"
ldapGroupgid: '%env(resolve:LDAP_GROUPGID)%' ldapGroupgid: "%env(resolve:LDAP_GROUPGID)%"
ldapGroupname: '%env(resolve:LDAP_GROUPNAME)%' ldapGroupname: "%env(resolve:LDAP_GROUPNAME)%"
ldapGroupmember: '%env(resolve:LDAP_GROUPMEMBER)%' ldapGroupmember: "%env(resolve:LDAP_GROUPMEMBER)%"
ldapGroupmemberisdn: '%env(resolve:LDAP_GROUPMEMBERISDN)%' ldapGroupmemberisdn: "%env(resolve:LDAP_GROUPMEMBERISDN)%"
ldapFiltergroup: '%env(resolve:LDAP_FILTERGROUP)%' ldapFiltergroup: "%env(resolve:LDAP_FILTERGROUP)%"
ldapFilteruser: '%env(resolve:LDAP_FILTERUSER)%' ldapFilteruser: "%env(resolve:LDAP_FILTERUSER)%"
ldapAutosubmit: '%env(resolve:LDAP_AUTOSUBMIT)%' ldapAutosubmit: "%env(resolve:LDAP_AUTOSUBMIT)%"
ldapAutoupdate: '%env(resolve:LDAP_AUTOUPDATE)%' ldapAutoupdate: "%env(resolve:LDAP_AUTOUPDATE)%"
casHost: '%env(resolve:CAS_HOST)%' casHost: "%env(resolve:CAS_HOST)%"
casPort: '%env(resolve:CAS_PORT)%' casPort: "%env(resolve:CAS_PORT)%"
casPath: '%env(resolve:CAS_PATH)%' casPath: "%env(resolve:CAS_PATH)%"
casUsername: '%env(resolve:CAS_USERNAME)%' casUsername: "%env(resolve:CAS_USERNAME)%"
casEmail: '%env(resolve:CAS_EMAIL)%' casEmail: "%env(resolve:CAS_EMAIL)%"
casLastname: '%env(resolve:CAS_LASTNAME)%' casLastname: "%env(resolve:CAS_LASTNAME)%"
casFirstname: '%env(resolve:CAS_FIRSTNAME)%' casFirstname: "%env(resolve:CAS_FIRSTNAME)%"
casAvatar: '%env(resolve:CAS_AVATAR)%' casAvatar: "%env(resolve:CAS_AVATAR)%"
casNiveau01: '%env(resolve:CAS_NIVEAU01)%' casNiveau01: "%env(resolve:CAS_NIVEAU01)%"
casGroup: '%env(resolve:CAS_GROUP)%' casGroup: "%env(resolve:CAS_GROUP)%"
casAutosubmit: '%env(resolve:CAS_AUTOSUBMIT)%' casAutosubmit: "%env(resolve:CAS_AUTOSUBMIT)%"
casAutoupdate: '%env(resolve:CAS_AUTOUPDATE)%' casAutoupdate: "%env(resolve:CAS_AUTOUPDATE)%"
oauthClientid: '%env(resolve:OAUTH_CLIENTID)%' oauthClientid: "%env(resolve:OAUTH_CLIENTID)%"
oauthClientsecret: '%env(resolve:OAUTH_CLIENTSECRET)%' oauthClientsecret: "%env(resolve:OAUTH_CLIENTSECRET)%"
oauthLoginurl: '%env(resolve:OAUTH_LOGINURL)%' oauthLoginurl: "%env(resolve:OAUTH_LOGINURL)%"
oauthLogouturl: '%env(resolve:OAUTH_LOGOUTURL)%' oauthLogouturl: "%env(resolve:OAUTH_LOGOUTURL)%"
oauthTokenurl: '%env(resolve:OAUTH_TOKENURL)%' oauthTokenurl: "%env(resolve:OAUTH_TOKENURL)%"
oauthUserinfo: '%env(resolve:OAUTH_USERINFO)%' oauthUserinfo: "%env(resolve:OAUTH_USERINFO)%"
oauthUsername: '%env(resolve:OAUTH_USERNAME)%' oauthUsername: "%env(resolve:OAUTH_USERNAME)%"
oauthEmail: '%env(resolve:OAUTH_EMAIL)%' oauthEmail: "%env(resolve:OAUTH_EMAIL)%"
oauthLastname: '%env(resolve:OAUTH_LASTNAME)%' oauthLastname: "%env(resolve:OAUTH_LASTNAME)%"
oauthFirstname: '%env(resolve:OAUTH_FIRSTNAME)%' oauthFirstname: "%env(resolve:OAUTH_FIRSTNAME)%"
oauthAvatar: '%env(resolve:OAUTH_AVATAR)%' oauthAvatar: "%env(resolve:OAUTH_AVATAR)%"
oauthNiveau01: '%env(resolve:OAUTH_NIVEAU01)%' oauthNiveau01: "%env(resolve:OAUTH_NIVEAU01)%"
oauthGroup: '%env(resolve:OAUTH_GROUP)%' oauthGroup: "%env(resolve:OAUTH_GROUP)%"
oauthAutosubmit: '%env(resolve:OAUTH_AUTOSUBMIT)%' oauthAutosubmit: "%env(resolve:OAUTH_AUTOSUBMIT)%"
oauthAutoupdate: '%env(resolve:OAUTH_AUTOUPDATE)%' oauthAutoupdate: "%env(resolve:OAUTH_AUTOUPDATE)%"
nineUrl: '%env(resolve:NINE_URL)%' nineUrl: "%env(resolve:NINE_URL)%"
nineSecret: '%env(resolve:NINE_SECRET)%' nineSecret: "%env(resolve:NINE_SECRET)%"
appModeregistrationterme: '%env(resolve:APP_MODEREGISTRATIONTERM)%' appModeregistrationterme: "%env(resolve:APP_MODEREGISTRATIONTERM)%"
proxyUse: '%env(resolve:PROXY_USE)%' proxyUse: "%env(resolve:PROXY_USE)%"
proxyHost: '%env(resolve:PROXY_HOST)%' proxyHost: "%env(resolve:PROXY_HOST)%"
proxyPort: '%env(resolve:PROXY_PORT)%' proxyPort: "%env(resolve:PROXY_PORT)%"
minioUrl: '%env(resolve:MINIO_URL)%' minioUrl: "%env(resolve:MINIO_URL)%"
minioKey: '%env(resolve:MINIO_KEY)%' minioKey: "%env(resolve:MINIO_KEY)%"
minioSecret: '%env(resolve:MINIO_SECRET)%' minioSecret: "%env(resolve:MINIO_SECRET)%"
minioBucket: '%env(resolve:MINIO_BUCKET)%' minioBucket: "%env(resolve:MINIO_BUCKET)%"
minioRoot: '%env(resolve:MINIO_ROOT)%' minioRoot: "%env(resolve:MINIO_ROOT)%"
minioPathstyle: '%env(resolve:MINIO_PATH_STYLE)%' minioPathstyle: "%env(resolve:MINIO_PATH_STYLE)%"
minioSecure: '%env(resolve:MINIO_SECURE)%' minioSecure: "%env(resolve:MINIO_SECURE)%"
hydraLoginchallenge: '%env(resolve:HYDRA_LOGINCHALLENGE)%' hydraLoginchallenge: "%env(resolve:HYDRA_LOGINCHALLENGE)%"
hydraLoginchallengeaccept: '%env(resolve:HYDRA_LOGINCHALLENGEACCEPT)%' hydraLoginchallengeaccept: "%env(resolve:HYDRA_LOGINCHALLENGEACCEPT)%"
hydraConsentchallenge: '%env(resolve:HYDRA_CONSENTCHALLENGE)%' hydraConsentchallenge: "%env(resolve:HYDRA_CONSENTCHALLENGE)%"
hydraConsentchallengeaccept: '%env(resolve:HYDRA_CONSENTCHALLENGEACCEPT)%' hydraConsentchallengeaccept: "%env(resolve:HYDRA_CONSENTCHALLENGEACCEPT)%"
sondeUse: '%env(resolve:SONDE_USE)%' sondeUse: "%env(resolve:SONDE_USE)%"
sondeUrl: '%env(resolve:SONDE_URL)%' sondeUrl: "%env(resolve:SONDE_URL)%"
auditUse: '%env(resolve:AUDIT_USE)%' auditUse: "%env(resolve:AUDIT_USE)%"
services: services:
_defaults: _defaults:
autowire: true # Automatically injects dependencies in your services. autowire: true # Automatically injects dependencies in your services.
autoconfigure: true # Automatically registers your services as commands, event subscribers, etc. autoconfigure: true # Automatically registers your services as commands, event subscribers, etc.
App\: App\:
resource: '../src/' resource: "../src/"
exclude: exclude:
- '../src/DependencyInjection/' - "../src/DependencyInjection/"
- '../src/Entity/' - "../src/Entity/"
- '../src/Kernel.php' - "../src/Kernel.php"
App\Controller\: App\Controller\:
resource: '../src/Controller' resource: "../src/Controller"
tags: ['controller.service_arguments'] tags: ["controller.service_arguments"]
Redis: Redis:
class: Redis class: Redis
calls: calls:
- connect: - connect:
- '%env(REDIS_HOST)%' - "%env(REDIS_HOST)%"
- '%env(int:REDIS_PORT)%' - "%env(int:REDIS_PORT)%"
Symfony\Component\HttpFoundation\Session\Storage\Handler\RedisSessionHandler: Symfony\Component\HttpFoundation\Session\Storage\Handler\RedisSessionHandler:
arguments: arguments:
- '@Redis' - "@Redis"
App\EventListener\AllSubscriber: App\EventListener\AllSubscriber:
public: true public: true
tags: tags:
- name: 'doctrine.event_subscriber' - name: "doctrine.event_subscriber"
App\EventListener\PurgefileSubscriber: App\EventListener\PurgefileSubscriber:
public: true public: true
arguments: ['@App\Service\MinioService'] arguments: ['@App\Service\MinioService']
tags: tags:
- name: 'doctrine.event_subscriber' - name: "doctrine.event_subscriber"
App\EventListener\Niveau01Subscriber: App\EventListener\Niveau01Subscriber:
public: true public: true
arguments: ['@doctrine.orm.entity_manager','@App\Service\LdapService'] arguments: ["@doctrine.orm.entity_manager", '@App\Service\LdapService']
tags: tags:
- name: 'doctrine.event_subscriber' - name: "doctrine.event_subscriber"
App\EventListener\Niveau02Subscriber: App\EventListener\Niveau02Subscriber:
public: true public: true
arguments: ['@doctrine.orm.entity_manager','@App\Service\LdapService'] arguments: ["@doctrine.orm.entity_manager", '@App\Service\LdapService']
tags: tags:
- name: 'doctrine.event_subscriber' - name: "doctrine.event_subscriber"
App\EventListener\GroupSubscriber: App\EventListener\GroupSubscriber:
public: true public: true
arguments: ['@doctrine.orm.entity_manager','@App\Service\LdapService'] arguments: ["@doctrine.orm.entity_manager", '@App\Service\LdapService']
tags: tags:
- name: 'doctrine.event_subscriber' - name: "doctrine.event_subscriber"
App\EventListener\UserSubscriber: App\EventListener\UserSubscriber:
public: true public: true
arguments: ['@doctrine.orm.entity_manager','@App\Service\LdapService'] arguments: ["@doctrine.orm.entity_manager", '@App\Service\LdapService']
tags: tags:
- name: 'doctrine.event_subscriber' - name: "doctrine.event_subscriber"
App\EventListener\UserGroupSubscriber: App\EventListener\UserGroupSubscriber:
public: true public: true
arguments: ['@doctrine.orm.entity_manager','@App\Service\LdapService'] arguments: ["@doctrine.orm.entity_manager", '@App\Service\LdapService']
tags: tags:
- name: 'doctrine.event_subscriber' - name: "doctrine.event_subscriber"
App\Entity\User: App\Entity\User:
public: true public: true
arguments: ['@security.password_hasher'] arguments: ["@security.password_hasher"]
App\Command\InitCommand: App\Command\InitCommand:
public: true public: true
arguments: ['@service_container','@doctrine.orm.entity_manager'] arguments: ["@service_container", "@doctrine.orm.entity_manager"]
App\Command\SetPasswordCommand: App\Command\SetPasswordCommand:
public: true public: true
arguments: ['@service_container','@doctrine.orm.entity_manager'] arguments: ["@service_container", "@doctrine.orm.entity_manager"]
App\Command\CronCommand: App\Command\CronCommand:
public: true public: true
arguments: ['@service_container','@doctrine.orm.entity_manager'] arguments: ["@service_container", "@doctrine.orm.entity_manager"]
App\Command\CleanCommand: App\Command\CleanCommand:
public: true public: true
arguments: ['@service_container','@doctrine.orm.entity_manager'] arguments: ["@service_container", "@doctrine.orm.entity_manager"]
App\Command\CleanRegistrationCommand: App\Command\CleanRegistrationCommand:
public: true public: true
arguments: ['@service_container','@doctrine.orm.entity_manager'] arguments: ["@service_container", "@doctrine.orm.entity_manager"]
App\Command\SynchroCommand: App\Command\SynchroCommand:
public: true public: true
arguments: ['@service_container','@doctrine.orm.entity_manager','@App\Service\LdapService'] arguments:
[
"@service_container",
"@doctrine.orm.entity_manager",
'@App\Service\LdapService',
]
App\Twig\AppExtension: App\Twig\AppExtension:
calls: calls:
- [setContainer, ["@service_container"]] - [setContainer, ["@service_container"]]
tags: tags:
- { name: twig.extension } - { name: twig.extension }
App\Service\AppSession: App\Service\AppSession:
public: true public: true
arguments: ["@service_container","@doctrine.orm.entity_manager","@request_stack","@security.token_storage"] arguments:
tags: [
- { name: kernel.event_listener, event: kernel.request, method: onDomainParse } "@service_container",
"@doctrine.orm.entity_manager",
"@request_stack",
"@security.token_storage",
]
tags:
- {
name: kernel.event_listener,
event: kernel.request,
method: onDomainParse,
}
App\Service\UploadListener: App\Service\UploadListener:
public: true public: true
arguments: ["@doctrine.orm.entity_manager"] arguments: ["@doctrine.orm.entity_manager"]
tags: tags:
- { name: kernel.event_listener, event: oneup_uploader.post_persist, method: onUpload } - {
name: kernel.event_listener,
event: oneup_uploader.post_persist,
method: onUpload,
}
App\Service\UploadSamename: App\Service\UploadSamename:
public: true public: true
App\Service\LdapService: App\Service\LdapService:
public: true public: true
arguments: ["@service_container"] arguments: ["@service_container"]
App\Service\MailService: App\Service\MailService:
public: true public: true
arguments: ["@mailer", "@twig"] arguments: ["@mailer", "@twig"]
App\Service\ApiService: App\Service\ApiService:
public: true public: true
App\Service\MinioService: App\Service\MinioService:
public: true public: true
arguments: ["%kernel.project_dir%","%minioUrl%","%minioKey%","%minioSecret%","%minioBucket%","%minioRoot%","%minioPathstyle%","%minioSecure%","%kernel.environment%"] arguments:
[
"%kernel.project_dir%",
"%minioUrl%",
"%minioKey%",
"%minioSecret%",
"%minioBucket%",
"%minioRoot%",
"%minioPathstyle%",
"%minioSecure%",
"%kernel.environment%",
]
App\Controller\RestController: App\Controller\RestController:
public: true public: true
App\Form\PagewidgetType: App\Form\PagewidgetType:
arguments: ["@service_container"] arguments: ["@service_container"]
App\Form\Type\FaChoiceType: App\Form\Type\FaChoiceType:
arguments: ["%kernel.project_dir%/public/medias/icons-fa5.json"] arguments: ["%kernel.project_dir%/public/medias/icons-fa5.json"]
tags: tags:
- { name: form.type } - { name: form.type }

View File

@ -7,10 +7,10 @@ hydra:
description: description:
fr: Authentification via NINESQL fr: Authentification via NINESQL
en: Authentication by NINESQL en: Authentication by NINESQL
icon_url: https://127.0.0.1:8000/medias/icon/icon_bdd.png icon_url: http://localhost:8005/medias/icon/icon_bdd.png
login_url: http://127.0.0.1:8000/hydra/loginsql login_url: http://localhost:8005/hydra/loginsql
consent_url: http://127.0.0.1:8000/hydra/consent consent_url: http://localhost:8005/hydra/consent
logout_url: http://127.0.0.1:8000/hydra/logoutsql logout_url: http://localhost:8005/hydra/logoutsql
attributes_rewrite_rules: attributes_rewrite_rules:
username: username:
- consent.session.id_token.username - consent.session.id_token.username
@ -21,23 +21,23 @@ hydra:
lastname: lastname:
- consent.session.id_token.lastname - consent.session.id_token.lastname
- id: nineldap #- id: nineldap
title: # title:
fr: NINE LDAP # fr: NINE LDAP
en: NINE LDAP # en: NINE LDAP
description: # description:
fr: Authentification via NINELDAP # fr: Authentification via NINELDAP
en: Authentication by NINELDAP # en: Authentication by NINELDAP
icon_url: https://127.0.0.1:8000/medias/icon/icon_phpldapadmin.png # icon_url: http://localhost:8005/medias/icon/icon_phpldapadmin.png
login_url: http://127.0.0.1:8000/hydra/loginldap # login_url: http://localhost:8005/hydra/loginldap
consent_url: http://127.0.0.1:8000/hydra/consent # consent_url: http://localhost:8005/hydra/consent
logout_url: http://127.0.0.1:8000/hydra/logoutldap # logout_url: http://localhost:8005/hydra/logoutldap
attributes_rewrite_rules: # attributes_rewrite_rules:
username: # username:
- consent.session.id_token.username # - consent.session.id_token.username
email: # email:
- consent.session.id_token.email # - consent.session.id_token.email
firstname: # firstname:
- consent.session.id_token.firstname # - consent.session.id_token.firstname
lastname: # lastname:
- consent.session.id_token.lastname # - consent.session.id_token.lastname

View File

@ -9,11 +9,12 @@
"jwks": {}, "jwks": {},
"metadata": {}, "metadata": {},
"token_endpoint_auth_method": "client_secret_post", "token_endpoint_auth_method": "client_secret_post",
"post_logout_redirect_uris": ["https://127.0.0.1:8000"], "post_logout_redirect_uris": ["http://localhost:8005"],
"redirect_uris": ["https://127.0.0.1:8000/oauth2/callback"], "redirect_uris": ["http://localhost:8005/oauth2/callback"],
"response_types": [ "response_types": [
"code" "code"
], ],
"logo_uri": "https://127.0.0.1:8000/minio/logo", "logo_uri": "http://localhost:8005/minio/logo",
"scope": "openid" "scope": "openid"
} }

View File

@ -1,6 +1,7 @@
version: '3' version: '3'
# Port # Port
# 8005 = nineskeletor
# 6379 = redis # 6379 = redis
# 5432 = postgresql # 5432 = postgresql
# 80 = mercure # 80 = mercure
@ -14,10 +15,28 @@ version: '3'
services: services:
nineskeletor:
build:
context: .
dockerfile: ./misc/docker/Dockerfile
container_name: nineskeletor-app
image: reg.cadoles.com/envole/nineskeletor
ports:
- "8005:80"
- "5588:5588"
volumes:
- ./src:/app/src:delegated
- ./templates:/app/templates:delegated
- ./config:/app/config:delegated
- ./.env:/app/.env:delegated
- ./public/uploads:/app/public/uploads:delegated
- ./misc:/app/misc:delegated
# Service redis pour le stockage des sessions # Service redis pour le stockage des sessions
redis: redis:
image: redis:4.0 image: redis:4.0
container_name: ninegate-redis container_name: nineskeletor-redis
ports: ports:
- 6379:6379 - 6379:6379
environment: environment:
@ -28,10 +47,10 @@ services:
# Service postgresql pour le stockage de la bdd applicative # Service postgresql pour le stockage de la bdd applicative
postgresql: postgresql:
image: postgres:13-alpine image: postgres:13-alpine
container_name: ninegate-postgresql container_name: nineskeletor-postgresql
hostname: ninegate-postgresql hostname: nineskeletor-postgresql
environment: environment:
POSTGRES_MULTIPLE_DATABASES: ninegate,hydra POSTGRES_MULTIPLE_DATABASES: nineskeletor,hydra
POSTGRES_PASSWORD: ChangeMe POSTGRES_PASSWORD: ChangeMe
POSTGRES_USER: symfony POSTGRES_USER: symfony
ports: ports:
@ -43,7 +62,7 @@ services:
# Service websocket # Service websocket
mercure: mercure:
image: dunglas/mercure image: dunglas/mercure
container_name: ninegate-mercure container_name: nineskeletor-mercure
restart: unless-stopped restart: unless-stopped
ports: ports:
- "80" - "80"
@ -62,7 +81,7 @@ services:
# Service de stockage Minio # Service de stockage Minio
minio1: minio1:
image: minio/minio:RELEASE.2021-01-16T02-19-44Z image: minio/minio:RELEASE.2021-01-16T02-19-44Z
container_name: ninegate-minio1 container_name: nineskeletor-minio1
volumes: volumes:
- data1-1:/data1 - data1-1:/data1
- data1-2:/data2 - data1-2:/data2
@ -81,7 +100,7 @@ services:
# Service de stockage Minio # Service de stockage Minio
minio2: minio2:
image: minio/minio:RELEASE.2021-01-16T02-19-44Z image: minio/minio:RELEASE.2021-01-16T02-19-44Z
container_name: ninegate-minio2 container_name: nineskeletor-minio2
volumes: volumes:
- data2-1:/data1 - data2-1:/data1
- data2-2:/data2 - data2-2:/data2
@ -100,7 +119,7 @@ services:
# Service de stockage Minio # Service de stockage Minio
minio3: minio3:
image: minio/minio:RELEASE.2021-01-16T02-19-44Z image: minio/minio:RELEASE.2021-01-16T02-19-44Z
container_name: ninegate-minio3 container_name: nineskeletor-minio3
volumes: volumes:
- data3-1:/data1 - data3-1:/data1
- data3-2:/data2 - data3-2:/data2
@ -119,7 +138,7 @@ services:
# Service de stockage Minio # Service de stockage Minio
minio4: minio4:
image: minio/minio:RELEASE.2021-01-16T02-19-44Z image: minio/minio:RELEASE.2021-01-16T02-19-44Z
container_name: ninegate-minio4 container_name: nineskeletor-minio4
volumes: volumes:
- data4-1:/data1 - data4-1:/data1
- data4-2:/data2 - data4-2:/data2
@ -138,7 +157,7 @@ services:
# Service nginx orchestrateur des minio # Service nginx orchestrateur des minio
nginx: nginx:
image: nginx:1.19.2-alpine image: nginx:1.19.2-alpine
container_name: ninegate-nginx container_name: nineskeletor-nginx
volumes: volumes:
- ./containers/minio/nginx.conf:/etc/nginx/nginx.conf:ro - ./containers/minio/nginx.conf:/etc/nginx/nginx.conf:ro
ports: ports:
@ -152,7 +171,7 @@ services:
# Service hydra # Service hydra
hydra: hydra:
image: cadoles/hydra-v1 image: cadoles/hydra-v1
container_name: ninegate-hydra container_name: nineskeletor-hydra
volumes: volumes:
- ./containers/hydra/clients.d:/etc/hydra/clients.d - ./containers/hydra/clients.d:/etc/hydra/clients.d
ports: ports:
@ -165,10 +184,11 @@ services:
restart: on-failure restart: on-failure
environment: environment:
LOG_LEAK_SENSITIVE_VALUES: "true" LOG_LEAK_SENSITIVE_VALUES: "true"
HYDRA_URLS_SELF_ISSUER: http://127.0.0.1:7080 HYDRA_URLS_SELF_ISSUER: http://localhost:7080
HYDRA_URLS_CONSENT: http://127.0.0.1:7081/consent HYDRA_URLS_CONSENT: http://localhost:7081/consent
HYDRA_URLS_LOGIN: http://127.0.0.1:7081/login HYDRA_URLS_LOGIN: http://localhost:7081/login
HYDRA_URLS_LOGOUT: http://127.0.0.1:7081/logout HYDRA_URLS_LOGOUT: http://localhost:7081/logout
HYDRA_URLS_ERROR: https://localhost:8005
HYDRA_DSN: postgres://symfony:ChangeMe@postgresql:5432/hydra HYDRA_DSN: postgres://symfony:ChangeMe@postgresql:5432/hydra
#HYDRA_WAIT4X_DATABASE_TYPE: postgres #HYDRA_WAIT4X_DATABASE_TYPE: postgres
#HYDRA_WAIT4X_DATABASE_DSN: postgres://symfony:ChangeMe@postgresql:5432/hydra #HYDRA_WAIT4X_DATABASE_DSN: postgres://symfony:ChangeMe@postgresql:5432/hydra
@ -178,7 +198,7 @@ services:
hydra-dispatcher: hydra-dispatcher:
build: build:
context: ./containers/hydra-dispatcher context: ./containers/hydra-dispatcher
container_name: ninegate-hydra-dispatcher container_name: nineskeletor-hydra-dispatcher
links: links:
- hydra - hydra
ports: ports:
@ -190,7 +210,7 @@ services:
- HYDRA_BASE_URL=http://hydra:4444 - HYDRA_BASE_URL=http://hydra:4444
- HYDRA_ADMIN_BASE_URL=http://hydra:4445 - HYDRA_ADMIN_BASE_URL=http://hydra:4445
# url dispatcher # url dispatcher
- BASE_URL=http://127.0.0.1:7081 - BASE_URL=http://localhost:7081
- COOKIE_PATH=/ - COOKIE_PATH=/
- DEFAULT_LOCALE=fr - DEFAULT_LOCALE=fr
- APP_LOCALES=fr,en - APP_LOCALES=fr,en
@ -202,15 +222,15 @@ services:
# Service fake smtp = optionnel # Service fake smtp = optionnel
mailer: mailer:
image: schickling/mailcatcher image: schickling/mailcatcher
container_name: ninegate-mailer container_name: nineskeletor-mailer
ports: ports:
- 1025:1025 - 1025:1025
- 1080:1080 - 1080:1080
# Service fake openldap = optionnel si ninegate a une synchronisation avec un annuaire # Service fake openldap = optionnel si nineskeletor a une synchronisation avec un annuaire
openldap: openldap:
image: osixia/openldap:1.5.0 image: osixia/openldap:1.5.0
container_name: ninegate-openldap container_name: nineskeletor-openldap
environment: environment:
LDAP_LOG_LEVEL: "256" LDAP_LOG_LEVEL: "256"
LDAP_ORGANISATION: "nine" LDAP_ORGANISATION: "nine"
@ -232,7 +252,7 @@ services:
# Service tool phpldapadmin = optionnel dans le cas de la présence d'un fake openldap # Service tool phpldapadmin = optionnel dans le cas de la présence d'un fake openldap
phpldapadmin: phpldapadmin:
image: osixia/phpldapadmin:latest image: osixia/phpldapadmin:latest
container_name: ninegate-phpldapadmin container_name: nineskeletor-phpldapadmin
environment: environment:
PHPLDAPADMIN_LDAP_HOSTS: "openldap" PHPLDAPADMIN_LDAP_HOSTS: "openldap"
PHPLDAPADMIN_HTTPS: "false" PHPLDAPADMIN_HTTPS: "false"
@ -244,7 +264,7 @@ services:
# Service tool adminer = optionnel # Service tool adminer = optionnel
adminer: adminer:
image: adminer image: adminer
container_name: ninegate-adminer container_name: nineskeletor-adminer
restart: always restart: always
ports: ports:
- 6081:8080 - 6081:8080

22
misc/docker/Dockerfile Normal file
View File

@ -0,0 +1,22 @@
FROM reg.cadoles.com/envole/nineapache:8.1
RUN echo "* * * * * /app/bin/console app:Cron --env=prod" >> /var/spool/cron/crontabs/root
WORKDIR /app
COPY . .
RUN yarn install
RUN yarn encore dev
RUN yarn encore prod
RUN mkdir -p /app/public/uploads
RUN chown apache /app/public/uploads -R
RUN chmod u+w /app/public/uploads -R
RUN mkdir -p /app/var
RUN chown apache /app/var -R
RUN chmod u+w /app/var -R
CMD /app/misc/script/reconfigure.sh && /etc/apache2/apache2.sh
#CMD /etc/apache2/apache2.sh

17
misc/script/reconfigure.sh Executable file
View File

@ -0,0 +1,17 @@
#!/bin/bash
set -eo pipefail
# Se positionner sur la racine du projet
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
cd ${DIR}
cd ../..
DIR=$(pwd)
# Installation des dépendances composer
composer install --no-interaction
bin/console d:s:u --force --complete
bin/console app:Init
exec $@

8
phpstan.dist.neon Normal file
View File

@ -0,0 +1,8 @@
parameters:
level: 6
paths:
- bin/
- config/
- public/
- src/
- tests/

View File

@ -18,24 +18,27 @@ class HomeController extends AbstractController
// Récupération de la page encours // Récupération de la page encours
$id = $request->query->get('id'); $id = $request->query->get('id');
// Calcul des pages de l'utilisateur // Application Portal
$em->getRepository("App\Entity\Page")->getPagesUser($this->getUser(), $id, $pagecurrent, $pagesportal, $pagesuser, $groups); if (in_array('PORTAL', $this->getParameter('appModules'))) {
// Calcul des pages de l'utilisateur
$em->getRepository("App\Entity\Page")->getPagesUser($this->getUser(), $id, $pagecurrent, $pagesportal, $pagesuser, $groups);
// si aucune page = page par défaut // si aucune page = page par défaut
if ($pagecurrent) { if ($pagecurrent) {
return $this->render('Page/pages.html.twig', [ return $this->render('Page/pages.html.twig', [
'useheader' => true, 'useheader' => true,
'usemenu' => true, 'usemenu' => true,
'usesidebar' => false, 'usesidebar' => false,
'entity' => $pagecurrent, 'entity' => $pagecurrent,
'access' => 'all', 'access' => 'all',
'pagesportal' => $pagesportal, 'pagesportal' => $pagesportal,
'pagesuser' => $pagesuser, 'pagesuser' => $pagesuser,
'groups' => $groups, 'groups' => $groups,
'canadd' => true, 'canadd' => true,
'widgetsuser' => $em->getRepository("App\Entity\Widget")->getWidgetAccess('all'), 'widgetsuser' => $em->getRepository("App\Entity\Widget")->getWidgetAccess('all'),
'widgetsgroup' => $em->getRepository("App\Entity\Widget")->getWidgetAccess('group'), 'widgetsgroup' => $em->getRepository("App\Entity\Widget")->getWidgetAccess('group'),
]); ]);
}
} }
if (!$this->getUser()) { if (!$this->getUser()) {

View File

@ -252,7 +252,6 @@ class PagewidgetController extends AbstractController
'idpage' => $idpage, 'idpage' => $idpage,
'form' => $form->createView(), 'form' => $form->createView(),
'usage' => $usage, 'usage' => $usage,
'group' => $group,
]); ]);
} }

View File

@ -237,6 +237,7 @@ class SecurityController extends AbstractController
$callback = $this->generateUrl('app_loginopenidcallback', [], UrlGeneratorInterface::ABSOLUTE_URL); $callback = $this->generateUrl('app_loginopenidcallback', [], UrlGeneratorInterface::ABSOLUTE_URL);
$apiurl = $this->getParameter('oauthTokenurl'); $apiurl = $this->getParameter('oauthTokenurl');
$query = [ $query = [
'grant_type' => 'authorization_code', 'grant_type' => 'authorization_code',
'code' => $request->get('code'), 'code' => $request->get('code'),
@ -244,10 +245,10 @@ class SecurityController extends AbstractController
'client_id' => $this->getParameter('oauthClientid'), 'client_id' => $this->getParameter('oauthClientid'),
'client_secret' => $this->getParameter('oauthClientsecret'), 'client_secret' => $this->getParameter('oauthClientsecret'),
]; ];
$response = $this->apiservice->run('POST', $apiurl, $query, null, 'form');
$response = $this->apiservice->run('POST', $apiurl, $query, null, 'form');
if (!$response || '200' != $response->code) { if (!$response || '200' != $response->code) {
exit('pb openid 01'); exit('pb openid 01 <a href="/login">login</a>');
} }
$accesstoken = $response->body->access_token; $accesstoken = $response->body->access_token;
$accesstokentype = $response->body->token_type; $accesstokentype = $response->body->token_type;
@ -257,10 +258,9 @@ class SecurityController extends AbstractController
$request->getSession()->set('oauthIdtoken', $îdtoken); $request->getSession()->set('oauthIdtoken', $îdtoken);
$apiurl = $this->getParameter('oauthUserinfo'); $apiurl = $this->getParameter('oauthUserinfo');
$response = $this->apiservice->run('GET', $apiurl, null, ['Authorization' => $accesstokentype.' '.$accesstoken]); $response = $this->apiservice->run('GET', $apiurl, null, ['Authorization' => $accesstokentype.' '.$accesstoken]);
if (!$response || '200' != $response->code) { if (!$response || '200' != $response->code) {
exit('pb openid 02'); exit('pb openid 02 <a href="/login">login</a>');
} }
$attributes = json_decode(json_encode($response->body), true); $attributes = json_decode(json_encode($response->body), true);

View File

@ -176,14 +176,12 @@ class LdapService
return $this->resultToArray($result); return $this->resultToArray($result);
} }
public function searchdn($dn, $subBranch = '') public function searchdn($dn)
{ {
$connection = $this->connect(); $connection = $this->connect();
$tbdn = ldap_explode_dn($dn, 0); $result = @ldap_read($connection, $dn, '(objectClass=*)');
$branch = ($subBranch ? $subBranch : $this->basedn);
$result = ldap_search($connection, $branch, '('.$tbdn[0].')', [], 0, 0, 0);
if (!$result) { if (!$result) {
$this->ldapError(); return null;
} }
return $this->resultToArray($result); return $this->resultToArray($result);
@ -300,32 +298,32 @@ class LdapService
$this->addOrganisation($this->baseorganisation); $this->addOrganisation($this->baseorganisation);
} }
$ldapentrys = $this->searchdn($this->baseniveau01, $this->baseorganisation); $ldapentrys = $this->searchdn($this->baseniveau01);
if (empty($ldapentrys)) { if (empty($ldapentrys)) {
$this->addOrganisation($this->baseniveau01); $this->addOrganisation($this->baseniveau01);
} }
$ldapentrys = $this->searchdn($this->baseniveau02, $this->baseorganisation); $ldapentrys = $this->searchdn($this->baseniveau02);
if (empty($ldapentrys)) { if (empty($ldapentrys)) {
$this->addOrganisation($this->baseniveau02); $this->addOrganisation($this->baseniveau02);
} }
$ldapentrys = $this->searchdn($this->baseniveau03, $this->baseorganisation); $ldapentrys = $this->searchdn($this->baseniveau03);
if (empty($ldapentrys)) { if (empty($ldapentrys)) {
$this->addOrganisation($this->baseniveau03); $this->addOrganisation($this->baseniveau03);
} }
$ldapentrys = $this->searchdn($this->baseniveau04, $this->baseorganisation); $ldapentrys = $this->searchdn($this->baseniveau04);
if (empty($ldapentrys)) { if (empty($ldapentrys)) {
$this->addOrganisation($this->baseniveau04); $this->addOrganisation($this->baseniveau04);
} }
$ldapentrys = $this->searchdn($this->basegroup, $this->baseorganisation); $ldapentrys = $this->searchdn($this->basegroup);
if (empty($ldapentrys)) { if (empty($ldapentrys)) {
$this->addOrganisation($this->basegroup); $this->addOrganisation($this->basegroup);
} }
$ldapentrys = $this->searchdn($this->baseuser, $this->baseorganisation); $ldapentrys = $this->searchdn($this->baseuser);
if (empty($ldapentrys)) { if (empty($ldapentrys)) {
$this->addOrganisation($this->baseuser); $this->addOrganisation($this->baseuser);
} }

View File

@ -97,6 +97,18 @@
"config/routes/oneup_uploader.yaml" "config/routes/oneup_uploader.yaml"
] ]
}, },
"phpstan/phpstan": {
"version": "1.11",
"recipe": {
"repo": "github.com/symfony/recipes-contrib",
"branch": "main",
"version": "1.0",
"ref": "5e490cc197fb6bb1ae22e5abbc531ddc633b6767"
},
"files": [
"phpstan.dist.neon"
]
},
"phpunit/phpunit": { "phpunit/phpunit": {
"version": "9.5", "version": "9.5",
"recipe": { "recipe": {

View File

@ -127,30 +127,37 @@
{% endif %} {% endif %}
{% endfor %} {% endfor %}
<div class="nav-link-section"> {% set toshow=true %}
<a class="nav-link nav-link-title" onClick="$('#sidebar .nav-link-items').hide();$(this).next().toggle();"> {% if section.name == "PORTAIL" and not ("PORTAL" in appModules) %}
<i class="{{section.icon}}"></i> {% set toshow=false %}
<span>{{section.name}}</span> {% endif %}
</a>
<div class="nav-link-items" style="{% if sectionactive %}display:block{%else%}display:none{%endif%}">
{% for item in section.items %}
{% set toshow=true %}
{% if item.route=="app_admin_registration" and (appMasteridentity!="SQL" or appModeregistration is empty) %} {% set toshow=false %} {% endif %}
{% if item.route=="app_admin_whitelist" and (appMasteridentity!="SQL" or appModeregistration is empty) %} {% set toshow=false %} {% endif %}
{% if item.route=="app_admin_niveau02" and not appNiveau02use %} {% set toshow=false %} {% endif %}
{% if item.route=="app_admin_niveau03" and not appNiveau03use %} {% set toshow=false %} {% endif %}
{% if item.route=="app_admin_niveau04" and not appNiveau04use %} {% set toshow=false %} {% endif %}
{% if item.route=="app_admin_group" and not appGroupuse %} {% set toshow=false %} {% endif %}
{%if toshow %} {% if toshow %}
<a class="nav-link nav-link-item {% if item.route in app.request.get('_route') %}active{%endif%}" href="{{path(item.route)}}" title="{{item.name}}"> <div class="nav-link-section">
<i class="{{item.icon}} fa-fw"></i> <a class="nav-link nav-link-title" onClick="$('#sidebar .nav-link-items').hide();$(this).next().toggle();">
<span>{{item.name}}</span> <i class="{{section.icon}}"></i>
</a> <span>{{section.name}}</span>
{% endif %} </a>
{% endfor %} <div class="nav-link-items" style="{% if sectionactive %}display:block{%else%}display:none{%endif%}">
{% for item in section.items %}
{% set toshow=true %}
{% if item.route=="app_admin_registration" and (appMasteridentity!="SQL" or appModeregistration is empty) %} {% set toshow=false %} {% endif %}
{% if item.route=="app_admin_whitelist" and (appMasteridentity!="SQL" or appModeregistration is empty) %} {% set toshow=false %} {% endif %}
{% if item.route=="app_admin_niveau02" and not appNiveau02use %} {% set toshow=false %} {% endif %}
{% if item.route=="app_admin_niveau03" and not appNiveau03use %} {% set toshow=false %} {% endif %}
{% if item.route=="app_admin_niveau04" and not appNiveau04use %} {% set toshow=false %} {% endif %}
{% if item.route=="app_admin_group" and not appGroupuse %} {% set toshow=false %} {% endif %}
{%if toshow %}
<a class="nav-link nav-link-item {% if item.route in app.request.get('_route') %}active{%endif%}" href="{{path(item.route)}}" title="{{item.name}}">
<i class="{{item.icon}} fa-fw"></i>
<span>{{item.name}}</span>
</a>
{% endif %}
{% endfor %}
</div>
</div> </div>
</div> {% endif %}
{% endfor %} {% endfor %}
</ul> </ul>
</div> </div>

View File

@ -1,6 +1,7 @@
{% extends 'base.html.twig' %} {% extends 'base.html.twig' %}
{% block localstyle %} {% block localstyle %}
<style>
.thumbnail { .thumbnail {
text-align:center; text-align:center;
} }
@ -34,13 +35,14 @@
h3 { h3 {
margin-top:10px; margin-top:10px;
} }
</style>
{% endblock %} {% endblock %}
{% block body %} {% block body %}
<div style="width: 400px;margin: auto;text-align: center;margin-top: 10px;"> <div style="width: 400px;margin: auto;text-align: center;margin-top: 100px;">
<a href="{{ path("app_home") }}"> <a href="{{ path("app_home") }}">
<img src="/{{ appAlias }}/uploads/logo/{{app.session.get("logolight")}}" style="max-width: 100%; max-height:200px;"> <img src="{{ path('app_minio_image',{file:"logo/"~app.session.get("logolight")}) }}" style="max-width: 100%; max-height:200px;margin-bottom: 30px;">
<h1 style="text-transform:uppercase; padding-top:0px">{{ app.session.get('appname') }}</h1> <h1 style="text-transform:uppercase; padding-top:0px">{{ app.session.get('appname') }}</h1>
</a> </a>
@ -50,92 +52,4 @@ h3 {
<a href="{{ path("app_resetpwd01") }}">Mot de passe oublié ?</a> <a href="{{ path("app_resetpwd01") }}">Mot de passe oublié ?</a>
{% endif %} {% endif %}
</div> </div>
<div class="container row m-auto">
<div class="col-lg-3">
<div class="thumbnail" style="margin-top:10px; border:none; background-color:transparent">
<img class="imgreflect" src="/{{ appAlias }}/images/thumb-01.jpg"/>
<div class="caption">
<h3 style="text-align:center">Portail<br>Profilé</h3>
<p>Tous les éléments du portail peuvent être distribués en fonction du profil de l'utilisateur.</p>
<p>Il est possible de définir le profil de l'utilisateur en fonction :
<ul>
<li>De son groupe d'appartenance</li>
<li>D'attributs Annuaire</li>
<li>D'attributs SSO</li>
</ul>
</p>
<p>En fonction du profil de l'utilisateur, il est possible de distribuer :
<ul>
<li>Des pages en onglet</li>
<li>Des Flux RSS</li>
<li>Des Annonces</li>
<li>Des Applications Web</li>
<li>Des Calendriers</li>
</ul>
</p>
</div>
</div>
</div>
<div class="col-lg-3">
<div class="thumbnail" style="margin-top:10px; border:none; background-color:transparent">
<img class="imgreflect" src="/{{ appAlias }}/images/thumb-02.jpg"/>
<div class="caption">
<h3 style="text-align:center">Portail<br>Personnalisable</h3>
<p>En fonction de la configuration et de leur profil, les utilisateurs du portail sont libres de créer leur propre page.</p>
<p>Les pages de l'utilisateur pouvant prendre plusieurs formes :
<ul>
<li>Une page pointant sur l'adresse d'un autre site</li>
<li>Une page construite par l'utilisateur via l'utilisation d'un éditeur riche</li>
<li>Une page constituée de widgets qu'il dispose selon son libre choix</li>
</ul>
</p>
</div>
</div>
</div>
<div class="col-lg-3">
<div class="thumbnail" style="margin-top:10px; border:none; background-color:transparent">
<img class="imgreflect" src="/{{ appAlias }}/images/thumb-03.jpg"/>
<div class="caption">
<h3 style="text-align:center">Portail<br>Evolutif</h3>
<p>Ninegate est évolutif dans le sens où, vous disposerez d'une large bibliothèque de widgets qui composeront vos pages.</p>
<p>Voici quelques exemples :
<ul>
<li>Widget URL</li>
<li>Widget Flux RSS</li>
<li>Widget Editeur de texte</li>
<li>Widget Gestionnaire de tâches</li>
<li>Widget Calendriers</li>
<li>Widget Favoris</li>
<li>Widget Dépôt de Fichiers</li>
<li>Et bien d'autres encore</li>
</ul>
</div>
</div>
</div>
<div class="col-lg-3">
<div class="thumbnail" style="margin-top:10px; border:none; background-color:transparent">
<img class="imgreflect" src="/{{ appAlias }}/images/thumb-04.jpg"/>
<div class="caption">
<h3 style="text-align:center">Portail</br>Open Source</h3>
<p>Ce projet est opensource
<ul>
<li>Vous pouvez à tout moment modifier le code de votre portail</li>
<li>Distribuer {{ app.session.get('appname') }}</li>
</ul>
</p>
<p>Ninegate est développé dans le cadre du projet <a href='https://envole.ac-dijon.fr/ninegate/' target='_blank'>Envole</a>. Vous pourrez trouver le code source de Ninegate sur la <a href='https://dev-eole.ac-dijon.fr/projects/eole-eportail' target='_blank'>forge du projet</a></p>
<p>Ninegate est propulsé par la société <a href='https://cadoles.com' target='_blank'>Cadoles</a></p>
</div>
</div>
</div>
</div>
{% endblock %} {% endblock %}

View File

@ -0,0 +1,45 @@
<?php
$finder = PhpCsFixer\Finder::create()
->in(__DIR__.'/../../src')
->name('*.php')
;
// TODO: Définir les règles de style communes
// spécifiques au projet
return (new PhpCsFixer\Config())
->setRules([
'@Symfony' => true,
'concat_space' => ['spacing' => 'none'],
'array_syntax' => ['syntax' => 'short'],
'combine_consecutive_issets' => true,
'explicit_indirect_variable' => true,
'no_useless_return' => true,
'ordered_imports' => true,
'no_unused_imports' => true,
'no_spaces_after_function_name' => true,
'no_spaces_inside_parenthesis' => true,
'ternary_operator_spaces' => true,
'class_definition' => ['single_line' => true],
'whitespace_after_comma_in_array' => true,
// phpdoc
'phpdoc_add_missing_param_annotation' => ['only_untyped' => true],
'phpdoc_order' => true,
'phpdoc_types_order' => [
'null_adjustment' => 'always_last',
'sort_algorithm' => 'alpha',
],
'phpdoc_no_empty_return' => false,
'phpdoc_summary' => false,
'general_phpdoc_annotation_remove' => [
'annotations' => [
'expectedExceptionMessageRegExp',
'expectedException',
'expectedExceptionMessage',
'author',
],
],
])
->setFinder($finder)
;

2
tools/php-cs-fixer/composer.json Executable file → Normal file
View File

@ -1,5 +1,5 @@
{ {
"require": { "require": {
"friendsofphp/php-cs-fixer": "^3.9" "friendsofphp/php-cs-fixer": "3.4"
} }
} }

337
tools/php-cs-fixer/composer.lock generated Executable file → Normal file
View File

@ -4,34 +4,34 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "d6259871d743287ae7052fe34780cc5a", "content-hash": "2548af5080aac64997dfc54d4110f2f7",
"packages": [ "packages": [
{ {
"name": "composer/pcre", "name": "composer/pcre",
"version": "3.0.0", "version": "1.0.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/composer/pcre.git", "url": "https://github.com/composer/pcre.git",
"reference": "e300eb6c535192decd27a85bc72a9290f0d6b3bd" "reference": "67a32d7d6f9f560b726ab25a061b38ff3a80c560"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/composer/pcre/zipball/e300eb6c535192decd27a85bc72a9290f0d6b3bd", "url": "https://api.github.com/repos/composer/pcre/zipball/67a32d7d6f9f560b726ab25a061b38ff3a80c560",
"reference": "e300eb6c535192decd27a85bc72a9290f0d6b3bd", "reference": "67a32d7d6f9f560b726ab25a061b38ff3a80c560",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.4 || ^8.0" "php": "^5.3.2 || ^7.0 || ^8.0"
}, },
"require-dev": { "require-dev": {
"phpstan/phpstan": "^1.3", "phpstan/phpstan": "^1.3",
"phpstan/phpstan-strict-rules": "^1.1", "phpstan/phpstan-strict-rules": "^1.1",
"symfony/phpunit-bridge": "^5" "symfony/phpunit-bridge": "^4.2 || ^5"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-main": "3.x-dev" "dev-main": "1.x-dev"
} }
}, },
"autoload": { "autoload": {
@ -59,7 +59,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/composer/pcre/issues", "issues": "https://github.com/composer/pcre/issues",
"source": "https://github.com/composer/pcre/tree/3.0.0" "source": "https://github.com/composer/pcre/tree/1.0.1"
}, },
"funding": [ "funding": [
{ {
@ -75,20 +75,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-02-25T20:21:48+00:00" "time": "2022-01-21T20:24:37+00:00"
}, },
{ {
"name": "composer/semver", "name": "composer/semver",
"version": "3.3.2", "version": "3.2.9",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/composer/semver.git", "url": "https://github.com/composer/semver.git",
"reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9" "reference": "a951f614bd64dcd26137bc9b7b2637ddcfc57649"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9", "url": "https://api.github.com/repos/composer/semver/zipball/a951f614bd64dcd26137bc9b7b2637ddcfc57649",
"reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9", "reference": "a951f614bd64dcd26137bc9b7b2637ddcfc57649",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -140,7 +140,7 @@
"support": { "support": {
"irc": "irc://irc.freenode.org/composer", "irc": "irc://irc.freenode.org/composer",
"issues": "https://github.com/composer/semver/issues", "issues": "https://github.com/composer/semver/issues",
"source": "https://github.com/composer/semver/tree/3.3.2" "source": "https://github.com/composer/semver/tree/3.2.9"
}, },
"funding": [ "funding": [
{ {
@ -156,31 +156,31 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-04-01T19:23:25+00:00" "time": "2022-02-04T13:58:43+00:00"
}, },
{ {
"name": "composer/xdebug-handler", "name": "composer/xdebug-handler",
"version": "3.0.3", "version": "2.0.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/composer/xdebug-handler.git", "url": "https://github.com/composer/xdebug-handler.git",
"reference": "ced299686f41dce890debac69273b47ffe98a40c" "reference": "9e36aeed4616366d2b690bdce11f71e9178c579a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ced299686f41dce890debac69273b47ffe98a40c", "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/9e36aeed4616366d2b690bdce11f71e9178c579a",
"reference": "ced299686f41dce890debac69273b47ffe98a40c", "reference": "9e36aeed4616366d2b690bdce11f71e9178c579a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"composer/pcre": "^1 || ^2 || ^3", "composer/pcre": "^1",
"php": "^7.2.5 || ^8.0", "php": "^5.3.2 || ^7.0 || ^8.0",
"psr/log": "^1 || ^2 || ^3" "psr/log": "^1 || ^2 || ^3"
}, },
"require-dev": { "require-dev": {
"phpstan/phpstan": "^1.0", "phpstan/phpstan": "^1.0",
"phpstan/phpstan-strict-rules": "^1.1", "phpstan/phpstan-strict-rules": "^1.1",
"symfony/phpunit-bridge": "^6.0" "symfony/phpunit-bridge": "^4.2 || ^5.0 || ^6.0"
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
@ -206,7 +206,7 @@
"support": { "support": {
"irc": "irc://irc.freenode.org/composer", "irc": "irc://irc.freenode.org/composer",
"issues": "https://github.com/composer/xdebug-handler/issues", "issues": "https://github.com/composer/xdebug-handler/issues",
"source": "https://github.com/composer/xdebug-handler/tree/3.0.3" "source": "https://github.com/composer/xdebug-handler/tree/2.0.5"
}, },
"funding": [ "funding": [
{ {
@ -222,20 +222,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-02-25T21:32:43+00:00" "time": "2022-02-24T20:20:32+00:00"
}, },
{ {
"name": "doctrine/annotations", "name": "doctrine/annotations",
"version": "1.13.3", "version": "1.13.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/doctrine/annotations.git", "url": "https://github.com/doctrine/annotations.git",
"reference": "648b0343343565c4a056bfc8392201385e8d89f0" "reference": "5b668aef16090008790395c02c893b1ba13f7e08"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/doctrine/annotations/zipball/648b0343343565c4a056bfc8392201385e8d89f0", "url": "https://api.github.com/repos/doctrine/annotations/zipball/5b668aef16090008790395c02c893b1ba13f7e08",
"reference": "648b0343343565c4a056bfc8392201385e8d89f0", "reference": "5b668aef16090008790395c02c893b1ba13f7e08",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -247,10 +247,9 @@
"require-dev": { "require-dev": {
"doctrine/cache": "^1.11 || ^2.0", "doctrine/cache": "^1.11 || ^2.0",
"doctrine/coding-standard": "^6.0 || ^8.1", "doctrine/coding-standard": "^6.0 || ^8.1",
"phpstan/phpstan": "^1.4.10 || ^1.8.0", "phpstan/phpstan": "^0.12.20",
"phpunit/phpunit": "^7.5 || ^8.0 || ^9.1.5", "phpunit/phpunit": "^7.5 || ^8.0 || ^9.1.5",
"symfony/cache": "^4.4 || ^5.2", "symfony/cache": "^4.4 || ^5.2"
"vimeo/psalm": "^4.10"
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
@ -293,9 +292,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/doctrine/annotations/issues", "issues": "https://github.com/doctrine/annotations/issues",
"source": "https://github.com/doctrine/annotations/tree/1.13.3" "source": "https://github.com/doctrine/annotations/tree/1.13.2"
}, },
"time": "2022-07-02T10:48:51+00:00" "time": "2021-08-05T19:00:23+00:00"
}, },
{ {
"name": "doctrine/lexer", "name": "doctrine/lexer",
@ -375,52 +374,52 @@
}, },
{ {
"name": "friendsofphp/php-cs-fixer", "name": "friendsofphp/php-cs-fixer",
"version": "v3.9.5", "version": "v3.4.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git", "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git",
"reference": "4465d70ba776806857a1ac2a6f877e582445ff36" "reference": "47177af1cfb9dab5d1cc4daf91b7179c2efe7fad"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/4465d70ba776806857a1ac2a6f877e582445ff36", "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/47177af1cfb9dab5d1cc4daf91b7179c2efe7fad",
"reference": "4465d70ba776806857a1ac2a6f877e582445ff36", "reference": "47177af1cfb9dab5d1cc4daf91b7179c2efe7fad",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"composer/semver": "^3.2", "composer/semver": "^3.2",
"composer/xdebug-handler": "^3.0.3", "composer/xdebug-handler": "^2.0",
"doctrine/annotations": "^1.13", "doctrine/annotations": "^1.12",
"ext-json": "*", "ext-json": "*",
"ext-tokenizer": "*", "ext-tokenizer": "*",
"php": "^7.4 || ^8.0", "php": "^7.2.5 || ^8.0",
"php-cs-fixer/diff": "^2.0", "php-cs-fixer/diff": "^2.0",
"symfony/console": "^5.4 || ^6.0", "symfony/console": "^4.4.20 || ^5.1.3 || ^6.0",
"symfony/event-dispatcher": "^5.4 || ^6.0", "symfony/event-dispatcher": "^4.4.20 || ^5.0 || ^6.0",
"symfony/filesystem": "^5.4 || ^6.0", "symfony/filesystem": "^4.4.20 || ^5.0 || ^6.0",
"symfony/finder": "^5.4 || ^6.0", "symfony/finder": "^4.4.20 || ^5.0 || ^6.0",
"symfony/options-resolver": "^5.4 || ^6.0", "symfony/options-resolver": "^4.4.20 || ^5.0 || ^6.0",
"symfony/polyfill-mbstring": "^1.23", "symfony/polyfill-mbstring": "^1.23",
"symfony/polyfill-php80": "^1.25", "symfony/polyfill-php80": "^1.23",
"symfony/polyfill-php81": "^1.25", "symfony/polyfill-php81": "^1.23",
"symfony/process": "^5.4 || ^6.0", "symfony/process": "^4.4.20 || ^5.0 || ^6.0",
"symfony/stopwatch": "^5.4 || ^6.0" "symfony/stopwatch": "^4.4.20 || ^5.0 || ^6.0"
}, },
"require-dev": { "require-dev": {
"justinrainbow/json-schema": "^5.2", "justinrainbow/json-schema": "^5.2",
"keradus/cli-executor": "^1.5", "keradus/cli-executor": "^1.5",
"mikey179/vfsstream": "^1.6.10", "mikey179/vfsstream": "^1.6.8",
"php-coveralls/php-coveralls": "^2.5.2", "php-coveralls/php-coveralls": "^2.5.2",
"php-cs-fixer/accessible-object": "^1.1", "php-cs-fixer/accessible-object": "^1.1",
"php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.2", "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.2",
"php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.2.1", "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.2.1",
"phpspec/prophecy": "^1.15", "phpspec/prophecy": "^1.15",
"phpspec/prophecy-phpunit": "^2.0", "phpspec/prophecy-phpunit": "^1.1 || ^2.0",
"phpunit/phpunit": "^9.5", "phpunit/phpunit": "^8.5.21 || ^9.5",
"phpunitgoodpractices/polyfill": "^1.5", "phpunitgoodpractices/polyfill": "^1.5",
"phpunitgoodpractices/traits": "^1.9.1", "phpunitgoodpractices/traits": "^1.9.1",
"symfony/phpunit-bridge": "^6.0", "symfony/phpunit-bridge": "^5.2.4 || ^6.0",
"symfony/yaml": "^5.4 || ^6.0" "symfony/yaml": "^4.4.20 || ^5.0 || ^6.0"
}, },
"suggest": { "suggest": {
"ext-dom": "For handling output formats in XML", "ext-dom": "For handling output formats in XML",
@ -452,7 +451,7 @@
"description": "A tool to automatically fix PHP code style", "description": "A tool to automatically fix PHP code style",
"support": { "support": {
"issues": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/issues", "issues": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/issues",
"source": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/tree/v3.9.5" "source": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/tree/v3.4.0"
}, },
"funding": [ "funding": [
{ {
@ -460,7 +459,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2022-07-22T08:43:51+00:00" "time": "2021-12-11T16:25:08+00:00"
}, },
{ {
"name": "php-cs-fixer/diff", "name": "php-cs-fixer/diff",
@ -565,20 +564,20 @@
}, },
{ {
"name": "psr/container", "name": "psr/container",
"version": "1.1.2", "version": "1.1.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/php-fig/container.git", "url": "https://github.com/php-fig/container.git",
"reference": "513e0666f7216c7459170d56df27dfcefe1689ea" "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf",
"reference": "513e0666f7216c7459170d56df27dfcefe1689ea", "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=7.4.0" "php": ">=7.2.0"
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
@ -607,9 +606,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/php-fig/container/issues", "issues": "https://github.com/php-fig/container/issues",
"source": "https://github.com/php-fig/container/tree/1.1.2" "source": "https://github.com/php-fig/container/tree/1.1.1"
}, },
"time": "2021-11-05T16:50:12+00:00" "time": "2021-03-05T17:36:06+00:00"
}, },
{ {
"name": "psr/event-dispatcher", "name": "psr/event-dispatcher",
@ -713,16 +712,16 @@
}, },
{ {
"name": "symfony/console", "name": "symfony/console",
"version": "v5.4.10", "version": "v5.4.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/console.git", "url": "https://github.com/symfony/console.git",
"reference": "4d671ab4ddac94ee439ea73649c69d9d200b5000" "reference": "d8111acc99876953f52fe16d4c50eb60940d49ad"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/4d671ab4ddac94ee439ea73649c69d9d200b5000", "url": "https://api.github.com/repos/symfony/console/zipball/d8111acc99876953f52fe16d4c50eb60940d49ad",
"reference": "4d671ab4ddac94ee439ea73649c69d9d200b5000", "reference": "d8111acc99876953f52fe16d4c50eb60940d49ad",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -792,7 +791,7 @@
"terminal" "terminal"
], ],
"support": { "support": {
"source": "https://github.com/symfony/console/tree/v5.4.10" "source": "https://github.com/symfony/console/tree/v5.4.5"
}, },
"funding": [ "funding": [
{ {
@ -808,20 +807,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-06-26T13:00:04+00:00" "time": "2022-02-24T12:45:35+00:00"
}, },
{ {
"name": "symfony/deprecation-contracts", "name": "symfony/deprecation-contracts",
"version": "v2.5.2", "version": "v2.5.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git", "url": "https://github.com/symfony/deprecation-contracts.git",
"reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66" "reference": "6f981ee24cf69ee7ce9736146d1c57c2780598a8"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66", "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/6f981ee24cf69ee7ce9736146d1c57c2780598a8",
"reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66", "reference": "6f981ee24cf69ee7ce9736146d1c57c2780598a8",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -859,7 +858,7 @@
"description": "A generic function and convention to trigger deprecation notices", "description": "A generic function and convention to trigger deprecation notices",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.2" "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.0"
}, },
"funding": [ "funding": [
{ {
@ -875,20 +874,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-01-02T09:53:40+00:00" "time": "2021-07-12T14:48:14+00:00"
}, },
{ {
"name": "symfony/event-dispatcher", "name": "symfony/event-dispatcher",
"version": "v5.4.9", "version": "v5.4.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/event-dispatcher.git", "url": "https://github.com/symfony/event-dispatcher.git",
"reference": "8e6ce1cc0279e3ff3c8ff0f43813bc88d21ca1bc" "reference": "dec8a9f58d20df252b9cd89f1c6c1530f747685d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/8e6ce1cc0279e3ff3c8ff0f43813bc88d21ca1bc", "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/dec8a9f58d20df252b9cd89f1c6c1530f747685d",
"reference": "8e6ce1cc0279e3ff3c8ff0f43813bc88d21ca1bc", "reference": "dec8a9f58d20df252b9cd89f1c6c1530f747685d",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -944,7 +943,7 @@
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/event-dispatcher/tree/v5.4.9" "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.3"
}, },
"funding": [ "funding": [
{ {
@ -960,20 +959,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-05-05T16:45:39+00:00" "time": "2022-01-02T09:53:40+00:00"
}, },
{ {
"name": "symfony/event-dispatcher-contracts", "name": "symfony/event-dispatcher-contracts",
"version": "v2.5.2", "version": "v2.5.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/event-dispatcher-contracts.git", "url": "https://github.com/symfony/event-dispatcher-contracts.git",
"reference": "f98b54df6ad059855739db6fcbc2d36995283fe1" "reference": "66bea3b09be61613cd3b4043a65a8ec48cfa6d2a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/f98b54df6ad059855739db6fcbc2d36995283fe1", "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/66bea3b09be61613cd3b4043a65a8ec48cfa6d2a",
"reference": "f98b54df6ad059855739db6fcbc2d36995283fe1", "reference": "66bea3b09be61613cd3b4043a65a8ec48cfa6d2a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1023,7 +1022,7 @@
"standards" "standards"
], ],
"support": { "support": {
"source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.5.2" "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.5.0"
}, },
"funding": [ "funding": [
{ {
@ -1039,20 +1038,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-01-02T09:53:40+00:00" "time": "2021-07-12T14:48:14+00:00"
}, },
{ {
"name": "symfony/filesystem", "name": "symfony/filesystem",
"version": "v5.4.9", "version": "v5.4.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/filesystem.git", "url": "https://github.com/symfony/filesystem.git",
"reference": "36a017fa4cce1eff1b8e8129ff53513abcef05ba" "reference": "797680071ea8f71b94eb958680c50d0e002638f5"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/filesystem/zipball/36a017fa4cce1eff1b8e8129ff53513abcef05ba", "url": "https://api.github.com/repos/symfony/filesystem/zipball/797680071ea8f71b94eb958680c50d0e002638f5",
"reference": "36a017fa4cce1eff1b8e8129ff53513abcef05ba", "reference": "797680071ea8f71b94eb958680c50d0e002638f5",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1087,7 +1086,7 @@
"description": "Provides basic utilities for the filesystem", "description": "Provides basic utilities for the filesystem",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/filesystem/tree/v5.4.9" "source": "https://github.com/symfony/filesystem/tree/v5.4.5"
}, },
"funding": [ "funding": [
{ {
@ -1103,20 +1102,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-05-20T13:55:35+00:00" "time": "2022-02-27T10:31:47+00:00"
}, },
{ {
"name": "symfony/finder", "name": "symfony/finder",
"version": "v5.4.8", "version": "v5.4.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/finder.git", "url": "https://github.com/symfony/finder.git",
"reference": "9b630f3427f3ebe7cd346c277a1408b00249dad9" "reference": "231313534dded84c7ecaa79d14bc5da4ccb69b7d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/finder/zipball/9b630f3427f3ebe7cd346c277a1408b00249dad9", "url": "https://api.github.com/repos/symfony/finder/zipball/231313534dded84c7ecaa79d14bc5da4ccb69b7d",
"reference": "9b630f3427f3ebe7cd346c277a1408b00249dad9", "reference": "231313534dded84c7ecaa79d14bc5da4ccb69b7d",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1150,7 +1149,7 @@
"description": "Finds files and directories via an intuitive fluent interface", "description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/finder/tree/v5.4.8" "source": "https://github.com/symfony/finder/tree/v5.4.3"
}, },
"funding": [ "funding": [
{ {
@ -1166,7 +1165,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-04-15T08:07:45+00:00" "time": "2022-01-26T16:34:36+00:00"
}, },
{ {
"name": "symfony/options-resolver", "name": "symfony/options-resolver",
@ -1239,16 +1238,16 @@
}, },
{ {
"name": "symfony/polyfill-ctype", "name": "symfony/polyfill-ctype",
"version": "v1.26.0", "version": "v1.24.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git", "url": "https://github.com/symfony/polyfill-ctype.git",
"reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4" "reference": "30885182c981ab175d4d034db0f6f469898070ab"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4", "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/30885182c981ab175d4d034db0f6f469898070ab",
"reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4", "reference": "30885182c981ab175d4d034db0f6f469898070ab",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1263,7 +1262,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-main": "1.26-dev" "dev-main": "1.23-dev"
}, },
"thanks": { "thanks": {
"name": "symfony/polyfill", "name": "symfony/polyfill",
@ -1301,7 +1300,7 @@
"portable" "portable"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.26.0" "source": "https://github.com/symfony/polyfill-ctype/tree/v1.24.0"
}, },
"funding": [ "funding": [
{ {
@ -1317,20 +1316,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-05-24T11:49:31+00:00" "time": "2021-10-20T20:35:02+00:00"
}, },
{ {
"name": "symfony/polyfill-intl-grapheme", "name": "symfony/polyfill-intl-grapheme",
"version": "v1.26.0", "version": "v1.24.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-intl-grapheme.git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git",
"reference": "433d05519ce6990bf3530fba6957499d327395c2" "reference": "81b86b50cf841a64252b439e738e97f4a34e2783"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/433d05519ce6990bf3530fba6957499d327395c2", "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/81b86b50cf841a64252b439e738e97f4a34e2783",
"reference": "433d05519ce6990bf3530fba6957499d327395c2", "reference": "81b86b50cf841a64252b439e738e97f4a34e2783",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1342,7 +1341,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-main": "1.26-dev" "dev-main": "1.23-dev"
}, },
"thanks": { "thanks": {
"name": "symfony/polyfill", "name": "symfony/polyfill",
@ -1382,7 +1381,7 @@
"shim" "shim"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.26.0" "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.24.0"
}, },
"funding": [ "funding": [
{ {
@ -1398,20 +1397,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-05-24T11:49:31+00:00" "time": "2021-11-23T21:10:46+00:00"
}, },
{ {
"name": "symfony/polyfill-intl-normalizer", "name": "symfony/polyfill-intl-normalizer",
"version": "v1.26.0", "version": "v1.24.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-intl-normalizer.git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
"reference": "219aa369ceff116e673852dce47c3a41794c14bd" "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/219aa369ceff116e673852dce47c3a41794c14bd", "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8590a5f561694770bdcd3f9b5c69dde6945028e8",
"reference": "219aa369ceff116e673852dce47c3a41794c14bd", "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1423,7 +1422,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-main": "1.26-dev" "dev-main": "1.23-dev"
}, },
"thanks": { "thanks": {
"name": "symfony/polyfill", "name": "symfony/polyfill",
@ -1466,7 +1465,7 @@
"shim" "shim"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.26.0" "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.24.0"
}, },
"funding": [ "funding": [
{ {
@ -1482,20 +1481,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-05-24T11:49:31+00:00" "time": "2021-02-19T12:13:01+00:00"
}, },
{ {
"name": "symfony/polyfill-mbstring", "name": "symfony/polyfill-mbstring",
"version": "v1.26.0", "version": "v1.24.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git", "url": "https://github.com/symfony/polyfill-mbstring.git",
"reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e" "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/0abb51d2f102e00a4eefcf46ba7fec406d245825",
"reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1510,7 +1509,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-main": "1.26-dev" "dev-main": "1.23-dev"
}, },
"thanks": { "thanks": {
"name": "symfony/polyfill", "name": "symfony/polyfill",
@ -1549,7 +1548,7 @@
"shim" "shim"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.26.0" "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.24.0"
}, },
"funding": [ "funding": [
{ {
@ -1565,20 +1564,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-05-24T11:49:31+00:00" "time": "2021-11-30T18:21:41+00:00"
}, },
{ {
"name": "symfony/polyfill-php73", "name": "symfony/polyfill-php73",
"version": "v1.26.0", "version": "v1.24.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-php73.git", "url": "https://github.com/symfony/polyfill-php73.git",
"reference": "e440d35fa0286f77fb45b79a03fedbeda9307e85" "reference": "cc5db0e22b3cb4111010e48785a97f670b350ca5"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/e440d35fa0286f77fb45b79a03fedbeda9307e85", "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/cc5db0e22b3cb4111010e48785a97f670b350ca5",
"reference": "e440d35fa0286f77fb45b79a03fedbeda9307e85", "reference": "cc5db0e22b3cb4111010e48785a97f670b350ca5",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1587,7 +1586,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-main": "1.26-dev" "dev-main": "1.23-dev"
}, },
"thanks": { "thanks": {
"name": "symfony/polyfill", "name": "symfony/polyfill",
@ -1628,7 +1627,7 @@
"shim" "shim"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-php73/tree/v1.26.0" "source": "https://github.com/symfony/polyfill-php73/tree/v1.24.0"
}, },
"funding": [ "funding": [
{ {
@ -1644,20 +1643,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-05-24T11:49:31+00:00" "time": "2021-06-05T21:20:04+00:00"
}, },
{ {
"name": "symfony/polyfill-php80", "name": "symfony/polyfill-php80",
"version": "v1.26.0", "version": "v1.24.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-php80.git", "url": "https://github.com/symfony/polyfill-php80.git",
"reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace" "reference": "57b712b08eddb97c762a8caa32c84e037892d2e9"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/cfa0ae98841b9e461207c13ab093d76b0fa7bace", "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/57b712b08eddb97c762a8caa32c84e037892d2e9",
"reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace", "reference": "57b712b08eddb97c762a8caa32c84e037892d2e9",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1666,7 +1665,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-main": "1.26-dev" "dev-main": "1.23-dev"
}, },
"thanks": { "thanks": {
"name": "symfony/polyfill", "name": "symfony/polyfill",
@ -1711,7 +1710,7 @@
"shim" "shim"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-php80/tree/v1.26.0" "source": "https://github.com/symfony/polyfill-php80/tree/v1.24.0"
}, },
"funding": [ "funding": [
{ {
@ -1727,20 +1726,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-05-10T07:21:04+00:00" "time": "2021-09-13T13:58:33+00:00"
}, },
{ {
"name": "symfony/polyfill-php81", "name": "symfony/polyfill-php81",
"version": "v1.26.0", "version": "v1.24.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-php81.git", "url": "https://github.com/symfony/polyfill-php81.git",
"reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1" "reference": "5de4ba2d41b15f9bd0e19b2ab9674135813ec98f"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/13f6d1271c663dc5ae9fb843a8f16521db7687a1", "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/5de4ba2d41b15f9bd0e19b2ab9674135813ec98f",
"reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1", "reference": "5de4ba2d41b15f9bd0e19b2ab9674135813ec98f",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1749,7 +1748,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-main": "1.26-dev" "dev-main": "1.23-dev"
}, },
"thanks": { "thanks": {
"name": "symfony/polyfill", "name": "symfony/polyfill",
@ -1790,7 +1789,7 @@
"shim" "shim"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-php81/tree/v1.26.0" "source": "https://github.com/symfony/polyfill-php81/tree/v1.24.0"
}, },
"funding": [ "funding": [
{ {
@ -1806,20 +1805,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-05-24T11:49:31+00:00" "time": "2021-09-13T13:58:11+00:00"
}, },
{ {
"name": "symfony/process", "name": "symfony/process",
"version": "v5.4.8", "version": "v5.4.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/process.git", "url": "https://github.com/symfony/process.git",
"reference": "597f3fff8e3e91836bb0bd38f5718b56ddbde2f3" "reference": "95440409896f90a5f85db07a32b517ecec17fa4c"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/process/zipball/597f3fff8e3e91836bb0bd38f5718b56ddbde2f3", "url": "https://api.github.com/repos/symfony/process/zipball/95440409896f90a5f85db07a32b517ecec17fa4c",
"reference": "597f3fff8e3e91836bb0bd38f5718b56ddbde2f3", "reference": "95440409896f90a5f85db07a32b517ecec17fa4c",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1852,7 +1851,7 @@
"description": "Executes commands in sub-processes", "description": "Executes commands in sub-processes",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/process/tree/v5.4.8" "source": "https://github.com/symfony/process/tree/v5.4.5"
}, },
"funding": [ "funding": [
{ {
@ -1868,26 +1867,26 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-04-08T05:07:18+00:00" "time": "2022-01-30T18:16:22+00:00"
}, },
{ {
"name": "symfony/service-contracts", "name": "symfony/service-contracts",
"version": "v2.5.2", "version": "v2.5.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/service-contracts.git", "url": "https://github.com/symfony/service-contracts.git",
"reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c" "reference": "1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c", "url": "https://api.github.com/repos/symfony/service-contracts/zipball/1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc",
"reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c", "reference": "1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=7.2.5", "php": ">=7.2.5",
"psr/container": "^1.1", "psr/container": "^1.1",
"symfony/deprecation-contracts": "^2.1|^3" "symfony/deprecation-contracts": "^2.1"
}, },
"conflict": { "conflict": {
"ext-psr": "<1.1|>=2" "ext-psr": "<1.1|>=2"
@ -1935,7 +1934,7 @@
"standards" "standards"
], ],
"support": { "support": {
"source": "https://github.com/symfony/service-contracts/tree/v2.5.2" "source": "https://github.com/symfony/service-contracts/tree/v2.5.0"
}, },
"funding": [ "funding": [
{ {
@ -1951,7 +1950,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-05-30T19:17:29+00:00" "time": "2021-11-04T16:48:04+00:00"
}, },
{ {
"name": "symfony/stopwatch", "name": "symfony/stopwatch",
@ -2017,16 +2016,16 @@
}, },
{ {
"name": "symfony/string", "name": "symfony/string",
"version": "v5.4.10", "version": "v5.4.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/string.git", "url": "https://github.com/symfony/string.git",
"reference": "4432bc7df82a554b3e413a8570ce2fea90e94097" "reference": "92043b7d8383e48104e411bc9434b260dbeb5a10"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/string/zipball/4432bc7df82a554b3e413a8570ce2fea90e94097", "url": "https://api.github.com/repos/symfony/string/zipball/92043b7d8383e48104e411bc9434b260dbeb5a10",
"reference": "4432bc7df82a554b3e413a8570ce2fea90e94097", "reference": "92043b7d8383e48104e411bc9434b260dbeb5a10",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2083,7 +2082,7 @@
"utf8" "utf8"
], ],
"support": { "support": {
"source": "https://github.com/symfony/string/tree/v5.4.10" "source": "https://github.com/symfony/string/tree/v5.4.3"
}, },
"funding": [ "funding": [
{ {
@ -2099,7 +2098,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-06-26T15:57:47+00:00" "time": "2022-01-02T09:53:40+00:00"
} }
], ],
"packages-dev": [], "packages-dev": [],
@ -2110,5 +2109,5 @@
"prefer-lowest": false, "prefer-lowest": false,
"platform": [], "platform": [],
"platform-dev": [], "platform-dev": [],
"plugin-api-version": "2.3.0" "plugin-api-version": "2.2.0"
} }