6 Commits

Author SHA1 Message Date
0cdb425ad7 correction ninedocker
Some checks failed
Cadoles/nineskeletor/pipeline/head There was a failure building this commit
2024-09-28 17:22:48 +02:00
6a5e14a25e svg
Some checks failed
Cadoles/nineskeletor/pipeline/head There was a failure building this commit
2024-07-27 09:15:34 +02:00
671b37197e svg
Some checks failed
Cadoles/nineskeletor/pipeline/head There was a failure building this commit
2024-07-02 09:09:54 +02:00
f659e27ad6 dockerisation app
Some checks failed
Cadoles/nineskeletor/pipeline/head There was a failure building this commit
2024-06-30 12:06:40 +02:00
a59fe6372b svg
Some checks failed
Cadoles/nineskeletor/pipeline/head There was a failure building this commit
2023-02-16 17:14:33 +01:00
558c70ffd8 svg
Some checks failed
Cadoles/nineskeletor/pipeline/head There was a failure building this commit
2023-02-16 17:11:16 +01:00
63 changed files with 3266 additions and 1710 deletions

146
.env
View File

@ -1,34 +1,42 @@
# Symfony
APP_ENV=prod
APP_ENV=dev
APP_SECRET=changeme
APP_SESSIONTIME=1440
PROTOCOLE=https
# Webpack
APP_PUBLIC_PATH=/nineskeletor/build
APP_MANIFEST_KEY_PREFIX=nineskeletor
# Messenger
MESSENGER_TRANSPORT_DSN=doctrine://default?auto_setup=0
# 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_HOST=127.0.0.1
REDIS_HOST=redis
REDIS_PORT=6379
# Mailer
MAILER_METHOD=smtp
MAILER_DSN=smtp://127.0.0.1:1025
MAILER_DSN=smtp://mailer:1025
MAILER_NOREPLY=noreply@noreply.fr
# Basic
APP_WEBURL=127.0.0.1:8000
APP_MASTERIDENTITY=SQL # SQL | SSO | LDAP
APP_AUTH=SQL # SQL | CAS | LDAP | OPENID | à faire SAML
APP_WEBURL=localhost:8005
APP_MASTERIDENTITY=SQL # SQL | SSO | LDAP
APP_AUTH=OPENID # SQL | CAS | LDAP | OPENID
APP_ALIAS=/
APP_NAME=Nineskeletor
APP_MODEREGISTRATION= # null | BYADMIN | BYUSER
APP_MODEREGISTRATION= # null | BYADMIN | BYUSER
APP_ADMINS='["admin"]'
# Module = PORTAL | DOCUMENT
APP_MODULES='["PORTAL"]'
# 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_NIVEAU01LABELS="Niveaux 01"
@ -51,52 +59,52 @@ APP_NIVEAU04MANDATORY='[""]'
APP_GROUPUSE=1
APP_GROUPSUBMITER='["ALL"]'
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_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_ANNUSCOPEUSER=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_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_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
APP_SYNCHRO= # Synchronisation null | LDAP2NINE | NINE2LDAP | NINE2NINE
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_SYNDCHROPURGENIVEAU03=1 # Purger les niveau03s 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_SYNDCHROPURGEUSER=1 # Purger les users obsolète en cas de synchronisation
APP_SYNCHRO=NINE2LDAP # Synchronisation null | LDAP2NINE | NINE2LDAP | NINE2NINE
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_SYNDCHROPURGENIVEAU03=1 # Purger les niveau03s 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_SYNDCHROPURGEUSER=1 # Purger les users obsolète en cas de synchronisation
# LDAP
LDAP_HOST= # host du serveur ldap
LDAP_PORT= # port du serveur ldap
LDAP_USETLS=0 # connection TLS 0/1
LDAP_USERWRITER=0 # LDAP_USER compte writer ? 0/1
LDAP_USER= # DN compte access ldap
LDAP_PASSWORD= # Password comte access ldap
LDAP_BASEDN= # Base DN ex:dc=nine,dc=fr
LDAP_BASEORGANISATION= # Base Organisation ex:ou=nineskeletor,dc=nine,dc=fr
LDAP_BASENIVEAU01= # 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_BASENIVEAU03= # 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_BASEGROUP= # 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_USERNAME=uid # Attribut id d'un user
LDAP_FIRSTNAME=givenname # Attribut firstname d'un user
LDAP_LASTNAME=sn # Attribut lastname d'un user
LDAP_EMAIL=mail # Attribut email d'un user
LDAP_AVATAR= # Attribut avatar d'un user
LDAP_MEMBEROF=memberof # Attribut memberof d'un user
LDAP_GROUPGID=gidnumber # Attribut gid d'un groupe
LDAP_GROUPNAME=cn # Attribut name 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_FILTERGROUP=(cn=*) # requete ldap pour rechercher les groupes
LDAP_FILTERUSER=(uid=*) # requete ldap pour rechercher les users
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_HOST=openldap # host du serveur ldap ex:openldap
LDAP_PORT=389 # port du serveur ldap ex:389
LDAP_USETLS=0 # connection TLS 0/1
LDAP_USERWRITER=1 # LDAP_USER compte writer ? 0/1
LDAP_USER="cn=admin,dc=nine,dc=fr" # DN compte access ldap
LDAP_PASSWORD=changeme # Password comte access ldap
LDAP_BASEDN= # Base DN ex:dc=nine,dc=fr
LDAP_BASEORGANISATION="ou=nineskeletor,dc=nine,dc=fr" # Base Organisation ex: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="ou=niveau02,ou=nineskeletor,dc=nine,dc=fr" # Base Niveau02 ex:ou=niveau02,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="ou=niveau04,ou=nineskeletor,dc=nine,dc=fr" # Base Niveau04 ex:ou=niveau04,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="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_FIRSTNAME=givenname # Attribut firstname d'un user
LDAP_LASTNAME=sn # Attribut lastname d'un user
LDAP_EMAIL=mail # Attribut email d'un user
LDAP_AVATAR= # Attribut avatar d'un user
LDAP_MEMBEROF=memberof # Attribut memberof d'un user
LDAP_GROUPGID=gidnumber # Attribut gid d'un groupe
LDAP_GROUPNAME=cn # Attribut name 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_FILTERGROUP="(cn=*)" # requete ldap pour rechercher les groupes
LDAP_FILTERUSER="(uid=*)" # requete ldap pour rechercher les users
LDAP_AUTOSUBMIT=1 # if APP_AUTH = LDAP autocréer les users non existant
LDAP_AUTOUPDATE=1 # if APP_AUTH = LDAP automodifier les users existant
# If APP_AUTH = CAS
CAS_HOST=
@ -109,16 +117,16 @@ CAS_FIRSTNAME=firstname
CAS_AVATAR=
CAS_NIVEAU01=
CAS_GROUP=
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_AUTOSUBMIT=1 # if APP_AUTH = CAS autocréer les users non existant
CAS_AUTOUPDATE=1 # if APP_AUTH = CAS automodifier les users existant
# If APP_AUTH = OPENID
OAUTH_CLIENTID=
OAUTH_CLIENTSECRET=
OAUTH_LOGINURL=
OAUTH_LOGOUTURL=
OAUTH_TOKENURL=
OAUTH_USERINFO=
OAUTH_CLIENTID=nineskeletor
OAUTH_CLIENTSECRET=changeme
OAUTH_LOGINURL="http://localhost:7080/oauth2/auth"
OAUTH_LOGOUTURL="http://localhost:7080/oauth2/sessions/logout"
OAUTH_TOKENURL="http://hydra:4444/oauth2/token"
OAUTH_USERINFO="http://hydra:4444/userinfo"
OAUTH_USERNAME=username
OAUTH_EMAIL=email
OAUTH_LASTNAME=lastname
@ -126,15 +134,15 @@ OAUTH_FIRSTNAME=firstname
OAUTH_AVATAR=
OAUTH_NIVEAU01=
OAUTH_GROUP=
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_AUTOSUBMIT=1 # if APP_AUTH = OPENID autocréer les users non existant
OAUTH_AUTOUPDATE=1 # if APP_AUTH = OPENID automodifier les users existant
# IF APP_SYNCHRO=NINE2NINE
NINE_URL=
NINE_SECRET=
# 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_USE=0
@ -149,27 +157,27 @@ SONDE_USE=0
SONDE_URL=
# 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_JWT_SECRET="!changeme!changeme!changeme!changeme!changeme!changeme!"
# Minio
MINIO_URL=http://127.0.0.1:9000
MINIO_URL=http://nginx:9000
MINIO_KEY=minio
MINIO_SECRET=changeme
MINIO_BUCKET=ninegate
MINIO_BUCKET=nineskeletor
MINIO_ROOT=
MINIO_PATH_STYLE=1
MINIO_SECURE=0
# Hydra apps
HYDRA_LOGINCHALLENGE="http://127.0.0.1:4445/oauth2/auth/requests/login?login_challenge="
HYDRA_LOGINCHALLENGEACCEPT="http://127.0.0.1:4445/oauth2/auth/requests/login/accept?login_challenge="
HYDRA_CONSENTCHALLENGE="http://127.0.0.1:4445/oauth2/auth/requests/consent?consent_challenge="
HYDRA_CONSENTCHALLENGEACCEPT="http://127.0.0.1:4445/oauth2/auth/requests/consent/accept?consent_challenge="
HYDRA_LOGINCHALLENGE="http://hydra:4445/oauth2/auth/requests/login?login_challenge="
HYDRA_LOGINCHALLENGEACCEPT="http://hydra:4445/oauth2/auth/requests/login/accept?login_challenge="
HYDRA_CONSENTCHALLENGE="http://hydra:4445/oauth2/auth/requests/consent?consent_challenge="
HYDRA_CONSENTCHALLENGEACCEPT="http://hydra:4445/oauth2/auth/requests/consent/accept?consent_challenge="
# 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_DSN=

5
.gitignore vendored
View File

@ -28,4 +28,7 @@ yarn-error.log
!/public/uploads/logo/logo.png
/public/uploads/ckeditor
.php-cs-fixer.cache
.php-cs-fixer.cache
###> phpstan/phpstan ###
phpstan.neon
###< phpstan/phpstan ###

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

@ -1,12 +1,45 @@
<?php
$finder = PhpCsFixer\Finder::create()
->in(__DIR__.'/src');
->in(__DIR__.'/src')
->name('*.php')
;
$config = new PhpCsFixer\Config();
return $config->setRules([
// TODO: Définir les règles de style communes
// spécifiques au projet
return (new PhpCsFixer\Config())
->setRules([
'@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)
;
;

View File

@ -15,7 +15,7 @@
"friendsofsymfony/ckeditor-bundle": "^2.4",
"friendsofsymfony/rest-bundle": "^3.3",
"gregwar/captcha-bundle": "^2.2",
"jasig/phpcas": "^1.5",
"jasig/phpcas": "^1.6",
"mashape/unirest-php": "^3.0",
"nelmio/api-doc-bundle": "^4.9",
"oneup/uploader-bundle": "^3.2",
@ -101,7 +101,6 @@
"yarn install": "script",
"yarn encore dev": "script",
"yarn encore prod": "script",
"cache:clear --env=dev": "symfony-cmd",
"cache:clear --env=prod": "symfony-cmd",
"assets:install %PUBLIC_DIR%": "symfony-cmd"
},
@ -124,6 +123,7 @@
"require-dev": {
"doctrine/doctrine-fixtures-bundle": "^3.4",
"lasserafn/php-initial-avatar-generator": "^4.2",
"phpstan/phpstan": "^1.11",
"phpunit/phpunit": "^9.5",
"symfony/browser-kit": "6.1.*",
"symfony/css-selector": "6.1.*",

76
composer.lock generated
View File

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "479a2464d612243533a7aa3eae4281d9",
"content-hash": "60bf16e083bd33ab708cf0568e170d7b",
"packages": [
{
"name": "aws/aws-crt-php",
@ -2492,16 +2492,16 @@
},
{
"name": "jasig/phpcas",
"version": "1.5.0",
"version": "1.6.1",
"source": {
"type": "git",
"url": "https://github.com/apereo/phpCAS.git",
"reference": "d6f5797fb568726f34c8e48741776d81e4a2646b"
"reference": "c129708154852656aabb13d8606cd5b12dbbabac"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/apereo/phpCAS/zipball/d6f5797fb568726f34c8e48741776d81e4a2646b",
"reference": "d6f5797fb568726f34c8e48741776d81e4a2646b",
"url": "https://api.github.com/repos/apereo/phpCAS/zipball/c129708154852656aabb13d8606cd5b12dbbabac",
"reference": "c129708154852656aabb13d8606cd5b12dbbabac",
"shasum": ""
},
"require": {
@ -2522,6 +2522,9 @@
}
},
"autoload": {
"files": [
"source/CAS.php"
],
"classmap": [
"source/"
]
@ -2554,9 +2557,10 @@
],
"support": {
"issues": "https://github.com/apereo/phpCAS/issues",
"source": "https://github.com/apereo/phpCAS/tree/1.5.0"
"source": "https://github.com/apereo/phpCAS/tree/1.6.1"
},
"time": "2022-05-03T21:12:54+00:00"
"abandoned": "apereo/phpcas",
"time": "2023-02-19T19:52:35+00:00"
},
{
"name": "jean85/pretty-package-versions",
@ -11705,6 +11709,64 @@
},
"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",
"version": "9.2.17",

View File

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

View File

@ -1,1620 +1,1667 @@
#== Home ========================================================================================================
app_home:
path: /
controller: App\Controller\HomeController::home
path: /
controller: App\Controller\HomeController::home
app_user_home:
path: /user
controller: App\Controller\HomeController::homeuser
defaults: { access: user }
path: /user
controller: App\Controller\HomeController::homeuser
defaults: { access: user }
app_manager_home:
path: /manager
controller: App\Controller\HomeController::homemanager
defaults: { access: manager }
path: /manager
controller: App\Controller\HomeController::homemanager
defaults: { access: manager }
app_master_home:
path: /master
controller: App\Controller\HomeController::homemaster
defaults: { access: master }
path: /master
controller: App\Controller\HomeController::homemaster
defaults: { access: master }
app_modo_home:
path: /modo
controller: App\Controller\HomeController::homemodo
defaults: { access: modo }
path: /modo
controller: App\Controller\HomeController::homemodo
defaults: { access: modo }
app_admin_home:
path: /admin
controller: App\Controller\HomeController::homeadmin
defaults: { access: admin }
path: /admin
controller: App\Controller\HomeController::homeadmin
defaults: { access: admin }
oneup_uploader:
resource: .
type: uploader
resource: .
type: uploader
#== Security ====================================================================================================
#-- Access public
app_login:
path: /login
controller: App\Controller\SecurityController::login
path: /login
controller: App\Controller\SecurityController::login
app_loginldapcheck:
path: /loginldapcheck
controller: App\Controller\SecurityController::loginldapcheck
path: /loginldapcheck
controller: App\Controller\SecurityController::loginldapcheck
app_loginopenidcallback:
path: /oauth2/callback
controller: App\Controller\SecurityController::loginopenidcallback
path: /oauth2/callback
controller: App\Controller\SecurityController::loginopenidcallback
app_logout:
path: /logout
controller: App\Controller\SecurityController::logout
path: /logout
controller: App\Controller\SecurityController::logout
app_noperm:
path: /noperm
controller: App\Controller\SecurityController::noperm
path: /noperm
controller: App\Controller\SecurityController::noperm
#== Websocket====================================================================================================
#-- Access all
app_publish_sample:
path: /all/publish/sample/{id}
controller: App\Controller\PublishController::sample
defaults: { access: all }
path: /all/publish/sample/{id}
controller: App\Controller\PublishController::sample
defaults: { access: all }
app_publish:
path: /all/publish/{channel}/{id}
controller: App\Controller\PublishController::publish
defaults: { access: all }
path: /all/publish/{channel}/{id}
controller: App\Controller\PublishController::publish
defaults: { access: all }
#== Config ======================================================================================================
#-- Access admin
app_admin_config:
path: /admin/config
controller: App\Controller\ConfigController::list
defaults: { access: admin }
path: /admin/config
controller: App\Controller\ConfigController::list
defaults: { access: admin }
app_admin_config_render:
path: /admin/admin/render/{category}
controller: App\Controller\ConfigController::listrender
defaults: { access: admin }
path: /admin/admin/render/{category}
controller: App\Controller\ConfigController::listrender
defaults: { access: admin }
app_admin_config_submit:
path: /admin/admin/submit
controller: App\Controller\ConfigController::submit
defaults: { access: admin }
path: /admin/admin/submit
controller: App\Controller\ConfigController::submit
defaults: { access: admin }
app_admin_config_update:
path: /admin/admin/update/{id}
controller: App\Controller\ConfigController::update
defaults: { access: admin }
path: /admin/admin/update/{id}
controller: App\Controller\ConfigController::update
defaults: { access: admin }
app_admin_config_delete:
path: /admin/admin/delete/{id}
controller: App\Controller\ConfigController::delete
defaults: { access: admin }
path: /admin/admin/delete/{id}
controller: App\Controller\ConfigController::delete
defaults: { access: admin }
app_admin_config_logo:
path: /admin/admin/logo
controller: App\Controller\ConfigController::logo
defaults: { access: admin }
path: /admin/admin/logo
controller: App\Controller\ConfigController::logo
defaults: { access: admin }
#== Theme =======================================================================================================
#-- Access admin
app_admin_theme:
path: /admin/theme
controller: App\Controller\ThemeController::list
defaults: { access: admin }
path: /admin/theme
controller: App\Controller\ThemeController::list
defaults: { access: admin }
app_admin_theme_select:
path: /admin/theme/select/{name}
controller: App\Controller\ThemeController::select
defaults: { name: "", access: admin }
path: /admin/theme/select/{name}
controller: App\Controller\ThemeController::select
defaults: { name: "", access: admin }
#== API =========================================================================================================
#-- Access public
app_rest:
path: /docrest
controller: App\Controller\HomeController::docrest
path: /docrest
controller: App\Controller\HomeController::docrest
#== Cron ========================================================================================================
#-- Access admin
app_admin_cron:
path: /admin/cron
controller: App\Controller\CronController::list
defaults: { access: admin }
path: /admin/cron
controller: App\Controller\CronController::list
defaults: { access: admin }
app_admin_cron_tablelist:
path: /admin/cron/tablelist
controller: App\Controller\CronController::tablelist
defaults: { access: admin }
path: /admin/cron/tablelist
controller: App\Controller\CronController::tablelist
defaults: { access: admin }
app_admin_cron_update:
path: /admin/cron/update/{id}
controller: App\Controller\CronController::update
defaults: { access: admin }
path: /admin/cron/update/{id}
controller: App\Controller\CronController::update
defaults: { access: admin }
app_admin_cron_exec:
path: /admin/cron/exec/{id}
controller: App\Controller\CronController::exec
defaults: { access: admin }
path: /admin/cron/exec/{id}
controller: App\Controller\CronController::exec
defaults: { access: admin }
app_admin_log:
path: /admin/log
controller: App\Controller\CronController::log
defaults: { access: admin }
path: /admin/log
controller: App\Controller\CronController::log
defaults: { access: admin }
app_admin_log_get:
path: /admin/log/{id}
controller: App\Controller\CronController::get
defaults: { access: admin }
path: /admin/log/{id}
controller: App\Controller\CronController::get
defaults: { access: admin }
#== Crop ========================================================================================================
#-- Access all
app_all_crop01:
path: /all/crop01/{type}/{reportinput}
controller: App\Controller\CropController::crop01
path: /all/crop01/{type}/{reportinput}
controller: App\Controller\CropController::crop01
app_all_crop02:
path: /all/crop02/{type}/{reportinput}
controller: App\Controller\CropController::crop02
path: /all/crop02/{type}/{reportinput}
controller: App\Controller\CropController::crop02
#== Minio =======================================================================================================
#-- Access public
app_minio_logo:
path: /minio/logo
controller: App\Controller\MinioController::logo
path: /minio/logo
controller: App\Controller\MinioController::logo
app_minio_image:
path: /minio/image
controller: App\Controller\MinioController::image
path: /minio/image
controller: App\Controller\MinioController::image
app_minio_document:
path: /minio/document
controller: App\Controller\MinioController::document
path: /minio/document
controller: App\Controller\MinioController::document
#== Hydra =======================================================================================================
#-- Access public
app_hydra_loginsql:
path: /hydra/loginsql
controller: App\Controller\HydraController::loginsql
path: /hydra/loginsql
controller: App\Controller\HydraController::loginsql
app_hydra_checkloginsql:
path: /hydra/checkloginsql
controller: App\Controller\HydraController::checkloginsql
path: /hydra/checkloginsql
controller: App\Controller\HydraController::checkloginsql
app_hydra_loginldap:
path: /hydra/loginldap
controller: App\Controller\HydraController::loginldap
path: /hydra/loginldap
controller: App\Controller\HydraController::loginldap
app_hydra_checkloginldap:
path: /hydra/checkloginldap
controller: App\Controller\HydraController::checkloginldap
path: /hydra/checkloginldap
controller: App\Controller\HydraController::checkloginldap
app_hydra_consent:
path: /hydra/consent
controller: App\Controller\HydraController::consent
path: /hydra/consent
controller: App\Controller\HydraController::consent
#== Ckeditor ====================================================================================================
#-- Access all
app_ckeditor_upload:
path: /all/upload/{{category}}/{{id}}/{{usage}}
controller: App\Controller\MinioController::ckupload
defaults: { access: all, category: all, id: 0, usage: all }
path: /all/upload/{{category}}/{{id}}/{{usage}}
controller: App\Controller\MinioController::ckupload
defaults: { access: all, category: all, id: 0, usage: all }
#== Audit =======================================================================================================
#--Access admin
app_admin_audit_renderid:
path: /admin/audit/{entityname}/{entityid}
controller: App\Controller\AuditController::auditrender
defaults: { access: admin }
path: /admin/audit/{entityname}/{entityid}
controller: App\Controller\AuditController::auditrender
defaults: { access: admin }
app_admin_audit_render:
path: /admin/audit/{entityname}
controller: App\Controller\AuditController::list
defaults: { access: admin }
path: /admin/audit/{entityname}
controller: App\Controller\AuditController::list
defaults: { access: admin }
#--Access modo
app_modo_audit_renderid:
path: /modo/audit/{entityname}/{entityid}
controller: App\Controller\AuditController::auditrender
defaults: { access: modo }
path: /modo/audit/{entityname}/{entityid}
controller: App\Controller\AuditController::auditrender
defaults: { access: modo }
#== Niveau01 ====================================================================================================
#-- Access admin
app_admin_niveau01:
path: /admin/niveau01
controller: App\Controller\Niveau01Controller::list
defaults: { access: admin }
path: /admin/niveau01
controller: App\Controller\Niveau01Controller::list
defaults: { access: admin }
app_admin_niveau01_tablelist:
path: /admin/niveau01/tablelist
controller: App\Controller\Niveau01Controller::tablelist
defaults: { access: admin }
path: /admin/niveau01/tablelist
controller: App\Controller\Niveau01Controller::tablelist
defaults: { access: admin }
app_admin_niveau01_selectlist:
path: /admin/niveau01/selectlist
controller: App\Controller\Niveau01Controller::selectlist
defaults: { access: admin }
path: /admin/niveau01/selectlist
controller: App\Controller\Niveau01Controller::selectlist
defaults: { access: admin }
app_admin_niveau01_submit:
path: /admin/niveau01/submit
controller: App\Controller\Niveau01Controller::submit
defaults: { access: admin }
path: /admin/niveau01/submit
controller: App\Controller\Niveau01Controller::submit
defaults: { access: admin }
app_admin_niveau01_update:
path: /admin/niveau01/update/{id}
controller: App\Controller\Niveau01Controller::update
defaults: { access: admin }
path: /admin/niveau01/update/{id}
controller: App\Controller\Niveau01Controller::update
defaults: { access: admin }
app_admin_niveau01_delete:
path: /admin/niveau01/delete/{id}
controller: App\Controller\Niveau01Controller::delete
defaults: { access: admin }
path: /admin/niveau01/delete/{id}
controller: App\Controller\Niveau01Controller::delete
defaults: { access: admin }
#== Niveau02 ====================================================================================================
#-- Access admin
app_admin_niveau02:
path: /admin/niveau02
controller: App\Controller\Niveau02Controller::list
defaults: { access: admin }
path: /admin/niveau02
controller: App\Controller\Niveau02Controller::list
defaults: { access: admin }
app_admin_niveau02_tablelist:
path: /admin/niveau02/tablelist
controller: App\Controller\Niveau02Controller::tablelist
defaults: { access: admin }
path: /admin/niveau02/tablelist
controller: App\Controller\Niveau02Controller::tablelist
defaults: { access: admin }
app_admin_niveau02_submit:
path: /admin/niveau02/submit
controller: App\Controller\Niveau02Controller::submit
defaults: { access: admin }
path: /admin/niveau02/submit
controller: App\Controller\Niveau02Controller::submit
defaults: { access: admin }
app_admin_niveau02_update:
path: /admin/niveau02/update/{id}
controller: App\Controller\Niveau02Controller::update
defaults: { access: admin }
path: /admin/niveau02/update/{id}
controller: App\Controller\Niveau02Controller::update
defaults: { access: admin }
app_admin_niveau02_delete:
path: /admin/niveau02/delete/{id}
controller: App\Controller\Niveau02Controller::delete
defaults: { access: admin }
path: /admin/niveau02/delete/{id}
controller: App\Controller\Niveau02Controller::delete
defaults: { access: admin }
#-- Access modo
app_modo_niveau02:
path: /modo/niveau02
controller: App\Controller\Niveau02Controller::list
defaults: { access: modo }
path: /modo/niveau02
controller: App\Controller\Niveau02Controller::list
defaults: { access: modo }
app_modo_niveau02_tablelist:
path: /modo/niveau02/tablelist
controller: App\Controller\Niveau02Controller::tablelist
defaults: { access: modo }
path: /modo/niveau02/tablelist
controller: App\Controller\Niveau02Controller::tablelist
defaults: { access: modo }
app_modo_niveau02_submit:
path: /modo/niveau02/submit
controller: App\Controller\Niveau02Controller::submit
defaults: { access: modo }
path: /modo/niveau02/submit
controller: App\Controller\Niveau02Controller::submit
defaults: { access: modo }
app_modo_niveau02_update:
path: /modo/niveau02/update/{id}
controller: App\Controller\Niveau02Controller::update
defaults: { access: modo }
path: /modo/niveau02/update/{id}
controller: App\Controller\Niveau02Controller::update
defaults: { access: modo }
app_modo_niveau02_delete:
path: /modo/niveau02/delete/{id}
controller: App\Controller\Niveau02Controller::delete
defaults: { access: modo }
path: /modo/niveau02/delete/{id}
controller: App\Controller\Niveau02Controller::delete
defaults: { access: modo }
#-- Access public
app_niveau02_selectlist:
path: /niveau02/selectlist
controller: App\Controller\Niveau02Controller::selectlist
path: /niveau02/selectlist
controller: App\Controller\Niveau02Controller::selectlist
#== Niveau03 ====================================================================================================
#-- Access admin
app_admin_niveau03:
path: /admin/niveau03
controller: App\Controller\Niveau03Controller::list
defaults: { access: admin }
path: /admin/niveau03
controller: App\Controller\Niveau03Controller::list
defaults: { access: admin }
app_admin_niveau03_tablelist:
path: /admin/niveau03/tablelist
controller: App\Controller\Niveau03Controller::tablelist
defaults: { access: admin }
path: /admin/niveau03/tablelist
controller: App\Controller\Niveau03Controller::tablelist
defaults: { access: admin }
app_admin_niveau03_submit:
path: /admin/niveau03/submit
controller: App\Controller\Niveau03Controller::submit
defaults: { access: admin }
path: /admin/niveau03/submit
controller: App\Controller\Niveau03Controller::submit
defaults: { access: admin }
app_admin_niveau03_update:
path: /admin/niveau03/update/{id}
controller: App\Controller\Niveau03Controller::update
defaults: { access: admin }
path: /admin/niveau03/update/{id}
controller: App\Controller\Niveau03Controller::update
defaults: { access: admin }
app_admin_niveau03_delete:
path: /admin/niveau03/delete/{id}
controller: App\Controller\Niveau03Controller::delete
defaults: { access: admin }
path: /admin/niveau03/delete/{id}
controller: App\Controller\Niveau03Controller::delete
defaults: { access: admin }
#-- Access modo
app_modo_niveau03:
path: /modo/niveau03
controller: App\Controller\Niveau03Controller::list
defaults: { access: modo }
path: /modo/niveau03
controller: App\Controller\Niveau03Controller::list
defaults: { access: modo }
app_modo_niveau03_tablelist:
path: /modo/niveau03/tablelist
controller: App\Controller\Niveau03Controller::tablelist
defaults: { access: modo }
path: /modo/niveau03/tablelist
controller: App\Controller\Niveau03Controller::tablelist
defaults: { access: modo }
app_modo_niveau03_submit:
path: /modo/niveau03/submit
controller: App\Controller\Niveau03Controller::submit
defaults: { access: modo }
path: /modo/niveau03/submit
controller: App\Controller\Niveau03Controller::submit
defaults: { access: modo }
app_modo_niveau03_update:
path: /modo/niveau03/update/{id}
controller: App\Controller\Niveau03Controller::update
defaults: { access: modo }
path: /modo/niveau03/update/{id}
controller: App\Controller\Niveau03Controller::update
defaults: { access: modo }
app_modo_niveau03_delete:
path: /modo/niveau03/delete/{id}
controller: App\Controller\Niveau03Controller::delete
defaults: { access: modo }
path: /modo/niveau03/delete/{id}
controller: App\Controller\Niveau03Controller::delete
defaults: { access: modo }
#-- Access public
app_niveau03_selectlist:
path: /niveau03/selectlist
controller: App\Controller\Niveau03Controller::selectlist
path: /niveau03/selectlist
controller: App\Controller\Niveau03Controller::selectlist
#== Niveau04 ====================================================================================================
#-- Access admin
app_admin_niveau04:
path: /admin/niveau04
controller: App\Controller\Niveau04Controller::list
defaults: { access: admin }
path: /admin/niveau04
controller: App\Controller\Niveau04Controller::list
defaults: { access: admin }
app_admin_niveau04_tablelist:
path: /admin/niveau04/tablelist
controller: App\Controller\Niveau04Controller::tablelist
defaults: { access: admin }
path: /admin/niveau04/tablelist
controller: App\Controller\Niveau04Controller::tablelist
defaults: { access: admin }
app_admin_niveau04_submit:
path: /admin/niveau04/submit
controller: App\Controller\Niveau04Controller::submit
defaults: { access: admin }
path: /admin/niveau04/submit
controller: App\Controller\Niveau04Controller::submit
defaults: { access: admin }
app_admin_niveau04_update:
path: /admin/niveau04/update/{id}
controller: App\Controller\Niveau04Controller::update
defaults: { access: admin }
path: /admin/niveau04/update/{id}
controller: App\Controller\Niveau04Controller::update
defaults: { access: admin }
app_admin_niveau04_delete:
path: /admin/niveau04/delete/{id}
controller: App\Controller\Niveau04Controller::delete
defaults: { access: admin }
path: /admin/niveau04/delete/{id}
controller: App\Controller\Niveau04Controller::delete
defaults: { access: admin }
#-- Access modo
app_modo_niveau04:
path: /modo/niveau04
controller: App\Controller\Niveau04Controller::list
defaults: { access: modo }
path: /modo/niveau04
controller: App\Controller\Niveau04Controller::list
defaults: { access: modo }
app_modo_niveau04_tablelist:
path: /modo/niveau04/tablelist
controller: App\Controller\Niveau04Controller::tablelist
defaults: { access: modo }
path: /modo/niveau04/tablelist
controller: App\Controller\Niveau04Controller::tablelist
defaults: { access: modo }
app_modo_niveau04_submit:
path: /modo/niveau04/submit
controller: App\Controller\Niveau04Controller::submit
defaults: { access: modo }
path: /modo/niveau04/submit
controller: App\Controller\Niveau04Controller::submit
defaults: { access: modo }
app_modo_niveau04_update:
path: /modo/niveau04/update/{id}
controller: App\Controller\Niveau04Controller::update
defaults: { access: modo }
path: /modo/niveau04/update/{id}
controller: App\Controller\Niveau04Controller::update
defaults: { access: modo }
app_modo_niveau04_delete:
path: /modo/niveau04/delete/{id}
controller: App\Controller\Niveau04Controller::delete
defaults: { access: modo }
path: /modo/niveau04/delete/{id}
controller: App\Controller\Niveau04Controller::delete
defaults: { access: modo }
#-- Access public
app_niveau04_selectlist:
path: /niveau04/selectlist
controller: App\Controller\Niveau04Controller::selectlist
path: /niveau04/selectlist
controller: App\Controller\Niveau04Controller::selectlist
#== Group =======================================================================================================
#-- Access admin
app_admin_group:
path: /admin/group
controller: App\Controller\GroupController::list
defaults: { access: admin }
path: /admin/group
controller: App\Controller\GroupController::list
defaults: { access: admin }
app_admin_group_tablelist:
path: /admin/group/tablelist
controller: App\Controller\GroupController::tablelist
defaults: { access: admin }
path: /admin/group/tablelist
controller: App\Controller\GroupController::tablelist
defaults: { access: admin }
app_admin_group_selectlist:
path: /admin/group/selectlist
controller: App\Controller\GroupController::selectlist
defaults: { access: admin }
path: /admin/group/selectlist
controller: App\Controller\GroupController::selectlist
defaults: { access: admin }
app_admin_group_submit:
path: /admin/group/submit
controller: App\Controller\GroupController::submit
defaults: { access: admin }
path: /admin/group/submit
controller: App\Controller\GroupController::submit
defaults: { access: admin }
app_admin_group_update:
path: /admin/group/update/{id}
controller: App\Controller\GroupController::update
defaults: { access: admin }
path: /admin/group/update/{id}
controller: App\Controller\GroupController::update
defaults: { access: admin }
app_admin_group_delete:
path: /admin/group/delete/{id}
controller: App\Controller\GroupController::delete
defaults: { access: admin }
path: /admin/group/delete/{id}
controller: App\Controller\GroupController::delete
defaults: { access: admin }
app_admin_group_users:
path: /admin/group/users/{id}
controller: App\Controller\GroupController::users
defaults: { access: admin }
path: /admin/group/users/{id}
controller: App\Controller\GroupController::users
defaults: { access: admin }
app_admin_group_usersnotin:
path: /admin/group/usersnotin/{id}
controller: App\Controller\GroupController::usersnotin
defaults: { access: admin }
path: /admin/group/usersnotin/{id}
controller: App\Controller\GroupController::usersnotin
defaults: { access: admin }
app_admin_group_usersin:
path: /admin/group/usersin/{id}
controller: App\Controller\GroupController::usersin
defaults: { access: admin }
path: /admin/group/usersin/{id}
controller: App\Controller\GroupController::usersin
defaults: { access: admin }
app_admin_group_usergroup_add:
path: /admin/group/usergroup/add/{groupid}/{userid}
controller: App\Controller\GroupController::useradd
defaults: { access: admin }
path: /admin/group/usergroup/add/{groupid}/{userid}
controller: App\Controller\GroupController::useradd
defaults: { access: admin }
app_admin_group_usergroup_del:
path: /admin/group/usergroup/del/{groupid}/{userid}
controller: App\Controller\GroupController::userdel
defaults: { access: admin }
path: /admin/group/usergroup/del/{groupid}/{userid}
controller: App\Controller\GroupController::userdel
defaults: { access: admin }
app_admin_group_usergroup_changerole:
path: /admin/group/usergroup/changerole/{groupid}/{userid}/{roleid}
controller: App\Controller\GroupController::userchangerole
defaults: { access: admin }
path: /admin/group/usergroup/changerole/{groupid}/{userid}/{roleid}
controller: App\Controller\GroupController::userchangerole
defaults: { access: admin }
#-- Access modo
app_modo_group:
path: /modo/group
controller: App\Controller\GroupController::list
defaults: { access: modo }
path: /modo/group
controller: App\Controller\GroupController::list
defaults: { access: modo }
app_modo_group_tablelist:
path: /modo/group/tablelist
controller: App\Controller\GroupController::tablelist
defaults: { access: modo }
path: /modo/group/tablelist
controller: App\Controller\GroupController::tablelist
defaults: { access: modo }
app_modo_group_selectlist:
path: /modo/group/selectlist
controller: App\Controller\GroupController::selectlist
defaults: { access: modo }
path: /modo/group/selectlist
controller: App\Controller\GroupController::selectlist
defaults: { access: modo }
app_modo_group_users:
path: /modo/group/users/{id}
controller: App\Controller\GroupController::users
defaults: { access: modo }
path: /modo/group/users/{id}
controller: App\Controller\GroupController::users
defaults: { access: modo }
app_modo_group_usersnotin:
path: /modo/group/usersnotin/{id}
controller: App\Controller\GroupController::usersnotin
defaults: { access: modo }
path: /modo/group/usersnotin/{id}
controller: App\Controller\GroupController::usersnotin
defaults: { access: modo }
app_modo_group_usersin:
path: /modo/group/usersin/{id}
controller: App\Controller\GroupController::usersin
defaults: { access: modo }
path: /modo/group/usersin/{id}
controller: App\Controller\GroupController::usersin
defaults: { access: modo }
app_modo_group_usergroup_add:
path: /modo/group/usergroup/add/{groupid}/{userid}
controller: App\Controller\GroupController::useradd
defaults: { access: modo }
path: /modo/group/usergroup/add/{groupid}/{userid}
controller: App\Controller\GroupController::useradd
defaults: { access: modo }
app_modo_group_usergroup_del:
path: /modo/group/usergroup/del/{groupid}/{userid}
controller: App\Controller\GroupController::userdel
defaults: { access: modo }
path: /modo/group/usergroup/del/{groupid}/{userid}
controller: App\Controller\GroupController::userdel
defaults: { access: modo }
app_modo_group_usergroup_changerole:
path: /modo/group/usergroup/changerole/{groupid}/{userid}/{roleid}
controller: App\Controller\GroupController::userchangerole
defaults: { access: modo }
path: /modo/group/usergroup/changerole/{groupid}/{userid}/{roleid}
controller: App\Controller\GroupController::userchangerole
defaults: { access: modo }
#-- Access all
app_all_group:
path: /all/group
controller: App\Controller\GroupController::list
defaults: { access: all }
path: /all/group
controller: App\Controller\GroupController::list
defaults: { access: all }
app_all_group_tablelist:
path: /all/group/tablelist
controller: App\Controller\GroupController::tablelist
defaults: { access: all }
path: /all/group/tablelist
controller: App\Controller\GroupController::tablelist
defaults: { access: all }
app_all_group_selectlist:
path: /all/group/selectlist
controller: App\Controller\GroupController::selectlist
defaults: { access: all }
path: /all/group/selectlist
controller: App\Controller\GroupController::selectlist
defaults: { access: all }
app_all_group_submit:
path: /all/group/submit
controller: App\Controller\GroupController::submit
defaults: { access: all }
path: /all/group/submit
controller: App\Controller\GroupController::submit
defaults: { access: all }
app_all_group_update:
path: /all/group/update/{id}
controller: App\Controller\GroupController::update
defaults: { access: all }
path: /all/group/update/{id}
controller: App\Controller\GroupController::update
defaults: { access: all }
app_all_group_delete:
path: /all/group/delete/{id}
controller: App\Controller\GroupController::delete
defaults: { access: all }
path: /all/group/delete/{id}
controller: App\Controller\GroupController::delete
defaults: { access: all }
app_all_group_users:
path: /all/group/users/{id}
controller: App\Controller\GroupController::users
defaults: { access: all }
path: /all/group/users/{id}
controller: App\Controller\GroupController::users
defaults: { access: all }
app_all_group_usersnotin:
path: /all/group/usersnotin/{id}
controller: App\Controller\GroupController::usersnotin
defaults: { access: all }
path: /all/group/usersnotin/{id}
controller: App\Controller\GroupController::usersnotin
defaults: { access: all }
app_all_group_usersin:
path: /all/group/usersin/{id}
controller: App\Controller\GroupController::usersin
defaults: { access: all }
path: /all/group/usersin/{id}
controller: App\Controller\GroupController::usersin
defaults: { access: all }
app_all_group_usergroup_add:
path: /all/group/usergroup/add/{groupid}/{userid}
controller: App\Controller\GroupController::useradd
defaults: { access: all }
path: /all/group/usergroup/add/{groupid}/{userid}
controller: App\Controller\GroupController::useradd
defaults: { access: all }
app_all_group_usergroup_del:
path: /all/group/usergroup/del/{groupid}/{userid}
controller: App\Controller\GroupController::userdel
defaults: { access: all }
path: /all/group/usergroup/del/{groupid}/{userid}
controller: App\Controller\GroupController::userdel
defaults: { access: all }
app_all_group_usergroup_changerole:
path: /all/group/usergroup/changerole/{groupid}/{userid}/{roleid}
controller: App\Controller\GroupController::userchangerole
defaults: { access: all }
path: /all/group/usergroup/changerole/{groupid}/{userid}/{roleid}
controller: App\Controller\GroupController::userchangerole
defaults: { access: all }
app_all_group_userout:
path: /all/group/userout/{id}
controller: App\Controller\GroupController::userout
defaults: { access: all }
path: /all/group/userout/{id}
controller: App\Controller\GroupController::userout
defaults: { access: all }
#== Whitelist ===================================================================================================
#-- Access admin
app_admin_whitelist:
path: /admin/whitelist
controller: App\Controller\WhitelistController::list
defaults: { access: admin }
path: /admin/whitelist
controller: App\Controller\WhitelistController::list
defaults: { access: admin }
app_admin_whitelist_tablelist:
path: /admin/whitelist/tablelist
controller: App\Controller\WhitelistController::tablelist
defaults: { access: admin }
path: /admin/whitelist/tablelist
controller: App\Controller\WhitelistController::tablelist
defaults: { access: admin }
app_admin_whitelist_submit:
path: /admin/whitelist/submit
controller: App\Controller\WhitelistController::submit
defaults: { access: admin }
path: /admin/whitelist/submit
controller: App\Controller\WhitelistController::submit
defaults: { access: admin }
app_admin_whitelist_update:
path: /admin/whitelist/update/{id}
controller: App\Controller\WhitelistController::update
defaults: { access: admin }
path: /admin/whitelist/update/{id}
controller: App\Controller\WhitelistController::update
defaults: { access: admin }
app_admin_whitelist_delete:
path: /admin/whitelist/delete/{id}
controller: App\Controller\WhitelistController::delete
defaults: { access: admin }
path: /admin/whitelist/delete/{id}
controller: App\Controller\WhitelistController::delete
defaults: { access: admin }
#-- Access public
app_whitelist_is:
path: /whitelist/is
controller: App\Controller\WhitelistController::is
path: /whitelist/is
controller: App\Controller\WhitelistController::is
#== Registration ================================================================================================
#-- Access admin
app_admin_registration:
path: /admin/registration
controller: App\Controller\RegistrationController::list
defaults: { access: admin }
path: /admin/registration
controller: App\Controller\RegistrationController::list
defaults: { access: admin }
app_admin_registration_tablelist:
path: /admin/registration/tablelist
controller: App\Controller\RegistrationController::tablelist
defaults: { access: admin }
path: /admin/registration/tablelist
controller: App\Controller\RegistrationController::tablelist
defaults: { access: admin }
app_admin_registration_update:
path: /admin/registration/update/{id}
controller: App\Controller\RegistrationController::update
defaults: { access: admin }
path: /admin/registration/update/{id}
controller: App\Controller\RegistrationController::update
defaults: { access: admin }
app_admin_registration_delete:
path: /admin/registration/delete/{id}
controller: App\Controller\RegistrationController::delete
defaults: { access: admin }
path: /admin/registration/delete/{id}
controller: App\Controller\RegistrationController::delete
defaults: { access: admin }
#-- Access modo
app_modo_registration:
path: /modo/registration
controller: App\Controller\RegistrationController::list
defaults: { access: modo }
path: /modo/registration
controller: App\Controller\RegistrationController::list
defaults: { access: modo }
app_modo_registration_tablelist:
path: /modo/registration/tablelist
controller: App\Controller\RegistrationController::tablelist
defaults: { access: modo }
path: /modo/registration/tablelist
controller: App\Controller\RegistrationController::tablelist
defaults: { access: modo }
app_modo_registration_update:
path: /modo/registration/update/{id}
controller: App\Controller\RegistrationController::update
defaults: { access: modo }
path: /modo/registration/update/{id}
controller: App\Controller\RegistrationController::update
defaults: { access: modo }
app_modo_registration_delete:
path: /modo/registration/delete/{id}
controller: App\Controller\RegistrationController::delete
defaults: { access: modo }
path: /modo/registration/delete/{id}
controller: App\Controller\RegistrationController::delete
defaults: { access: modo }
#-- Access public
app_registration:
path: /registration
controller: App\Controller\RegistrationController::submit
path: /registration
controller: App\Controller\RegistrationController::submit
app_registration_info:
path: /registration/info
controller: App\Controller\RegistrationController::info
path: /registration/info
controller: App\Controller\RegistrationController::info
app_registration_validation:
path: /registration/validation/{key}
controller: App\Controller\RegistrationController::validation
path: /registration/validation/{key}
controller: App\Controller\RegistrationController::validation
app_resetpwd01:
path: /resetpwd01
controller: App\Controller\RegistrationController::resetpwd01
path: /resetpwd01
controller: App\Controller\RegistrationController::resetpwd01
app_resetpwd02:
path: /resetpwd02/{key}
controller: App\Controller\RegistrationController::resetpwd02
path: /resetpwd02/{key}
controller: App\Controller\RegistrationController::resetpwd02
#== User ========================================================================================================
#-- Access admin
app_admin_user:
path: /admin/user
controller: App\Controller\UserController::list
defaults: { access: admin }
path: /admin/user
controller: App\Controller\UserController::list
defaults: { access: admin }
app_admin_user_tablelist:
path: /admin/user/tablelist
controller: App\Controller\UserController::tablelist
defaults: { access: admin }
path: /admin/user/tablelist
controller: App\Controller\UserController::tablelist
defaults: { access: admin }
app_admin_user_selectlist:
path: /admin/user/selectlist
controller: App\Controller\UserController::selectlist
defaults: { access: admin }
path: /admin/user/selectlist
controller: App\Controller\UserController::selectlist
defaults: { access: admin }
app_admin_user_submit:
path: /admin/user/submit
controller: App\Controller\UserController::submit
defaults: { access: admin }
path: /admin/user/submit
controller: App\Controller\UserController::submit
defaults: { access: admin }
app_admin_user_update:
path: /admin/user/update/{id}
controller: App\Controller\UserController::update
defaults: { access: admin }
path: /admin/user/update/{id}
controller: App\Controller\UserController::update
defaults: { access: admin }
app_admin_user_delete:
path: /admin/user/delete/{id}
controller: App\Controller\UserController::delete
defaults: { access: admin }
path: /admin/user/delete/{id}
controller: App\Controller\UserController::delete
defaults: { access: admin }
#-- Access modo
app_modo_user:
path: /modo/user
controller: App\Controller\UserController::list
defaults: { access: modo }
path: /modo/user
controller: App\Controller\UserController::list
defaults: { access: modo }
app_modo_user_tablelist:
path: /modo/user/tablelist
controller: App\Controller\UserController::tablelist
defaults: { access: modo }
path: /modo/user/tablelist
controller: App\Controller\UserController::tablelist
defaults: { access: modo }
app_modo_user_selectlist:
path: /modo/user/selectlist
controller: App\Controller\UserController::selectlist
defaults: { access: modo }
path: /modo/user/selectlist
controller: App\Controller\UserController::selectlist
defaults: { access: modo }
app_modo_user_submit:
path: /modo/user/submit
controller: App\Controller\UserController::submit
defaults: { access: modo }
path: /modo/user/submit
controller: App\Controller\UserController::submit
defaults: { access: modo }
app_modo_user_update:
path: /modo/user/update/{id}
controller: App\Controller\UserController::update
defaults: { access: modo }
path: /modo/user/update/{id}
controller: App\Controller\UserController::update
defaults: { access: modo }
app_modo_user_delete:
path: /modo/user/delete/{id}
controller: App\Controller\UserController::delete
defaults: { access: modo }
path: /modo/user/delete/{id}
controller: App\Controller\UserController::delete
defaults: { access: modo }
#-- Access manager
app_manager_user:
path: /manager/user
controller: App\Controller\UserController::list
defaults: { access: manager }
path: /manager/user
controller: App\Controller\UserController::list
defaults: { access: manager }
app_manager_user_tablelist:
path: /manager/user/tablelist
controller: App\Controller\UserController::tablelist
defaults: { access: manager }
path: /manager/user/tablelist
controller: App\Controller\UserController::tablelist
defaults: { access: manager }
app_manager_user_selectlist:
path: /manager/user/selectlist
controller: App\Controller\UserController::selectlist
defaults: { access: manager }
path: /manager/user/selectlist
controller: App\Controller\UserController::selectlist
defaults: { access: manager }
app_manager_user_submit:
path: /manager/user/submit
controller: App\Controller\UserController::submit
defaults: { access: manager }
path: /manager/user/submit
controller: App\Controller\UserController::submit
defaults: { access: manager }
app_manager_user_update:
path: /manager/user/update/{id}
controller: App\Controller\UserController::update
defaults: { access: manager }
path: /manager/user/update/{id}
controller: App\Controller\UserController::update
defaults: { access: manager }
app_manager_user_delete:
path: /manager/user/delete/{id}
controller: App\Controller\UserController::delete
defaults: { access: manager }
path: /manager/user/delete/{id}
controller: App\Controller\UserController::delete
defaults: { access: manager }
#-- Access all
app_all_user:
path: /all/update
controller: App\Controller\UserController::profil
defaults: { access: all }
path: /all/update
controller: App\Controller\UserController::profil
defaults: { access: all }
app_all_users:
path: /all/users
controller: App\Controller\UserController::list
defaults: { access: all }
path: /all/users
controller: App\Controller\UserController::list
defaults: { access: all }
app_all_user_tablelist:
path: /all/user/tablelist
controller: App\Controller\UserController::tablelist
defaults: { access: all }
path: /all/user/tablelist
controller: App\Controller\UserController::tablelist
defaults: { access: all }
app_all_user_selectlist:
path: /all/user/selectlist
controller: App\Controller\UserController::selectlist
defaults: { access: all }
path: /all/user/selectlist
controller: App\Controller\UserController::selectlist
defaults: { access: all }
app_all_view:
path: /all/view/{id}
controller: App\Controller\UserController::view
defaults: { access: all }
path: /all/view/{id}
controller: App\Controller\UserController::view
defaults: { access: all }
app_all_preference:
path: /all/preference
controller: App\Controller\UserController::preference
defaults: { access: all }
path: /all/preference
controller: App\Controller\UserController::preference
defaults: { access: all }
#== ICON =================================================================================================================================================
#-- Access admin
app_admin_icon:
path: /admin/icon
controller: App\Controller\IconController::list
defaults: { access: admin }
path: /admin/icon
controller: App\Controller\IconController::list
defaults: { access: admin }
app_admin_icon_submit:
path: /admin/icon/submit
controller: App\Controller\IconController::submit
defaults: { access: admin }
path: /admin/icon/submit
controller: App\Controller\IconController::submit
defaults: { access: admin }
app_admin_icon_update:
path: /admin/icon/update/{id}
controller: App\Controller\IconController::update
defaults: { access: admin }
path: /admin/icon/update/{id}
controller: App\Controller\IconController::update
defaults: { access: admin }
app_admin_icon_delete:
path: /admin/icon/delete/{id}
controller: App\Controller\IconController::delete
defaults: { access: admin }
path: /admin/icon/delete/{id}
controller: App\Controller\IconController::delete
defaults: { access: admin }
app_admin_icon_select:
path: /admin/icon/select
controller: App\Controller\IconController::select
defaults: { access: admin }
path: /admin/icon/select
controller: App\Controller\IconController::select
defaults: { access: admin }
app_admin_icon_upload:
path: /admin/icon/upload
controller: App\Controller\IconController::upload
defaults: { access: admin }
path: /admin/icon/upload
controller: App\Controller\IconController::upload
defaults: { access: admin }
#-- Access all
app_all_icon:
path: /all/icon
controller: App\Controller\IconController::list
defaults: { access: all }
path: /all/icon
controller: App\Controller\IconController::list
defaults: { access: all }
app_all_icon_submit:
path: /all/icon/submit
controller: App\Controller\IconController::submit
defaults: { access: all }
path: /all/icon/submit
controller: App\Controller\IconController::submit
defaults: { access: all }
app_all_icon_update:
path: /all/icon/update/{id}
controller: App\Controller\IconController::update
defaults: { access: all }
path: /all/icon/update/{id}
controller: App\Controller\IconController::update
defaults: { access: all }
app_all_icon_delete:
path: /all/icon/delete/{id}
controller: App\Controller\IconController::delete
defaults: { access: all }
path: /all/icon/delete/{id}
controller: App\Controller\IconController::delete
defaults: { access: all }
app_all_icon_select:
path: /all/icon/select
controller: App\Controller\IconController::select
defaults: { access: all }
path: /all/icon/select
controller: App\Controller\IconController::select
defaults: { access: all }
app_all_icon_upload:
path: /all/icon/upload
controller: App\Controller\IconController::upload
defaults: { access: all }
path: /all/icon/upload
controller: App\Controller\IconController::upload
defaults: { access: all }
#== ALERT ================================================================================================================================================
#-- Access admin
app_admin_alert:
path: /admin/alert
controller: App\Controller\AlertController::list
defaults: { access: admin }
path: /admin/alert
controller: App\Controller\AlertController::list
defaults: { access: admin }
app_admin_alert_submit:
path: /admin/alert/submit
controller: App\Controller\AlertController::submit
defaults: { access: admin }
path: /admin/alert/submit
controller: App\Controller\AlertController::submit
defaults: { access: admin }
app_admin_alert_update:
path: /admin/alert/update/{id}
controller: App\Controller\AlertController::update
defaults: { access: admin }
path: /admin/alert/update/{id}
controller: App\Controller\AlertController::update
defaults: { access: admin }
app_admin_alert_delete:
path: /admin/alert/delete/{id}
controller: App\Controller\AlertController::delete
defaults: { access: admin }
path: /admin/alert/delete/{id}
controller: App\Controller\AlertController::delete
defaults: { access: admin }
app_admin_alert_order:
path: /admin/alert/order
controller: App\Controller\AlertController::order
defaults: { access: admin }
path: /admin/alert/order
controller: App\Controller\AlertController::order
defaults: { access: admin }
#-- Access all
app_all_alert_read:
path: /all/alert/read
controller: App\Controller\AlertController::read
defaults: { access: all }
path: /all/alert/read
controller: App\Controller\AlertController::read
defaults: { access: all }
#== ALERT CATEGORY =======================================================================================================================================
#-- Access admin
app_admin_alertcategory_submit:
path: /admin/alertcategory/submit
controller: App\Controller\AlertcategoryController::submit
defaults: { access: admin }
path: /admin/alertcategory/submit
controller: App\Controller\AlertcategoryController::submit
defaults: { access: admin }
app_admin_alertcategory_update:
path: /admin/alertcategory/update/{id}
controller: App\Controller\AlertcategoryController::update
defaults: { access: admin }
path: /admin/alertcategory/update/{id}
controller: App\Controller\AlertcategoryController::update
defaults: { access: admin }
app_admin_alertcategory_delete:
path: /admin/alertcategory/delete/{id}
controller: App\Controller\AlertcategoryController::delete
defaults: { access: admin }
path: /admin/alertcategory/delete/{id}
controller: App\Controller\AlertcategoryController::delete
defaults: { access: admin }
#== ITEM =================================================================================================================================================
#-- Access admin
app_admin_item:
path: /admin/item
controller: App\Controller\ItemController::list
defaults: { access: admin }
path: /admin/item
controller: App\Controller\ItemController::list
defaults: { access: admin }
app_admin_item_submit:
path: /admin/item/submit
controller: App\Controller\ItemController::submit
defaults: { access: admin }
path: /admin/item/submit
controller: App\Controller\ItemController::submit
defaults: { access: admin }
app_admin_item_update:
path: /admin/item/update/{id}
controller: App\Controller\ItemController::update
defaults: { access: admin }
path: /admin/item/update/{id}
controller: App\Controller\ItemController::update
defaults: { access: admin }
app_admin_item_delete:
path: /admin/item/delete/{id}
controller: App\Controller\ItemController::delete
defaults: { access: admin }
path: /admin/item/delete/{id}
controller: App\Controller\ItemController::delete
defaults: { access: admin }
app_admin_item_order:
path: /admin/item/order
controller: App\Controller\ItemController::order
defaults: { access: admin }
path: /admin/item/order
controller: App\Controller\ItemController::order
defaults: { access: admin }
#== ITEM CATEGORY ========================================================================================================================================
#-- Access admin
app_admin_itemcategory_submit:
path: /admin/itemcategory/submit
controller: App\Controller\ItemcategoryController::submit
defaults: { access: admin }
path: /admin/itemcategory/submit
controller: App\Controller\ItemcategoryController::submit
defaults: { access: admin }
app_admin_itemcategory_update:
path: /admin/itemcategory/update/{id}
controller: App\Controller\ItemcategoryController::update
defaults: { access: admin }
path: /admin/itemcategory/update/{id}
controller: App\Controller\ItemcategoryController::update
defaults: { access: admin }
app_admin_itemcategory_delete:
path: /admin/itemcategory/delete/{id}
controller: App\Controller\ItemcategoryController::delete
defaults: { access: admin }
path: /admin/itemcategory/delete/{id}
controller: App\Controller\ItemcategoryController::delete
defaults: { access: admin }
app_admin_itemcategory_order:
path: /admin/itemcategory/order
controller: App\Controller\ItemcategoryController::order
defaults: { access: admin }
path: /admin/itemcategory/order
controller: App\Controller\ItemcategoryController::order
defaults: { access: admin }
#== BOOKMARK =============================================================================================================================================
#-- Access config
app_admin_bookmark_submit:
path: /admin/bookmark/submit/{idpage}/{idwidget}/{touser}
controller: App\Controller\BookmarkController::submit
defaults: { access: admin }
path: /admin/bookmark/submit/{idpage}/{idwidget}/{touser}
controller: App\Controller\BookmarkController::submit
defaults: { access: admin }
app_admin_bookmark_update:
path: /admin/bookmark/update/{id}/{idpage}/{idwidget}/{touser}
controller: App\Controller\BookmarkController::update
defaults: { access: admin }
path: /admin/bookmark/update/{id}/{idpage}/{idwidget}/{touser}
controller: App\Controller\BookmarkController::update
defaults: { access: admin }
app_admin_bookmark_delete:
path: /admin/bookmark/delete/{id}/{idpage}/{idwidget}/{touser}
controller: App\Controller\BookmarkController::delete
defaults: { access: admin }
path: /admin/bookmark/delete/{id}/{idpage}/{idwidget}/{touser}
controller: App\Controller\BookmarkController::delete
defaults: { access: admin }
app_admin_bookmark_heart:
path: /admin/bookmark/heart
controller: App\Controller\BookmarkController::heart
defaults: { access: admin }
app_admin_bookmark_heart:
path: /admin/bookmark/heart
controller: App\Controller\BookmarkController::heart
defaults: { access: admin }
#-- Access all
#-- Access all
app_all_bookmark_submit:
path: /all/bookmark/submit/{idpage}/{idwidget}/{touser}
controller: App\Controller\BookmarkController::submit
defaults: { access: all }
path: /all/bookmark/submit/{idpage}/{idwidget}/{touser}
controller: App\Controller\BookmarkController::submit
defaults: { access: all }
app_all_bookmark_update:
path: /all/bookmark/update/{id}/{idpage}/{idwidget}/{touser}
controller: App\Controller\BookmarkController::update
defaults: { access: all }
path: /all/bookmark/update/{id}/{idpage}/{idwidget}/{touser}
controller: App\Controller\BookmarkController::update
defaults: { access: all }
app_all_bookmark_delete:
path: /all/bookmark/delete/{id}/{idpage}/{idwidget}/{touser}
controller: App\Controller\BookmarkController::delete
defaults: { access: all }
app_all_bookmark_heart:
path: /all/bookmark/heart
controller: App\Controller\BookmarkController::heart
defaults: { access: all }
path: /all/bookmark/delete/{id}/{idpage}/{idwidget}/{touser}
controller: App\Controller\BookmarkController::delete
defaults: { access: all }
app_all_bookmark_heart:
path: /all/bookmark/heart
controller: App\Controller\BookmarkController::heart
defaults: { access: all }
#== FILE =================================================================================================================
#-- Access admin
app_admin_file_list:
path: /admin/file/list/{category}/{id}
controller: App\Controller\FileController::list
defaults: { access: admin }
path: /admin/file/list/{category}/{id}
controller: App\Controller\FileController::list
defaults: { access: admin }
app_admin_file_upload:
path: /admin/file/upload/{category}/{id}/{type}
controller: App\Controller\FileController::upload
defaults: { access: admin }
path: /admin/file/upload/{category}/{id}/{type}
controller: App\Controller\FileController::upload
defaults: { access: admin }
app_admin_file_folder:
path: /admin/file/folder/{category}/{id}
controller: App\Controller\FileController::folder
defaults: { access: admin }
path: /admin/file/folder/{category}/{id}
controller: App\Controller\FileController::folder
defaults: { access: admin }
app_admin_file_rename:
path: /admin/file/rename/{category}/{id}
controller: App\Controller\FileController::rename
defaults: { access: admin }
path: /admin/file/rename/{category}/{id}
controller: App\Controller\FileController::rename
defaults: { access: admin }
app_admin_file_trash:
path: /admin/file/trash/{category}/{id}
controller: App\Controller\FileController::trash
defaults: { access: admin }
path: /admin/file/trash/{category}/{id}
controller: App\Controller\FileController::trash
defaults: { access: admin }
app_admin_file_restaure:
path: /admin/file/restaure/{category}/{id}
controller: App\Controller\FileController::restaure
defaults: { access: admin }
path: /admin/file/restaure/{category}/{id}
controller: App\Controller\FileController::restaure
defaults: { access: admin }
app_admin_file_purgetrash:
path: /admin/file/purgetrash/{category}/{id}
controller: App\Controller\FileController::purgetrash
defaults: { access: admin }
path: /admin/file/purgetrash/{category}/{id}
controller: App\Controller\FileController::purgetrash
defaults: { access: admin }
app_admin_file_delete:
path: /admin/file/delete/{category}/{id}
controller: App\Controller\FileController::delete
defaults: { access: admin }
path: /admin/file/delete/{category}/{id}
controller: App\Controller\FileController::delete
defaults: { access: admin }
app_admin_file_move:
path: /admin/file/move/{category}/{id}
controller: App\Controller\FileController::move
defaults: { access: admin }
path: /admin/file/move/{category}/{id}
controller: App\Controller\FileController::move
defaults: { access: admin }
app_admin_file_view:
path: /admin/file/view/{category}/{id}
controller: App\Controller\FileController::view
defaults: { access: all }
path: /admin/file/view/{category}/{id}
controller: App\Controller\FileController::view
defaults: { access: all }
app_admin_file_show:
path: /admin/file/show/{category}/{id}
controller: App\Controller\FileController::show
defaults: { access: all }
path: /admin/file/show/{category}/{id}
controller: App\Controller\FileController::show
defaults: { access: all }
app_admin_file_download:
path: /admin/file/download/{category}/{id}
controller: App\Controller\FileController::download
defaults: { access: all }
path: /admin/file/download/{category}/{id}
controller: App\Controller\FileController::download
defaults: { access: all }
#-- Access all
#-- Access all
app_all_file_list:
path: /file/list/{category}/{id}
controller: App\Controller\FileController::list
defaults: { access: all }
path: /file/list/{category}/{id}
controller: App\Controller\FileController::list
defaults: { access: all }
app_all_file_upload:
path: /all/file/upload/{category}/{id}/{type}
controller: App\Controller\FileController::upload
defaults: { access: all }
path: /all/file/upload/{category}/{id}/{type}
controller: App\Controller\FileController::upload
defaults: { access: all }
app_all_file_folder:
path: /all/file/folder/{category}/{id}
controller: App\Controller\FileController::folder
defaults: { access: all }
path: /all/file/folder/{category}/{id}
controller: App\Controller\FileController::folder
defaults: { access: all }
app_all_file_rename:
path: /all/file/rename/{category}/{id}
controller: App\Controller\FileController::rename
defaults: { access: all }
path: /all/file/rename/{category}/{id}
controller: App\Controller\FileController::rename
defaults: { access: all }
app_all_file_trash:
path: /all/file/trash/{category}/{id}
controller: App\Controller\FileController::trash
defaults: { access: all }
path: /all/file/trash/{category}/{id}
controller: App\Controller\FileController::trash
defaults: { access: all }
app_all_file_restaure:
path: /all/file/restaure/{category}/{id}
controller: App\Controller\FileController::restaure
defaults: { access: all }
path: /all/file/restaure/{category}/{id}
controller: App\Controller\FileController::restaure
defaults: { access: all }
app_all_file_purgetrash:
path: /all/file/purgetrash/{category}/{id}
controller: App\Controller\FileController::purgetrash
defaults: { access: all }
path: /all/file/purgetrash/{category}/{id}
controller: App\Controller\FileController::purgetrash
defaults: { access: all }
app_all_file_delete:
path: /all/file/delete/{category}/{id}
controller: App\Controller\FileController::delete
defaults: { access: all }
path: /all/file/delete/{category}/{id}
controller: App\Controller\FileController::delete
defaults: { access: all }
app_all_file_move:
path: /all/file/move/{category}/{id}
controller: App\Controller\FileController::move
defaults: { access: all }
path: /all/file/move/{category}/{id}
controller: App\Controller\FileController::move
defaults: { access: all }
app_all_file_view:
path: /file/view/{category}/{id}
controller: App\Controller\FileController::view
defaults: { access: all }
path: /file/view/{category}/{id}
controller: App\Controller\FileController::view
defaults: { access: all }
app_all_file_show:
path: /file/show/{category}/{id}
controller: App\Controller\FileController::show
defaults: { access: all }
path: /file/show/{category}/{id}
controller: App\Controller\FileController::show
defaults: { access: all }
app_all_file_download:
path: /file/download/{category}/{id}
controller: App\Controller\FileController::download
defaults: { access: all }
path: /file/download/{category}/{id}
controller: App\Controller\FileController::download
defaults: { access: all }
#== PAGEWIDGETSLIDE ================================================================================================================================================
#-- Access admin
app_admin_pagewidgetslide_upload:
path: /admin/pagewidgetslide/upload/{idwidget}
controller: App\Controller\PagewidgetslideController::upload
defaults: { access: admin }
path: /admin/pagewidgetslide/upload/{idwidget}
controller: App\Controller\PagewidgetslideController::upload
defaults: { access: admin }
app_admin_pagewidgetslide_list:
path: /admin/pagewidgetslide/{idwidget}
controller: App\Controller\PagewidgetslideController::list
defaults: { access: admin }
path: /admin/pagewidgetslide/{idwidget}
controller: App\Controller\PagewidgetslideController::list
defaults: { access: admin }
app_admin_pagewidgetslide_submit:
path: /config/pagewidgetslide/submit/{idwidget}
controller: App\Controller\PagewidgetslideController::submit
defaults: { access: admin }
path: /config/pagewidgetslide/submit/{idwidget}
controller: App\Controller\PagewidgetslideController::submit
defaults: { access: admin }
app_admin_pagewidgetslide_update:
path: /admin/pagewidgetslide/update/{idwidget}/{id}
controller: App\Controller\PagewidgetslideController::update
defaults: { access: admin }
path: /admin/pagewidgetslide/update/{idwidget}/{id}
controller: App\Controller\PagewidgetslideController::update
defaults: { access: admin }
app_admin_pagewidgetslide_delete:
path: /admin/pagewidgetslide/delete/{idwidget}/{id}
controller: App\Controller\PagewidgetslideController::delete
defaults: { access: admin }
path: /admin/pagewidgetslide/delete/{idwidget}/{id}
controller: App\Controller\PagewidgetslideController::delete
defaults: { access: admin }
#-- Access all
#-- Access all
app_all_pagewidgetslide_upload:
path: /all/pagewidgetslide/upload/{idwidget}
controller: App\Controller\PagewidgetslideController::upload
defaults: { access: all }
path: /all/pagewidgetslide/upload/{idwidget}
controller: App\Controller\PagewidgetslideController::upload
defaults: { access: all }
app_all_pagewidgetslide_list:
path: /all/pagewidgetslide/{idwidget}
controller: App\Controller\PagewidgetslideController::list
defaults: { access: all }
path: /all/pagewidgetslide/{idwidget}
controller: App\Controller\PagewidgetslideController::list
defaults: { access: all }
app_all_pagewidgetslide_submit:
path: /all/pagewidgetslide/submit/{idwidget}
controller: App\Controller\PagewidgetslideController::submit
defaults: { access: all }
path: /all/pagewidgetslide/submit/{idwidget}
controller: App\Controller\PagewidgetslideController::submit
defaults: { access: all }
app_all_pagewidgetslide_update:
path: /all/pagewidgetslide/update/{idwidget}/{id}
controller: App\Controller\PagewidgetslideController::update
defaults: { access: all }
path: /all/pagewidgetslide/update/{idwidget}/{id}
controller: App\Controller\PagewidgetslideController::update
defaults: { access: all }
app_all_pagewidgetslide_delete:
path: /all/pagewidgetslide/delete/{idwidget}/{id}
controller: App\Controller\PagewidgetslideController::delete
defaults: { access: all }
path: /all/pagewidgetslide/delete/{idwidget}/{id}
controller: App\Controller\PagewidgetslideController::delete
defaults: { access: all }
#== PAGE TEMPLATE ========================================================================================================================================
#-- Access admin
app_admin_page_template:
path: /admin/template
controller: App\Controller\PagetemplateController::list
defaults: { access: admin, usage: template }
path: /admin/template
controller: App\Controller\PagetemplateController::list
defaults: { access: admin, usage: template }
app_admin_page_template_tablelist:
path: /admin/template/tablelist
controller: App\Controller\PagetemplateController::tablelist
defaults: { access: admin, usage: template }
path: /admin/template/tablelist
controller: App\Controller\PagetemplateController::tablelist
defaults: { access: admin, usage: template }
app_admin_template_submit:
path: /admin/template/submit
controller: App\Controller\PagetemplateController::submit
defaults: { access: admin, usage: template }
path: /admin/template/submit
controller: App\Controller\PagetemplateController::submit
defaults: { access: admin, usage: template }
app_admin_page_template_update:
path: /admin/template/update/{id}
controller: App\Controller\PagetemplateController::update
defaults: { access: admin, usage: template }
path: /admin/template/update/{id}
controller: App\Controller\PagetemplateController::update
defaults: { access: admin, usage: template }
app_admin_page_template_delete:
path: /admin/template/delete/{id}
controller: App\Controller\PagetemplateController::delete
defaults: { access: admin, usage: template }
path: /admin/template/delete/{id}
controller: App\Controller\PagetemplateController::delete
defaults: { access: admin, usage: template }
app_admin_page_template_view:
path: /admin/template/view/{id}
controller: App\Controller\PagetemplateController::view
defaults: { access: admin, usage: template }
path: /admin/template/view/{id}
controller: App\Controller\PagetemplateController::view
defaults: { access: admin, usage: template }
#-- Access all
app_all_page_template_selectlist:
path: /all/template/selectlist
controller: App\Controller\PagetemplateController::selectlist
defaults: { access: admin, usage: template }
path: /all/template/selectlist
controller: App\Controller\PagetemplateController::selectlist
defaults: { access: admin, usage: template }
#== PAGE =================================================================================================================================================
#-- Access admin
app_admin_page_portal:
path: /admin/page/
controller: App\Controller\PageController::list
defaults: { access: admin, usage: portal }
path: /admin/page/
controller: App\Controller\PageController::list
defaults: { access: admin, usage: portal }
app_admin_page_portal_tablelist:
path: /admin/page/tablelist
controller: App\Controller\PageController::tablelist
defaults: { access: admin, usage: portal }
path: /admin/page/tablelist
controller: App\Controller\PageController::tablelist
defaults: { access: admin, usage: portal }
app_admin_page_portal_submit:
path: /admin/page/submit
controller: App\Controller\PageController::submit
defaults: { access: admin, usage: portal }
path: /admin/page/submit
controller: App\Controller\PageController::submit
defaults: { access: admin, usage: portal }
app_admin_page_portal_update:
path: /admin/page/update/{id}
controller: App\Controller\PageController::update
defaults: { access: admin, usage: portal }
path: /admin/page/update/{id}
controller: App\Controller\PageController::update
defaults: { access: admin, usage: portal }
app_admin_page_portal_delete:
path: /admin/page/delete/{id}
controller: App\Controller\PageController::delete
defaults: { access: admin, usage: portal }
path: /admin/page/delete/{id}
controller: App\Controller\PageController::delete
defaults: { access: admin, usage: portal }
app_admin_page_portal_view:
path: /admin/page/view/{id}
controller: App\Controller\PageController::view
defaults: { access: admin, usage: portal }
path: /admin/page/view/{id}
controller: App\Controller\PageController::view
defaults: { access: admin, usage: portal }
app_admin_page_portal_order:
path: /admin/page/order
controller: App\Controller\PageController::order
defaults: { access: admin, usage: portal }
path: /admin/page/order
controller: App\Controller\PageController::order
defaults: { access: admin, usage: portal }
#-- Access all
# usage=user
# usage=user
app_all_page_user_submit:
path: /all/page/user/submit
controller: App\Controller\PageController::submit
defaults: { access: all, usage: user }
path: /all/page/user/submit
controller: App\Controller\PageController::submit
defaults: { access: all, usage: user }
app_all_page_user_update:
path: /all/page/user/update/{id}
controller: App\Controller\PageController::update
defaults: { access: all, usage: user }
path: /all/page/user/update/{id}
controller: App\Controller\PageController::update
defaults: { access: all, usage: user }
app_all_page_user_delete:
path: /all/page/user/delete/{id}
controller: App\Controller\PageController::delete
defaults: { access: all, usage: user }
path: /all/page/user/delete/{id}
controller: App\Controller\PageController::delete
defaults: { access: all, usage: user }
app_all_page_user_order:
path: /all/page/user/order
controller: App\Controller\PageController::order
defaults: { access: all, usage: user }
path: /all/page/user/order
controller: App\Controller\PageController::order
defaults: { access: all, usage: user }
# usage=group
# usage=group
app_all_page_group_submit:
path: /all/page/group/submit
controller: App\Controller\PageController::submit
defaults: { access: all, usage: group }
path: /all/page/group/submit
controller: App\Controller\PageController::submit
defaults: { access: all, usage: group }
app_all_page_group_update:
path: /all/page/group/update/{id}
controller: App\Controller\PageController::update
defaults: { access: all, usage: group }
path: /all/page/group/update/{id}
controller: App\Controller\PageController::update
defaults: { access: all, usage: group }
app_all_page_group_delete:
path: /all/page/group/delete/{id}
controller: App\Controller\PageController::delete
defaults: { access: all, usage: group }
path: /all/page/group/delete/{id}
controller: App\Controller\PageController::delete
defaults: { access: all, usage: group }
app_all_page_group_order:
path: /all/page/group/order
controller: App\Controller\PageController::order
defaults: { access: all, usage: group }
path: /all/page/group/order
controller: App\Controller\PageController::order
defaults: { access: all, usage: group }
#-- Access visitor
# usage=portal
app_all_page_portal_view:
path: /page/portal/view/{id}
controller: App\Controller\PageController::view
defaults: { access: all, usage: portal }
path: /page/portal/view/{id}
controller: App\Controller\PageController::view
defaults: { access: all, usage: portal }
# usage=user
app_all_page_user_view:
path: /page/user/view/{id}
controller: App\Controller\PageController::view
defaults: { access: all, usage: user }
path: /page/user/view/{id}
controller: App\Controller\PageController::view
defaults: { access: all, usage: user }
# usage=group
app_all_page_group_view:
path: /page/group/view/{id}
controller: App\Controller\PageController::view
defaults: { access: all, usage: group }
path: /page/group/view/{id}
controller: App\Controller\PageController::view
defaults: { access: all, usage: group }
#-- Page spécifique
app_all_page_application:
path: /page/application
controller: App\Controller\PageController::application
defaults: { access: all }
path: /page/application
controller: App\Controller\PageController::application
defaults: { access: all }
#== PAGE WIDGET ==========================================================================================================================================
#-- Access admin
app_admin_pagewidget_widget_sumbit:
path: /admin/pagewidget/submit/{idpage}/{idwidgettype}
controller: App\Controller\PagewidgetController::submit
defaults: { access: admin }
path: /admin/pagewidget/submit/{idpage}/{idwidgettype}
controller: App\Controller\PagewidgetController::submit
defaults: { access: admin }
app_admin_pagewidget_widget_update:
path: /admin/pagewidget/update/{idpage}/{idwidget}
controller: App\Controller\PagewidgetController::update
defaults: { access: admin }
path: /admin/pagewidget/update/{idpage}/{idwidget}
controller: App\Controller\PagewidgetController::update
defaults: { access: admin }
app_admin_pagewidget_delete:
path: /admin/pagewidget/delete/{idwidget}
controller: App\Controller\PagewidgetController::delete
defaults: { access: admin }
path: /admin/pagewidget/delete/{idwidget}
controller: App\Controller\PagewidgetController::delete
defaults: { access: admin }
app_admin_pagewidget_order:
path: /admin/pagewidget/order
controller: App\Controller\PagewidgetController::order
defaults: { access: admin }
path: /admin/pagewidget/order
controller: App\Controller\PagewidgetController::order
defaults: { access: admin }
app_admin_pagewidget_ckeditor:
path: /admin/pagewidget/ckeditor/{idwidget}
controller: App\Controller\PagewidgetController::ckeditor
defaults: { access: admin }
path: /admin/pagewidget/ckeditor/{idwidget}
controller: App\Controller\PagewidgetController::ckeditor
defaults: { access: admin }
app_admin_pagewidget_view_url:
path: /admin/pagewidget/view/url/{id}
controller: App\Controller\PagewidgetController::viewurl
defaults: { access: admin }
path: /admin/pagewidget/view/url/{id}
controller: App\Controller\PagewidgetController::viewurl
defaults: { access: admin }
app_admin_pagewidget_view_urlfixe:
path: /admin/pagewidget/view/urlfixe/{id}
controller: App\Controller\PagewidgetController::viewurlfixe
defaults: { access: admin }
path: /admin/pagewidget/view/urlfixe/{id}
controller: App\Controller\PagewidgetController::viewurlfixe
defaults: { access: admin }
app_admin_pagewidget_view_item:
path: /admin/pagewidget/view/item/{id}
controller: App\Controller\PagewidgetController::viewitem
defaults: { access: admin }
path: /admin/pagewidget/view/item/{id}
controller: App\Controller\PagewidgetController::viewitem
defaults: { access: admin }
app_admin_pagewidget_view_itemessential:
path: /admin/pagewidget/view/itemessential/{id}
controller: App\Controller\PagewidgetController::viewitemessential
defaults: { access: admin }
path: /admin/pagewidget/view/itemessential/{id}
controller: App\Controller\PagewidgetController::viewitemessential
defaults: { access: admin }
app_admin_pagewidget_view_alert:
path: /admin/pagewidget/view/alert/{id}
controller: App\Controller\PagewidgetController::viewalert
defaults: { access: admin }
path: /admin/pagewidget/view/alert/{id}
controller: App\Controller\PagewidgetController::viewalert
defaults: { access: admin }
app_admin_pagewidget_view_flux:
path: /admin/pagewidget/view/flux/{id}
controller: App\Controller\PagewidgetController::viewflux
defaults: { access: admin }
path: /admin/pagewidget/view/flux/{id}
controller: App\Controller\PagewidgetController::viewflux
defaults: { access: admin }
app_admin_pagewidget_view_rss:
path: /admin/pagewidget/view/rss/{id}
controller: App\Controller\PagewidgetController::viewrss
defaults: { access: admin }
path: /admin/pagewidget/view/rss/{id}
controller: App\Controller\PagewidgetController::viewrss
defaults: { access: admin }
app_admin_pagewidget_view_bookmark:
path: /admin/pagewidget/view/bookmark/{id}
controller: App\Controller\PagewidgetController::viewbookmark
defaults: { access: admin }
path: /admin/pagewidget/view/bookmark/{id}
controller: App\Controller\PagewidgetController::viewbookmark
defaults: { access: admin }
app_admin_pagewidget_view_link:
path: /admin/pagewidget/view/link/{id}
controller: App\Controller\PagewidgetController::viewlink
defaults: { access: admin }
path: /admin/pagewidget/view/link/{id}
controller: App\Controller\PagewidgetController::viewlink
defaults: { access: admin }
app_admin_pagewidget_view_editor:
path: /admin/pagewidget/view/editor/{id}
controller: App\Controller\PagewidgetController::vieweditor
defaults: { access: admin }
path: /admin/pagewidget/view/editor/{id}
controller: App\Controller\PagewidgetController::vieweditor
defaults: { access: admin }
app_admin_pagewidget_view_slide:
path: /admin/pagewidget/view/pagewidgetslide/{id}
controller: App\Controller\PagewidgetController::viewslide
defaults: { access: admin }
path: /admin/pagewidget/view/pagewidgetslide/{id}
controller: App\Controller\PagewidgetController::viewslide
defaults: { access: admin }
app_admin_pagewidget_view_file:
path: /admin/pagewidget/view/file/{id}
controller: App\Controller\PagewidgetController::viewfile
defaults: { access: admin }
path: /admin/pagewidget/view/file/{id}
controller: App\Controller\PagewidgetController::viewfile
defaults: { access: admin }
app_admin_pagewidget_view_galery:
path: /admin/pagewidget/view/galery/{id}
controller: App\Controller\PagewidgetController::viewgalery
defaults: { access: admin }
path: /admin/pagewidget/view/galery/{id}
controller: App\Controller\PagewidgetController::viewgalery
defaults: { access: admin }
app_admin_pagewidget_view_calendar:
path: /admin/pagewidget/view/calendar/{id}
controller: App\Controller\PagewidgetController::viewcalendar
defaults: { access: admin }
path: /admin/pagewidget/view/calendar/{id}
controller: App\Controller\PagewidgetController::viewcalendar
defaults: { access: admin }
app_admin_pagewidget_view_blog:
path: /admin/pagewidget/view/blog/{id}
controller: App\Controller\PagewidgetController::viewblog
defaults: { access: admin }
path: /admin/pagewidget/view/blog/{id}
controller: App\Controller\PagewidgetController::viewblog
defaults: { access: admin }
app_admin_pagewidget_view_project:
path: /admin/pagewidget/view/project/{id}
controller: App\Controller\PagewidgetController::viewproject
defaults: { access: admin }
path: /admin/pagewidget/view/project/{id}
controller: App\Controller\PagewidgetController::viewproject
defaults: { access: admin }
app_admin_pagewidget_view_info:
path: /admin/pagewidget/view/info/{id}
controller: App\Controller\PagewidgetController::viewinfo
defaults: { access: admin }
path: /admin/pagewidget/view/info/{id}
controller: App\Controller\PagewidgetController::viewinfo
defaults: { access: admin }
app_admin_pagewidget_view_chat:
path: /admin/pagewidget/view/chat/{id}
controller: App\Controller\PagewidgetController::viewchat
defaults: { access: admin }
path: /admin/pagewidget/view/chat/{id}
controller: App\Controller\PagewidgetController::viewchat
defaults: { access: admin }
app_admin_pagewidget_view_group:
path: /admin/pagewidget/view/group/{id}
controller: App\Controller\PagewidgetController::viewgroup
defaults: { access: admin }
path: /admin/pagewidget/view/group/{id}
controller: App\Controller\PagewidgetController::viewgroup
defaults: { access: admin }
app_admin_pagewidget_view_groupmessage:
path: /admin/pagewidget/view/groupmessage/{id}
controller: App\Controller\PagewidgetController::viewgroupmessage
defaults: { access: admin }
path: /admin/pagewidget/view/groupmessage/{id}
controller: App\Controller\PagewidgetController::viewgroupmessage
defaults: { access: admin }
#-- Access all
#-- Access all
app_all_pagewidget_widget_sumbit:
path: /all/pagewidget/submit/{idpage}/{idwidgettype}
controller: App\Controller\PagewidgetController::submit
defaults: { access: all }
path: /all/pagewidget/submit/{idpage}/{idwidgettype}
controller: App\Controller\PagewidgetController::submit
defaults: { access: all }
app_all_pagewidget_widget_update:
path: /all/pagewidget/update/{idpage}/{idwidget}
controller: App\Controller\PagewidgetController::update
defaults: { access: all }
path: /all/pagewidget/update/{idpage}/{idwidget}
controller: App\Controller\PagewidgetController::update
defaults: { access: all }
app_all_pagewidget_delete:
path: /all/pagewidget/delete/{idwidget}
controller: App\Controller\PagewidgetController::delete
defaults: { access: all }
path: /all/pagewidget/delete/{idwidget}
controller: App\Controller\PagewidgetController::delete
defaults: { access: all }
app_all_pagewidget_order:
path: /all/pagewidget/order
controller: App\Controller\PagewidgetController::order
defaults: { access: all }
path: /all/pagewidget/order
controller: App\Controller\PagewidgetController::order
defaults: { access: all }
app_all_pagewidget_ckeditor:
path: /all/pagewidget/ckeditor/{idwidget}
controller: App\Controller\PagewidgetController::ckeditor
defaults: { access: all }
path: /all/pagewidget/ckeditor/{idwidget}
controller: App\Controller\PagewidgetController::ckeditor
defaults: { access: all }
app_all_pagewidget_view_url:
path: /pagewidget/view/url/{id}
controller: App\Controller\PagewidgetController::viewurl
defaults: { access: all }
path: /pagewidget/view/url/{id}
controller: App\Controller\PagewidgetController::viewurl
defaults: { access: all }
app_all_pagewidget_view_urlfixe:
path: /pagewidget/view/urlfixe/{id}
controller: App\Controller\PagewidgetController::viewurlfixe
defaults: { access: all }
path: /pagewidget/view/urlfixe/{id}
controller: App\Controller\PagewidgetController::viewurlfixe
defaults: { access: all }
app_all_pagewidget_view_item:
path: /pagewidget/view/item/{id}
controller: App\Controller\PagewidgetController::viewitem
defaults: { access: all }
path: /pagewidget/view/item/{id}
controller: App\Controller\PagewidgetController::viewitem
defaults: { access: all }
app_all_pagewidget_view_itemessential:
path: /pagewidget/view/itemessential/{id}
controller: App\Controller\PagewidgetController::viewitemessential
defaults: { access: all }
path: /pagewidget/view/itemessential/{id}
controller: App\Controller\PagewidgetController::viewitemessential
defaults: { access: all }
app_all_pagewidget_view_alert:
path: /pagewidget/view/alert/{id}
controller: App\Controller\PagewidgetController::viewalert
defaults: { access: all }
path: /pagewidget/view/alert/{id}
controller: App\Controller\PagewidgetController::viewalert
defaults: { access: all }
app_all_pagewidget_view_flux:
path: /pagewidget/view/flux/{id}
controller: App\Controller\PagewidgetController::viewflux
defaults: { access: all }
path: /pagewidget/view/flux/{id}
controller: App\Controller\PagewidgetController::viewflux
defaults: { access: all }
app_all_pagewidget_view_rss:
path: /pagewidget/view/rss/{id}
controller: App\Controller\PagewidgetController::viewrss
defaults: { access: all }
path: /pagewidget/view/rss/{id}
controller: App\Controller\PagewidgetController::viewrss
defaults: { access: all }
app_all_pagewidget_view_bookmark:
path: /pagewidget/view/bookmark/{id}
controller: App\Controller\PagewidgetController::viewbookmark
defaults: { access: all }
path: /pagewidget/view/bookmark/{id}
controller: App\Controller\PagewidgetController::viewbookmark
defaults: { access: all }
app_all_pagewidget_view_link:
path: /pagewidget/view/link/{id}
controller: App\Controller\PagewidgetController::viewlink
defaults: { access: all }
path: /pagewidget/view/link/{id}
controller: App\Controller\PagewidgetController::viewlink
defaults: { access: all }
app_all_pagewidget_view_editor:
path: /pagewidget/view/editor/{id}
controller: App\Controller\PagewidgetController::vieweditor
defaults: { access: all }
path: /pagewidget/view/editor/{id}
controller: App\Controller\PagewidgetController::vieweditor
defaults: { access: all }
app_all_pagewidget_view_slide:
path: /pagewidget/view/pagewidgetslide/{id}
controller: App\Controller\PagewidgetController::viewslide
defaults: { access: all }
path: /pagewidget/view/pagewidgetslide/{id}
controller: App\Controller\PagewidgetController::viewslide
defaults: { access: all }
app_all_pagewidget_view_file:
path: /pagewidget/view/file/{id}
controller: App\Controller\PagewidgetController::viewfile
defaults: { access: all }
path: /pagewidget/view/file/{id}
controller: App\Controller\PagewidgetController::viewfile
defaults: { access: all }
app_all_pagewidget_view_galery:
path: /pagewidget/view/galery/{id}
controller: App\Controller\PagewidgetController::viewgalery
defaults: { access: all }
path: /pagewidget/view/galery/{id}
controller: App\Controller\PagewidgetController::viewgalery
defaults: { access: all }
app_all_pagewidget_view_calendar:
path: /pagewidget/view/calendar/{id}
controller: App\Controller\PagewidgetController::viewcalendar
defaults: { access: all }
path: /pagewidget/view/calendar/{id}
controller: App\Controller\PagewidgetController::viewcalendar
defaults: { access: all }
app_all_pagewidget_view_blog:
path: /pagewidget/view/blog/{id}
controller: App\Controller\PagewidgetController::viewblog
defaults: { access: all }
path: /pagewidget/view/blog/{id}
controller: App\Controller\PagewidgetController::viewblog
defaults: { access: all }
app_all_pagewidget_view_project:
path: /pagewidget/view/project/{id}
controller: App\Controller\PagewidgetController::viewproject
defaults: { access: all }
path: /pagewidget/view/project/{id}
controller: App\Controller\PagewidgetController::viewproject
defaults: { access: all }
app_all_pagewidget_view_info:
path: /pagewidget/view/info/{id}
controller: App\Controller\PagewidgetController::viewinfo
defaults: { access: all }
path: /pagewidget/view/info/{id}
controller: App\Controller\PagewidgetController::viewinfo
defaults: { access: all }
app_all_pagewidget_view_chat:
path: /pagewidget/view/chat/{id}
controller: App\Controller\PagewidgetController::viewchat
defaults: { access: all }
path: /pagewidget/view/chat/{id}
controller: App\Controller\PagewidgetController::viewchat
defaults: { access: all }
app_all_pagewidget_view_group:
path: /pagewidget/view/group/{id}
controller: App\Controller\PagewidgetController::viewgroup
defaults: { access: all }
path: /pagewidget/view/group/{id}
controller: App\Controller\PagewidgetController::viewgroup
defaults: { access: all }
app_all_pagewidget_view_groupmessage:
path: /pagewidget/view/groupmessage/{id}
controller: App\Controller\PagewidgetController::viewgroupmessage
defaults: { access: all }
path: /pagewidget/view/groupmessage/{id}
controller: App\Controller\PagewidgetController::viewgroupmessage
defaults: { access: all }
#== DOCUMENT ================================================================================================================
#-- Access admin
app_admin_document:
path: /admin/document
controller: App\Controller\DocumentController::list
defaults: { access: admin }
app_admin_document_submit:
path: /admin/document/submit
controller: App\Controller\DocumentController::submit
defaults: { access: admin }
app_admin_document_update:
path: /admin/document/update/{id}
controller: App\Controller\DocumentController::update
defaults: { access: admin }
app_admin_document_delete:
path: /admin/document/delete/{id}
controller: App\Controller\DocumentController::delete
app_admin_document_render:
path: /admin/document/render/{idcategory}
controller: App\Controller\DocumentController::renderid
defaults: { access: admin }
#== DOCUMENTCATEGORY ========================================================================================================
#-- Access admin
app_admin_documentcategory:
path: /admin/documentcategory
controller: App\Controller\DocumentcategoryController::list
defaults: { access: admin }
app_admin_documentcategory_submit:
path: /admin/documentcategory/submit
controller: App\Controller\DocumentcategoryController::submit
defaults: { access: admin }
app_admin_documentcategory_update:
path: /admin/documentcategory/update/{id}
controller: App\Controller\DocumentcategoryController::update
defaults: { access: admin }
app_admin_documentcategory_delete:
path: /admin/documentcategory/delete/{id}
controller: App\Controller\DocumentcategoryController::delete
defaults: { access: admin }
app_admin_documentcategory_render:
path: /admin/documentcategory/render/{id}
controller: App\Controller\DocumentcategoryController::renderid
defaults: { access: admin }
app_admin_documentcategory_order:
path: /admin/documentcategory/order
controller: App\Controller\DocumentcategoryController::order
defaults: { access: admin }

View File

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

View File

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

View File

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

View File

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

17
misc/docker/Dockerfile Normal file
View File

@ -0,0 +1,17 @@
FROM reg.cadoles.com/envole/nineapache:8.1
COPY ./misc/docker/apache.conf /etc/apache2/conf.d/nine/site.conf
RUN echo "* * * * * /app/bin/console app:Cron --env=prod" >> /var/spool/cron/crontabs/root
WORKDIR /app
COPY . .
# Installation des dépendances composer
RUN composer install --no-interaction
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

19
misc/docker/apache.conf Executable file
View File

@ -0,0 +1,19 @@
LoadModule rewrite_module modules/mod_rewrite.so
ServerName nineapache.local
DocumentRoot "/app/public"
Alias /nineskeletor /app/public
<Directory "/app/public">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
RewriteEngine On
RewriteCond %{REQUEST_URI}::$0 ^(/.+)/(.*)::\2$
RewriteRule .* - [E=BASE:%1]
RewriteCond %{HTTP:Authorization} .+
RewriteRule ^ - [E=HTTP_AUTHORIZATION:%0]
RewriteCond %{ENV:REDIRECT_STATUS} =""
RewriteRule ^index\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ %{ENV:BASE}/index.php [L]
</Directory>

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)
bin/console d:s:u --force --complete
yarn encore prod
bin/console app:Init
bin/console app:Cron
exec $@

View File

@ -25,6 +25,7 @@
"ckeditor4": "^4.19.0",
"crop-select-js": "^1.0.1",
"datatables.net-bs4": "^1.12.1",
"dotenv": "^16.4.5",
"dropzone": "^6.0.0-beta.2",
"file-loader": "^6.2.0",
"iframe-resizer": "^4.3.2",

8
phpstan.dist.neon Normal file
View File

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

View File

@ -108,7 +108,7 @@ class InitCommand extends Command
if (!$niveau01) {
$niveau01 = new Niveau01();
$niveau01->setId(-1);
$niveau01->setLabel($this->appname);
$niveau01->setLabel("Nineskeletor");
$niveau01->setApikey(Uuid::uuid4());
$this->em->persist($niveau01);
$this->em->flush();

View File

@ -0,0 +1,137 @@
<?php
namespace App\Controller;
use App\Entity\Document;
use App\Form\DocumentType;
use Doctrine\Persistence\ManagerRegistry;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
class DocumentController extends AbstractController
{
private $data = 'document';
private $entity = "App\Entity\Document";
private $twig = 'Document/';
private $route = 'app_admin_document';
public function list($access, ManagerRegistry $em): Response
{
$documentcategorys = $em->getRepository("App\Entity\Documentcategory")->findBy(['parent' => null], ['roworder' => 'ASC']);
$datas = $em->getRepository("App\Entity\Document")->findAll(['documentcategory' => null], ['roworder' => 'ASC']);
return $this->render($this->twig.'list.html.twig', [
'useheader' => true,
'usemenu' => false,
'usesidebar' => ('admin' == $access),
'access' => $access,
'documentcategorys' => $documentcategorys,
$this->data.'s' => $datas,
]);
}
public function submit($access, Request $request, ManagerRegistry $em): Response
{
// Initialisation de l'enregistrement
$data = new Document();
$data->setRoworder(0);
// Création du formulaire
$form = $this->createForm(DocumentType::class, $data, ['mode' => 'submit', 'access' => $access]);
// Récupération des data du formulaire
$form->handleRequest($request);
// Sur validation
if ($form->get('submit')->isClicked() && $form->isValid()) {
$data = $form->getData();
// Sauvegarde
$em->getManager()->persist($data);
$em->getManager()->flush();
// Retour à la liste
return $this->redirectToRoute(str_replace('_admin_', '_'.$access.'_', $this->route));
}
// Affichage du formulaire
return $this->render($this->twig.'edit.html.twig', [
'useheader' => true,
'usemenu' => false,
'usesidebar' => ('admin' == $access),
'access' => $access,
$this->data => $data,
'mode' => 'submit',
'form' => $form->createView(),
]);
}
public function update($id, $access, Request $request, ManagerRegistry $em): Response
{
// Initialisation de l'enregistrement
$data = $em->getRepository($this->entity)->find($id);
if (!$data) {
throw $this->createNotFoundException('Unable to find entity.');
}
// Création du formulaire
$form = $this->createForm(DocumentType::class, $data, ['mode' => 'update']);
// Récupération des data du formulaire
$form->handleRequest($request);
// Sur validation
if ($form->get('submit')->isClicked() && $form->isValid()) {
$data = $form->getData();
// Sauvegarde
$em->getManager()->flush();
// Retour à la liste
return $this->redirectToRoute(str_replace('_admin_', '_'.$access.'_', $this->route));
}
// Affichage du formulaire
return $this->render($this->twig.'edit.html.twig', [
'useheader' => true,
'usemenu' => false,
'usesidebar' => ('admin' == $access),
'access' => $access,
$this->data => $data,
'mode' => 'update',
'form' => $form->createView(),
]);
}
public function delete($id, $access, Request $request, ManagerRegistry $em): Response
{
// Initialisation de l'enregistrement
$data = $em->getRepository($this->entity)->find($id);
if (!$data) {
throw $this->createNotFoundException('Unable to find entity.');
}
// Tentative de suppression
try {
$em->getManager()->remove($data);
$em->getManager()->flush();
} catch (\Exception $e) {
$request->getSession()->getFlashBag()->add('error', $e->getMessage());
return $this->redirectToRoute($this->route.'_update', ['id' => $id]);
}
return $this->redirectToRoute(str_replace('_admin_', '_'.$access.'_', $this->route));
}
public function renderid($idcategory, $access, ManagerRegistry $em): Response
{
$data = $em->getRepository("App\Entity\Documentcategory")->find($idcategory);
return $this->render($this->twig.'render.html.twig', [
'access' => $access,
'documentcategory' => $data,
]);
}
}

View File

@ -0,0 +1,159 @@
<?php
namespace App\Controller;
use App\Entity\Documentcategory;
use App\Form\DocumentcategoryType;
use Doctrine\Persistence\ManagerRegistry;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
class DocumentcategoryController extends AbstractController
{
private $data = 'documentcategory';
private $entity = "App\Entity\Documentcategory";
private $twig = 'Documentcategory/';
private $route = 'app_admin_documentcategory';
public function list($access, ManagerRegistry $em): Response
{
$datas = $em->getRepository($this->entity)->findBy(['parent' => null], ['roworder' => 'ASC']);
return $this->render($this->twig.'list.html.twig', [
'useheader' => true,
'usemenu' => false,
'usesidebar' => ('admin' == $access),
'access' => $access,
$this->data.'s' => $datas,
]);
}
public function renderid($id, $access, ManagerRegistry $em): Response
{
$data = $em->getRepository($this->entity)->find($id);
return $this->render($this->twig.'render.html.twig', [
'access' => $access,
$this->data => $data,
]);
}
public function submit($access, Request $request, ManagerRegistry $em): Response
{
// Initialisation de l'enregistrement
$data = new Documentcategory();
$data->setRoworder(0);
// Création du formulaire
$form = $this->createForm(DocumentcategoryType::class, $data, ['mode' => 'submit', 'access' => $access]);
// Récupération des data du formulaire
$form->handleRequest($request);
// Sur validation
if ($form->get('submit')->isClicked() && $form->isValid()) {
$data = $form->getData();
// Sauvegarde
$em->getManager()->persist($data);
$em->getManager()->flush();
// Retour à la liste
return $this->redirectToRoute(str_replace('_admin_', '_'.$access.'_', $this->route));
}
// Affichage du formulaire
return $this->render($this->twig.'edit.html.twig', [
'useheader' => true,
'usemenu' => false,
'usesidebar' => ('admin' == $access),
'access' => $access,
$this->data => $data,
'mode' => 'submit',
'form' => $form->createView(),
]);
}
public function update($id, $access, Request $request, ManagerRegistry $em): Response
{
// Initialisation de l'enregistrement
$data = $em->getRepository($this->entity)->find($id);
if (!$data) {
throw $this->createNotFoundException('Unable to find entity.');
}
// Création du formulaire
$form = $this->createForm(DocumentcategoryType::class, $data, ['mode' => 'update']);
// Récupération des data du formulaire
$form->handleRequest($request);
// Sur validation
if ($form->get('submit')->isClicked() && $form->isValid()) {
$data = $form->getData();
// Sauvegarde
$em->getManager()->flush();
// Retour à la liste
return $this->redirectToRoute(str_replace('_admin_', '_'.$access.'_', $this->route));
}
// Affichage du formulaire
return $this->render($this->twig.'edit.html.twig', [
'useheader' => true,
'usemenu' => false,
'usesidebar' => ('admin' == $access),
'access' => $access,
$this->data => $data,
'mode' => 'update',
'form' => $form->createView(),
]);
}
public function delete($id, $access, Request $request, ManagerRegistry $em): Response
{
// Initialisation de l'enregistrement
$data = $em->getRepository($this->entity)->find($id);
if (!$data) {
throw $this->createNotFoundException('Unable to find entity.');
}
// Tentative de suppression
try {
$em->getManager()->remove($data);
$em->getManager()->flush();
} catch (\Exception $e) {
$request->getSession()->getFlashBag()->add('error', $e->getMessage());
return $this->redirectToRoute($this->route.'_update', ['id' => $id]);
}
return $this->redirectToRoute(str_replace('_admin_', '_'.$access.'_', $this->route));
}
public function order($access, Request $request, ManagerRegistry $em): Response
{
$output = [];
$id = $request->request->get('id');
$parent = $request->request->get('parent');
$roworder = $request->request->get('roworder');
$data = $em->getRepository($this->entity)->find($id);
if (!$data) {
throw $this->createNotFoundException('Unable to find entity.');
}
if ($parent) {
$parent = $em->getRepository($this->entity)->find($parent);
}
$data->setRoworder($roworder);
$data->setParent($parent);
$em->getManager()->flush();
return new JsonResponse($output);
}
}

View File

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

View File

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

View File

@ -81,9 +81,10 @@ class SecurityController extends AbstractController
$appMasteridentity = $this->getParameter('appMasteridentity');
// Init Client CAS
$alias = $this->getParameter('appAlias');
\phpCAS::setDebug($this->appKernel->getProjectDir().'/var/log/cas.log');
\phpCAS::client(CAS_VERSION_2_0, $this->getParameter('casHost'), intval($this->getParameter('casPort')), is_null($this->getParameter('casPath')) ? '' : $this->getParameter('casPath'), false);
$url=$this->getHost($request);
$url=str_replace("http://",$this->getParameter("protocole")."://",$url);
$url=str_replace("https://",$this->getParameter("protocole")."://",$url);
\phpCAS::client(CAS_VERSION_2_0, $this->getParameter('casHost'), intval($this->getParameter('casPort')), is_null($this->getParameter('casPath')) ? '' : $this->getParameter('casPath'), $url, false);
\phpCAS::setNoCasServerValidation();
// Authentification
@ -237,6 +238,7 @@ class SecurityController extends AbstractController
$callback = $this->generateUrl('app_loginopenidcallback', [], UrlGeneratorInterface::ABSOLUTE_URL);
$apiurl = $this->getParameter('oauthTokenurl');
$query = [
'grant_type' => 'authorization_code',
'code' => $request->get('code'),
@ -244,10 +246,10 @@ class SecurityController extends AbstractController
'client_id' => $this->getParameter('oauthClientid'),
'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) {
exit('pb openid 01');
exit('pb openid 01 <a href="/login">login</a>');
}
$accesstoken = $response->body->access_token;
$accesstokentype = $response->body->token_type;
@ -257,10 +259,9 @@ class SecurityController extends AbstractController
$request->getSession()->set('oauthIdtoken', $îdtoken);
$apiurl = $this->getParameter('oauthUserinfo');
$response = $this->apiservice->run('GET', $apiurl, null, ['Authorization' => $accesstokentype.' '.$accesstoken]);
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);
@ -352,14 +353,17 @@ class SecurityController extends AbstractController
$request->getSession()->invalidate();
// Init Client CAS
$alias = $this->getParameter('appAlias');
\phpCAS::setDebug($this->appKernel->getProjectDir().'/var/log/cas.log');
\phpCAS::client(CAS_VERSION_2_0, $this->getParameter('casHost'), intval($this->getParameter('casPort')), is_null($this->getParameter('casPath')) ? '' : $this->getParameter('casPath'), false);
$url=$this->getHost($request);
$url=str_replace("http://",$this->getParameter("protocole")."://",$url);
$url=str_replace("https://",$this->getParameter("protocole")."://",$url);
\phpCAS::client(CAS_VERSION_2_0, $this->getParameter('casHost'), intval($this->getParameter('casPort')), is_null($this->getParameter('casPath')) ? '' : $this->getParameter('casPath'), $url, false);
\phpCAS::setNoCasServerValidation();
// Logout
$url = $this->generateUrl('app_home', [], UrlGeneratorInterface::ABSOLUTE_URL);
\phpCAS::logout(['service' => $url]);
$url=$this->generateUrl('app_home', array(), UrlGeneratorInterface::ABSOLUTE_URL);
$url=str_replace("http://",$this->getParameter("protocole")."://",$url);
$url=str_replace("https://",$this->getParameter("protocole")."://",$url);
\phpCAS::logout(array("service"=>$url));
return true;
}
@ -576,4 +580,12 @@ class SecurityController extends AbstractController
return $this->redirect($this->generateUrl('app_home'));
}
}
private function getHost($request) {
$host = $request->getHost();
$protocol = $request->getScheme();
$port = $request->getPort();
return $protocol."://".$host.($port!=80&&$port!=443?":".$port:"");
}
}

View File

@ -3,6 +3,8 @@
namespace App\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
/**

View File

@ -2,6 +2,8 @@
namespace App\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**

View File

@ -2,6 +2,7 @@
namespace App\Entity;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
/**

View File

@ -2,6 +2,7 @@
namespace App\Entity;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
/**

View File

@ -2,6 +2,7 @@
namespace App\Entity;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;

224
src/Entity/Document.php Executable file
View File

@ -0,0 +1,224 @@
<?php
namespace App\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* Document.
*
* @ORM\Entity
* @ORM\Table(name="document")
*/
class Document
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="label", type="string", length=100)
*/
private $label;
/**
* @var int
*
* @ORM\Column(name="roworder", type="integer")
*/
private $roworder;
/**
* @ORM\ManyToOne(targetEntity="User", inversedBy="documents")
* @ORM\JoinColumn(nullable=true, onDelete="SET NULL")
*/
private $user;
/**
* @ORM\ManyToOne(targetEntity="Documentcategory", inversedBy="documents")
*/
private $documentcategory;
/**
* @var ArrayCollection
* @var Document
*
* @ORM\OneToMany(targetEntity="Document", mappedBy="documentcategory", cascade={"persist"}, orphanRemoval=false)
*/
private $documents;
/**
* @var ArrayCollection
* @var Documentelement
*
* @ORM\OneToMany(targetEntity="Documentelement", mappedBy="parent", cascade={"persist"}, orphanRemoval=true)
*/
private $parents;
/**
* @var ArrayCollection
* @var Documentelement
*
* @ORM\OneToMany(targetEntity="Documentelement", mappedBy="child", cascade={"persist"}, orphanRemoval=true)
*/
private $childs;
public function __construct()
{
$this->documents = new ArrayCollection();
$this->parents = new ArrayCollection();
$this->childs = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
public function getLabel(): ?string
{
return $this->label;
}
public function setLabel(string $label): self
{
$this->label = $label;
return $this;
}
public function getRoworder(): ?int
{
return $this->roworder;
}
public function setRoworder(int $roworder): self
{
$this->roworder = $roworder;
return $this;
}
public function getUser(): ?User
{
return $this->user;
}
public function setUser(?User $user): self
{
$this->user = $user;
return $this;
}
public function getDocumentcategory(): ?Documentcategory
{
return $this->documentcategory;
}
public function setDocumentcategory(?Documentcategory $documentcategory): self
{
$this->documentcategory = $documentcategory;
return $this;
}
/**
* @return Collection<int, Document>
*/
public function getDocuments(): Collection
{
return $this->documents;
}
public function addDocument(Document $document): self
{
if (!$this->documents->contains($document)) {
$this->documents->add($document);
$document->setDocumentcategory($this);
}
return $this;
}
public function removeDocument(Document $document): self
{
if ($this->documents->removeElement($document)) {
// set the owning side to null (unless already changed)
if ($document->getDocumentcategory() === $this) {
$document->setDocumentcategory(null);
}
}
return $this;
}
/**
* @return Collection<int, Documentelement>
*/
public function getParents(): Collection
{
return $this->parents;
}
public function addParent(Documentelement $parent): self
{
if (!$this->parents->contains($parent)) {
$this->parents->add($parent);
$parent->setParent($this);
}
return $this;
}
public function removeParent(Documentelement $parent): self
{
if ($this->parents->removeElement($parent)) {
// set the owning side to null (unless already changed)
if ($parent->getParent() === $this) {
$parent->setParent(null);
}
}
return $this;
}
/**
* @return Collection<int, Documentelement>
*/
public function getChilds(): Collection
{
return $this->childs;
}
public function addChild(Documentelement $child): self
{
if (!$this->childs->contains($child)) {
$this->childs->add($child);
$child->setChild($this);
}
return $this;
}
public function removeChild(Documentelement $child): self
{
if ($this->childs->removeElement($child)) {
// set the owning side to null (unless already changed)
if ($child->getChild() === $this) {
$child->setChild(null);
}
}
return $this;
}
}

170
src/Entity/Documentcategory.php Executable file
View File

@ -0,0 +1,170 @@
<?php
namespace App\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* Documentcategory
*
* @ORM\Entity
* @ORM\Table(name="documentcategory")
*/
class Documentcategory
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="label", type="string", length=100)
*/
private $label;
/**
* @var int
*
* @ORM\Column(name="roworder", type="integer")
*/
private $roworder;
/**
* @ORM\ManyToOne(targetEntity="Documentcategory", inversedBy="childs")
* @ORM\JoinColumn(nullable=true, onDelete="SET NULL")
*/
private $parent;
/**
* @var ArrayCollection
* @var Documentcategory
*
* @ORM\OneToMany(targetEntity="Documentcategory", mappedBy="parent", cascade={"persist"}, orphanRemoval=false)
* @ORM\OrderBy({"roworder" = "ASC"})
*/
private $childs;
/**
* @var ArrayCollection
* @var Document
*
* @ORM\OneToMany(targetEntity="Document", mappedBy="documentcategory", cascade={"persist"}, orphanRemoval=false)
* @ORM\OrderBy({"roworder" = "ASC"})
*/
private $documents;
public function __construct()
{
$this->childs = new ArrayCollection();
$this->documents = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
public function getLabel(): ?string
{
return $this->label;
}
public function setLabel(string $label): self
{
$this->label = $label;
return $this;
}
public function getRoworder(): ?int
{
return $this->roworder;
}
public function setRoworder(int $roworder): self
{
$this->roworder = $roworder;
return $this;
}
public function getParent(): ?self
{
return $this->parent;
}
public function setParent(?self $parent): self
{
$this->parent = $parent;
return $this;
}
/**
* @return Collection<int, Documentcategory>
*/
public function getChilds(): Collection
{
return $this->childs;
}
public function addChild(Documentcategory $child): self
{
if (!$this->childs->contains($child)) {
$this->childs->add($child);
$child->setParent($this);
}
return $this;
}
public function removeChild(Documentcategory $child): self
{
if ($this->childs->removeElement($child)) {
// set the owning side to null (unless already changed)
if ($child->getParent() === $this) {
$child->setParent(null);
}
}
return $this;
}
/**
* @return Collection<int, Document>
*/
public function getDocuments(): Collection
{
return $this->documents;
}
public function addDocument(Document $document): self
{
if (!$this->documents->contains($document)) {
$this->documents->add($document);
$document->setDocumentcategory($this);
}
return $this;
}
public function removeDocument(Document $document): self
{
if ($this->documents->removeElement($document)) {
// set the owning side to null (unless already changed)
if ($document->getDocumentcategory() === $this) {
$document->setDocumentcategory(null);
}
}
return $this;
}
}

100
src/Entity/Documentelement.php Executable file
View File

@ -0,0 +1,100 @@
<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Documenttype.
*
* @ORM\Entity
* @ORM\Table(name="documentelement")
*/
class Documentelement
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=100)
*/
private $name;
/**
* @var int
*
* @ORM\Column(name="roworder", type="integer")
*/
private $roworder;
/**
* @ORM\ManyToOne(targetEntity="Document", inversedBy="parents")
*/
private $parent;
/**
* @ORM\ManyToOne(targetEntity="Document", inversedBy="childs")
*/
private $child;
public function getId(): ?int
{
return $this->id;
}
public function getName(): ?string
{
return $this->name;
}
public function setName(string $name): self
{
$this->name = $name;
return $this;
}
public function getRoworder(): ?int
{
return $this->roworder;
}
public function setRoworder(int $roworder): self
{
$this->roworder = $roworder;
return $this;
}
public function getParent(): ?Document
{
return $this->parent;
}
public function setParent(?Document $parent): self
{
$this->parent = $parent;
return $this;
}
public function getChild(): ?Document
{
return $this->child;
}
public function setChild(?Document $child): self
{
$this->child = $child;
return $this;
}
}

View File

@ -5,6 +5,7 @@ namespace App\Entity;
use App\Validator;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;

View File

@ -3,6 +3,7 @@
namespace App\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
@ -84,14 +85,6 @@ class Icon
*/
private $bookmarks;
/**
* @var ArrayCollection
* @var Group
*
* @ORM\OneToMany(targetEntity="Group", mappedBy="icon", cascade={"persist"}, orphanRemoval=false)
*/
private $groups;
/**
* Constructor.
*/
@ -103,7 +96,6 @@ class Icon
$this->pagewidgets = new \Doctrine\Common\Collections\ArrayCollection();
$this->widgets = new \Doctrine\Common\Collections\ArrayCollection();
$this->bookmarks = new \Doctrine\Common\Collections\ArrayCollection();
$this->groups = new ArrayCollection();
}
/**
@ -344,36 +336,6 @@ class Icon
return $this->bookmarks;
}
/**
* Add group.
*
* @return Icon
*/
public function addGroup(Group $group)
{
$this->groups[] = $group;
return $this;
}
/**
* Remove group.
*/
public function removeGroup(Group $group)
{
$this->groups->removeElement($group);
}
/**
* Get groups.
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getGroups()
{
return $this->groups;
}
/**
* Set tags.
*

View File

@ -4,6 +4,7 @@ namespace App\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
/**

View File

@ -3,6 +3,7 @@
namespace App\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;

View File

@ -5,6 +5,7 @@ namespace App\Entity;
use App\Validator;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;

View File

@ -5,6 +5,7 @@ namespace App\Entity;
use App\Validator;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;

View File

@ -5,6 +5,7 @@ namespace App\Entity;
use App\Validator;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;

View File

@ -5,6 +5,7 @@ namespace App\Entity;
use App\Validator;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;

View File

@ -3,6 +3,8 @@
namespace App\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
/**

View File

@ -3,6 +3,7 @@
namespace App\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**

View File

@ -4,6 +4,7 @@ namespace App\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
/**

View File

@ -3,6 +3,7 @@
namespace App\Entity;
use App\Validator;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Security\Core\User\LegacyPasswordAuthenticatedUserInterface;

View File

@ -5,6 +5,7 @@ namespace App\Entity;
use App\Validator;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Security\Core\User\LegacyPasswordAuthenticatedUserInterface;
@ -191,6 +192,30 @@ class User implements UserInterface, LegacyPasswordAuthenticatedUserInterface
*/
private $modos;
/**
* @var ArrayCollection
* @var UserGroup
*
* @ORM\OneToMany(targetEntity="Page", mappedBy="user", cascade={"persist"}, orphanRemoval=true)
*/
private $pages;
/**
* @var ArrayCollection
* @var UserGroup
*
* @ORM\OneToMany(targetEntity="Icon", mappedBy="user", cascade={"persist"}, orphanRemoval=true)
*/
private $icons;
/**
* @var ArrayCollection
* @var UserGroup
*
* @ORM\OneToMany(targetEntity="Bookmark", mappedBy="user", cascade={"persist"}, orphanRemoval=true)
*/
private $bookmarks;
/**
* @ORM\ManyToMany(targetEntity="App\Entity\Alert", mappedBy="readers")
*/
@ -202,6 +227,9 @@ class User implements UserInterface, LegacyPasswordAuthenticatedUserInterface
$this->ownergroups = new ArrayCollection();
$this->modos = new ArrayCollection();
$this->alertreaders = new ArrayCollection();
$this->pages = new ArrayCollection();
$this->icons = new ArrayCollection();
$this->bookmarks = new ArrayCollection();
}
// == CODE A NE PAS REGENERER
@ -710,4 +738,94 @@ class User implements UserInterface, LegacyPasswordAuthenticatedUserInterface
return $this;
}
/**
* @return Collection<int, Page>
*/
public function getPages(): Collection
{
return $this->pages;
}
public function addPage(Page $page): self
{
if (!$this->pages->contains($page)) {
$this->pages->add($page);
$page->setUser($this);
}
return $this;
}
public function removePage(Page $page): self
{
if ($this->pages->removeElement($page)) {
// set the owning side to null (unless already changed)
if ($page->getUser() === $this) {
$page->setUser(null);
}
}
return $this;
}
/**
* @return Collection<int, Icon>
*/
public function getIcons(): Collection
{
return $this->icons;
}
public function addIcon(Icon $icon): self
{
if (!$this->icons->contains($icon)) {
$this->icons->add($icon);
$icon->setUser($this);
}
return $this;
}
public function removeIcon(Icon $icon): self
{
if ($this->icons->removeElement($icon)) {
// set the owning side to null (unless already changed)
if ($icon->getUser() === $this) {
$icon->setUser(null);
}
}
return $this;
}
/**
* @return Collection<int, Bookmark>
*/
public function getBookmarks(): Collection
{
return $this->bookmarks;
}
public function addBookmark(Bookmark $bookmark): self
{
if (!$this->bookmarks->contains($bookmark)) {
$this->bookmarks->add($bookmark);
$bookmark->setUser($this);
}
return $this;
}
public function removeBookmark(Bookmark $bookmark): self
{
if ($this->bookmarks->removeElement($bookmark)) {
// set the owning side to null (unless already changed)
if ($bookmark->getUser() === $this) {
$bookmark->setUser(null);
}
}
return $this;
}
}

View File

@ -2,6 +2,7 @@
namespace App\Entity;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;

View File

@ -4,6 +4,7 @@ namespace App\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
/**

37
src/Form/DocumentType.php Executable file
View File

@ -0,0 +1,37 @@
<?php
namespace App\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
class DocumentType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('submit',
SubmitType::class, [
'label' => 'Valider',
'attr' => ['class' => 'btn btn-success'],
]
);
$builder->add('label',
TextType::class, [
'label' => 'Label',
]
);
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => 'App\Entity\Document',
'access' => 'string',
'mode' => 'string',
]);
}
}

View File

@ -0,0 +1,37 @@
<?php
namespace App\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
class DocumentcategoryType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('submit',
SubmitType::class, [
'label' => 'Valider',
'attr' => ['class' => 'btn btn-success'],
]
);
$builder->add('label',
TextType::class, [
'label' => 'Label',
]
);
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => 'App\Entity\Documentcategory',
'access' => 'string',
'mode' => 'string',
]);
}
}

View File

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

View File

@ -265,7 +265,7 @@ class MinioService
]);
}
} catch (Exception $e) {
throw new Exception(self::ERR_UNAVAILABLE);
//throw new Exception(self::ERR_UNAVAILABLE);
}
}
}

View File

@ -97,6 +97,18 @@
"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": {
"version": "9.5",
"recipe": {

View File

@ -0,0 +1,62 @@
{% extends 'base.html.twig' %}
{% block body %}
{{ form_start(form) }}
<h1 class="page-header">
{% if mode=="update" %}
Modification Catégorie de Document = {{document.label}}
{% elseif mode=="submit" %}
Création Catégorie de Document
{% endif %}
</h1>
{{ form_widget(form.submit) }}
<a class="btn btn-secondary" href={{ path('app_admin_document') }}>Annuler</a>
{% if mode=="update" %}
<a class="btn btn-danger float-end" href={{ path('app_admin_document_delete',{id:document.id}) }} data-method="delete" data-confirm="Êtes-vous sûr de vouloir supprimer cet enregistrement ?">Supprimer</a>
{% endif %}
{% if app.session.flashbag.has('error') %}
<div class='alert alert-danger' style='margin: 5px 0px'>
<strong>Erreur</strong><br>
{% for flashMessage in app.session.flashbag.get('error') %}
{{ flashMessage }}<br>
{% endfor %}
</div>
{% endif %}
{% if app.session.flashbag.has('notice') %}
<div class='alert alert-info' style='margin: 5px 0px'>
<strong>Information</strong><br>
{% for flashMessage in app.session.flashbag.get('notice') %}
{{ flashMessage }}<br>
{% endfor %}
</div>
{% endif %}
<div class="card mt-4">
<div class="card-header">
<i class="fa fa-pencil-alt fa-fw"></i> Informations
</div>
<div class="card-body">
{{ form_row(form.label) }}
</div>
</div>
{% if auditUse and mode=="update" and (access=="admin" or access=="modo" or access=="audit") %}
<div class="float-end" style="width:700px;max-width:100%">
{{ render(path("app_"~access~"_audit_renderid",{entityname:"Document",entityid:document.id})) }}
</div>
{% endif %}
{{ form_end(form) }}
{% endblock %}
{% block localscript %}
<script>
$('document').ready(function(){
$("#document_label").focus();
});
</script>
{% endblock %}

View File

@ -0,0 +1,66 @@
{% extends 'base.html.twig' %}
{% block localstyle %}
<style>
.item-action .btn-modal {
color: inherit;
}
</style>
{% endblock %}
{% block body %}
<h1 class="page-header">Gestion des Documents </h1>
<a class="btn btn-success" href="{{ path('app_'~access~'_document_submit') }}">Ajouter</a>
{% if auditUse and (access=="admin" or access=="audit") %}
<a class="btn btn-secondary float-end" href="{{ path('app_'~access~'_audit_render',{entityname:'Document'}) }}"><i class="fas fa-eye fa-fw"></i> Audit</a>
{% endif %}
</p>
<div class="card mt-4">
<div class="card-header">
<i class="fa fa-table fa-fw"></i> Liste des Catégories de Document
</div>
<div class="card-body">
<div class="item-list">
{% for documentcategory in documentcategorys %}
{{ render(path("app_"~access~"_document_render",{idcategory:documentcategory.id})) }}
{% endfor %}
</div>
{% for document in documents %}
<div class="item item-list" style="background-color: var(--colorbgbodydark);">
<div class="item-container">
<div class="item-content">
<div class="item-link">
<img height="35" src="/medias/file/blank.png">
<div class="item-title">
<h3>{{ document.label }}</h3>
</div>
</div>
<div class="item-action">
<a style="display: none;" class="btn-modal" href="{{path('app_'~access~'_document_update',{id:document.id})}}">
<i class="fas fa-file"></i>
</a>
</div>
</div>
</div>
</div>
{% endfor %}
</div>
</div>
{% endblock %}
{% block localscript %}
<script>
</script>
{% endblock %}

View File

@ -0,0 +1,29 @@
<div class="item item-list" style="background-color: var(--colorbgbodydark);">
<div class="item-container">
<div class="item-content">
<div class="item-link">
<img height="35" src="/medias/file/dir.png">
<div class="item-title">
<h3>{{ documentcategory.label }}</h3>
</div>
</div>
</div>
</div>
<div class="item-childs" style="width:100%">
{% if not documentcategory.childs is empty %}
{% for documentcategory in documentcategory.childs %}
{% if loop.first %}<div style="height:5px">&nbsp;</div>{%endif%}
{{ render(path("app_"~access~"_document_render",{idcategory:documentcategory.id,access:access})) }}
{% endfor %}
{% endif %}
{% if not documentcategory.documents is empty %}
{% for document in documentcategory.documents %}
{% endfor %}
{% endif %}
</div>
</div>

View File

@ -0,0 +1,62 @@
{% extends 'base.html.twig' %}
{% block body %}
{{ form_start(form) }}
<h1 class="page-header">
{% if mode=="update" %}
Modification Catégorie de Document = {{documentcategory.label}}
{% elseif mode=="submit" %}
Création Catégorie de Document
{% endif %}
</h1>
{{ form_widget(form.submit) }}
<a class="btn btn-secondary" href={{ path('app_admin_documentcategory') }}>Annuler</a>
{% if mode=="update" %}
<a class="btn btn-danger float-end" href={{ path('app_admin_documentcategory_delete',{id:documentcategory.id}) }} data-method="delete" data-confirm="Êtes-vous sûr de vouloir supprimer cet enregistrement ?">Supprimer</a>
{% endif %}
{% if app.session.flashbag.has('error') %}
<div class='alert alert-danger' style='margin: 5px 0px'>
<strong>Erreur</strong><br>
{% for flashMessage in app.session.flashbag.get('error') %}
{{ flashMessage }}<br>
{% endfor %}
</div>
{% endif %}
{% if app.session.flashbag.has('notice') %}
<div class='alert alert-info' style='margin: 5px 0px'>
<strong>Information</strong><br>
{% for flashMessage in app.session.flashbag.get('notice') %}
{{ flashMessage }}<br>
{% endfor %}
</div>
{% endif %}
<div class="card mt-4">
<div class="card-header">
<i class="fa fa-pencil-alt fa-fw"></i> Informations
</div>
<div class="card-body">
{{ form_row(form.label) }}
</div>
</div>
{% if auditUse and mode=="update" and (access=="admin" or access=="modo" or access=="audit") %}
<div class="float-end" style="width:700px;max-width:100%">
{{ render(path("app_"~access~"_audit_renderid",{entityname:"Documentcategory",entityid:documentcategory.id})) }}
</div>
{% endif %}
{{ form_end(form) }}
{% endblock %}
{% block localscript %}
<script>
$('document').ready(function(){
$("#documentcategory_label").focus();
});
</script>
{% endblock %}

View File

@ -0,0 +1,81 @@
{% extends 'base.html.twig' %}
{% block localstyle %}
<style>
.list-sort {
padding:10px;
background-color: var(--bs-card-cap-bg);
border: var(--bs-card-border-width) solid var(--bs-card-border-color);
border-radius: var(--bs-card-inner-border-radius);
}
</style>
{% endblock %}
{% block body %}
<h1 class="page-header">Gestion des Catégories de Document </h1>
<a class="btn btn-success" href="{{ path('app_'~access~'_documentcategory_submit') }}">Ajouter</a>
{% if auditUse and (access=="admin" or access=="audit") %}
<a class="btn btn-secondary float-end" href="{{ path('app_'~access~'_audit_render',{entityname:'Documentcategory'}) }}"><i class="fas fa-eye fa-fw"></i> Audit</a>
{% endif %}
</p>
<div class="card mt-4">
<div class="card-header">
<i class="fa fa-table fa-fw"></i> Liste des Catégories de Document
</div>
{% set childs=[] %}
<div class="card-body">
<ul class="list-sort">
{% for documentcategory in documentcategorys %}
{{ render(path("app_"~access~"_documentcategory_render",{id:documentcategory.id})) }}
{% endfor %}
</ul>
</div>
</div>
{% endblock %}
{% block localscript %}
<script>
function updateItems() {
roworder=0;
$('.itemcat').each(function(i) {
// Order
roworder++;
// On récupère id et order
var id = $(this).data('id');
// On récupère le parent
var parent=$(this).parents('.itemcat').data('id');
//if(id==parent) parent=null;
console.log({id: id, parent:parent, roworder: roworder});
// Mise à jour en base de l'order
$.ajax({
method: "POST",
url: "{{ path('app_'~access~'_documentcategory_order') }}",
data: {
id:id,
parent:parent,
roworder:roworder
}
});
});
}
$( ".list-sort" ).sortable({
connectWith: ".list-sort",
items: ".itemcat",
placeholder: "item placeholder",
stop: updateItems
});
</script>
{% endblock %}

View File

@ -0,0 +1,10 @@
<div class="itemcat list-group-item mb-3" data-id="{{ documentcategory.id }}" >
<a href="{{ path('app_'~access~'_documentcategory_update',{id:documentcategory.id})}}">{{ documentcategory.label }}</a>
<ul class="p-3 list-sort">
{% if not documentcategory.childs is empty %}
{% for documentcategory in documentcategory.childs %}
{{ render(path("app_"~access~"_documentcategory_render",{id:documentcategory.id,access:access})) }}
{% endfor %}
{% endif %}
</ul>
</div>

View File

@ -5,13 +5,13 @@
'name' : 'CONFIGURATION',
'items' : [
{
icon: 'fa fa-table',
icon: 'fa fa-table fa-fw',
route: 'app_admin_config',
name: 'Général',
},
{
icon: 'fas fa-paint-brush',
icon: 'fas fa-paint-brush fa-fw',
route: 'app_admin_theme',
name: 'Thème',
},
@ -19,46 +19,46 @@
},
{
'id': 'sidebar-organisation',
'icon': 'fa fa-sitemap',
'icon': 'fa fa-sitemap fa-fw',
'name' : 'ORGANISATION',
'items' : [
{
icon: 'fa fa-building',
icon: 'fa fa-building fa-fw',
route: 'app_admin_niveau01',
name: appNiveau01labels,
},
{
icon: 'fa fa-sitemap',
icon: 'fa fa-sitemap fa-fw',
route: 'app_admin_niveau02',
name: appNiveau02labels,
},
{
icon: 'fas fa-store-alt',
icon: 'fas fa-store-alt fa-fw',
route: 'app_admin_niveau03',
name: appNiveau03labels,
},
{
icon: 'fas fa-monument',
icon: 'fas fa-monument fa-fw',
route: 'app_admin_niveau04',
name: appNiveau04labels,
},
{
icon: 'fa fa-users',
icon: 'fa fa-users fa-fw',
route: 'app_admin_group',
name: 'Groupes',
},
{
icon: 'fa fa-child',
icon: 'fa fa-child fa-fw',
route: 'app_admin_user',
name: 'Utilisateurs',
},
{
icon: 'fa fa-edit',
icon: 'fa fa-edit fa-fw',
route: 'app_admin_registration',
name: 'Inscriptions',
},
{
icon: 'fa fa-tasks',
icon: 'fa fa-tasks fa-fw',
route: 'app_admin_whitelist',
name: 'Listes Blanche',
},
@ -80,35 +80,52 @@
name: 'Pages',
},
{
icon: 'fa fa-desktop',
icon: 'fa fa-desktop fa-fw',
route: 'app_admin_item',
name: 'Items',
},
{
icon: 'fa fa-bell',
icon: 'fa fa-bell fa-fw',
route: 'app_admin_alert',
name: 'Annonces',
},
{
icon: 'fa fa-bug',
icon: 'fa fa-bug fa-fw',
route: 'app_admin_icon',
name: 'Icônes',
},
]
},
{
'id': 'sidebar-document',
'icon': 'fa fa-file fa-fw',
'name' : 'DOCUMENTS',
'items' : [
{
icon: 'fa fa-cogs',
route: 'app_admin_document',
name: 'Documents',
},
{
icon: 'fa fa-cogs',
route: 'app_admin_documentcategory',
name: 'Catégories',
},
]
},
{
'id': 'sidebar-cron',
'icon': 'fa fa-wrench',
'name' : 'OUTILS',
'items' : [
{
icon: 'fa fa-cogs',
icon: 'fa fa-cogs fa-fw',
route: 'app_admin_cron',
name: 'Cron Jobs',
},
{
icon: 'fas fa-star-of-life',
icon: 'fas fa-star-of-life fa-fw',
route: 'app_rest',
name: 'API',
},
@ -122,35 +139,42 @@
{% for section in sidebar %}
{% set sectionactive=false %}
{% for item in section.items %}
{% if item.route in app.request.get('_route') %}
{% if item.route==app.request.get('_route') or (item.route~"_") in app.request.get('_route') %}
{% set sectionactive=true %}
{% endif %}
{% endfor %}
{% set toshow=true %}
{% if section.name == "PORTAIL" and not ("PORTAL" in appModules) %}
{% set toshow=false %}
{% endif %}
<div class="nav-link-section">
<a class="nav-link nav-link-title" onClick="$('#sidebar .nav-link-items').hide();$(this).next().toggle();">
<i class="{{section.icon}}"></i>
<span>{{section.name}}</span>
</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 %}
<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 %}
{% if toshow %}
<div class="nav-link-section">
<a class="nav-link nav-link-title" onClick="$('#sidebar .nav-link-items').hide();$(this).next().toggle();">
<i class="{{section.icon}}"></i>
<span>{{section.name}}</span>
</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 %}
<a class="nav-link nav-link-item {% if item.route==app.request.get('_route') or (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>
{% endif %}
{% endfor %}
</ul>
</div>

View File

@ -1,6 +1,7 @@
{% extends 'base.html.twig' %}
{% block localstyle %}
<style>
.thumbnail {
text-align:center;
}
@ -34,13 +35,14 @@
h3 {
margin-top:10px;
}
</style>
{% endblock %}
{% 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") }}">
<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>
</a>
@ -50,92 +52,4 @@ h3 {
<a href="{{ path("app_resetpwd01") }}">Mot de passe oublié ?</a>
{% endif %}
</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 %}

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

View File

@ -1,4 +1,6 @@
const Encore = require('@symfony/webpack-encore');
const dotenv = require('dotenv');
const path = require('path');
// Manually configure the runtime environment if not already configured yet by the "encore" command.
// It's useful when you use tools that rely on webpack.config.js file.
@ -10,9 +12,8 @@ Encore
// directory where compiled assets will be stored
.setOutputPath('public/build/')
// public path used by the web server to access the output path
.setPublicPath('/build')
// only needed for CDN's or sub-directory deploy
//.setManifestKeyPrefix('build/')
.setPublicPath(process.env.APP_PUBLIC_PATH || '/build')
.setManifestKeyPrefix(process.env.APP_MANIFEST_KEY_PREFIX || '')
/*
* ENTRY CONFIG

View File

@ -2449,6 +2449,11 @@ dot-prop@^5.1.0:
dependencies:
is-obj "^2.0.0"
dotenv@^16.4.5:
version "16.4.5"
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.5.tgz#cdd3b3b604cb327e286b4762e13502f717cb099f"
integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==
dropzone@^6.0.0-beta.2:
version "6.0.0-beta.2"
resolved "https://registry.yarnpkg.com/dropzone/-/dropzone-6.0.0-beta.2.tgz#098be8fa84bdc08674cf0b74f4c889e2679083d6"