Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
4de1c5457f |
183
.env
@ -1,183 +0,0 @@
|
|||||||
# Symfony
|
|
||||||
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@postgresql:5432/nineskeletor?serverVersion=13&charset=utf8"
|
|
||||||
|
|
||||||
# Redis Session
|
|
||||||
REDIS_HOST=redis
|
|
||||||
REDIS_PORT=6379
|
|
||||||
|
|
||||||
# Mailer
|
|
||||||
MAILER_METHOD=smtp
|
|
||||||
MAILER_DSN=smtp://mailer:1025
|
|
||||||
MAILER_NOREPLY=noreply@noreply.fr
|
|
||||||
|
|
||||||
# Basic
|
|
||||||
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_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_NIVEAU01LABEL="Niveau 01"
|
|
||||||
APP_NIVEAU01LABELS="Niveaux 01"
|
|
||||||
|
|
||||||
APP_NIVEAU02USE=1
|
|
||||||
APP_NIVEAU02LABEL="Niveau 02"
|
|
||||||
APP_NIVEAU02LABELS="Niveaux 02"
|
|
||||||
APP_NIVEAU02MANDATORY='[""]'
|
|
||||||
|
|
||||||
APP_NIVEAU03USE=1
|
|
||||||
APP_NIVEAU03LABEL="Niveau 03"
|
|
||||||
APP_NIVEAU03LABELS="Niveaux 03"
|
|
||||||
APP_NIVEAU03MANDATORY='[""]'
|
|
||||||
|
|
||||||
APP_NIVEAU04USE=0
|
|
||||||
APP_NIVEAU04LABEL="Niveau 04"
|
|
||||||
APP_NIVEAU04LABELS="Niveaux 04"
|
|
||||||
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_USERVIEWISVISIBLE=1 # Profil user with isvisible field
|
|
||||||
|
|
||||||
# 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=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=
|
|
||||||
CAS_PORT=
|
|
||||||
CAS_PATH=
|
|
||||||
CAS_USERNAME=username
|
|
||||||
CAS_EMAIL=email
|
|
||||||
CAS_LASTNAME=lastname
|
|
||||||
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
|
|
||||||
|
|
||||||
# If APP_AUTH = OPENID
|
|
||||||
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
|
|
||||||
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
|
|
||||||
|
|
||||||
# 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
|
|
||||||
|
|
||||||
# Proxy
|
|
||||||
PROXY_USE=0
|
|
||||||
PROXY_HOST=
|
|
||||||
PROXY_PORT=
|
|
||||||
|
|
||||||
# Audit
|
|
||||||
AUDIT_USE=0
|
|
||||||
|
|
||||||
# Sonde statistic
|
|
||||||
SONDE_USE=0
|
|
||||||
SONDE_URL=
|
|
||||||
|
|
||||||
# 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://nginx:9000
|
|
||||||
MINIO_KEY=minio
|
|
||||||
MINIO_SECRET=changeme
|
|
||||||
MINIO_BUCKET=nineskeletor
|
|
||||||
MINIO_ROOT=
|
|
||||||
MINIO_PATH_STYLE=1
|
|
||||||
MINIO_SECURE=0
|
|
||||||
|
|
||||||
# Hydra apps
|
|
||||||
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@postgresql:5432/nineskeletor?serverVersion=13&charset=utf8"
|
|
||||||
|
|
||||||
# Sentry
|
|
||||||
SENTRY_DSN=
|
|
@ -1,18 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -eo pipefail
|
|
||||||
|
|
||||||
DIR="$(cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd)"
|
|
||||||
export PATH="${PATH}:${DIR}/../node_modules/.bin"
|
|
||||||
|
|
||||||
function lint_commit_message {
|
|
||||||
local commit_message_file="$1"
|
|
||||||
cat "$commit_message_file" | commitlint
|
|
||||||
}
|
|
||||||
|
|
||||||
function main {
|
|
||||||
local commit_message_file="$1"
|
|
||||||
lint_commit_message "$commit_message_file"
|
|
||||||
}
|
|
||||||
|
|
||||||
main $@
|
|
34
.gitignore
vendored
@ -1,34 +0,0 @@
|
|||||||
|
|
||||||
/docker-compose.override.yml
|
|
||||||
/.env.local
|
|
||||||
/.env.local.php
|
|
||||||
/.env.*.local
|
|
||||||
/config/secrets/prod/prod.decrypt.private.php
|
|
||||||
/public/bundles/
|
|
||||||
/var/
|
|
||||||
/vendor/
|
|
||||||
/node_modules/
|
|
||||||
/public/build/
|
|
||||||
npm-debug.log
|
|
||||||
yarn-error.log
|
|
||||||
/phpunit.xml
|
|
||||||
.phpunit.result.cache
|
|
||||||
.phpunit.result.cache
|
|
||||||
/phpunit.xml
|
|
||||||
|
|
||||||
|
|
||||||
/uploads
|
|
||||||
!/public/uploads/avatar
|
|
||||||
/public/uploads/avatar/*
|
|
||||||
!/public/uploads/avatar/admin.jpg
|
|
||||||
!/public/uploads/avatar/noavatar.jpg
|
|
||||||
!/public/uploads/avatar/system.jpg
|
|
||||||
!/public/uploads/avatar
|
|
||||||
/public/uploads/logo/*
|
|
||||||
!/public/uploads/logo/logo.png
|
|
||||||
/public/uploads/ckeditor
|
|
||||||
|
|
||||||
.php-cs-fixer.cache
|
|
||||||
###> phpstan/phpstan ###
|
|
||||||
phpstan.neon
|
|
||||||
###< phpstan/phpstan ###
|
|
@ -1,15 +0,0 @@
|
|||||||
def exec() {
|
|
||||||
String dockerfile = readFile(file:'Dockerfile')
|
|
||||||
|
|
||||||
dockerfile = """
|
|
||||||
${dockerfile}
|
|
||||||
|
|
||||||
RUN apt update && apt install -y php-gd php-curl php-zip curl
|
|
||||||
RUN curl -fsSL https://deb.nodesource.com/setup_16.x | bash - && apt-get install -y nodejs
|
|
||||||
RUN npm install -g yarn
|
|
||||||
""".stripIndent()
|
|
||||||
|
|
||||||
writeFile(file:'Dockerfile', text: dockerfile)
|
|
||||||
}
|
|
||||||
|
|
||||||
return this
|
|
@ -1,45 +0,0 @@
|
|||||||
<?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)
|
|
||||||
;
|
|
@ -1 +0,0 @@
|
|||||||
8.1
|
|
3
.vscode/settings.json
vendored
@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"esbonio.sphinx.confDir": ""
|
|
||||||
}
|
|
3
Jenkinsfile
vendored
@ -1,3 +0,0 @@
|
|||||||
@Library('cadoles') _
|
|
||||||
|
|
||||||
symfonyAppPipeline('ubuntu:22.04')
|
|
36
Makefile
Executable file → Normal file
@ -1,18 +1,26 @@
|
|||||||
SHELL := /bin/bash
|
################################
|
||||||
export PATH := $(HOME)/.symfony/bin:$(PATH)
|
# Makefile
|
||||||
|
################################
|
||||||
|
|
||||||
deps:
|
SOURCE=nineskeletor
|
||||||
wget https://get.symfony.com/cli/installer -O - | bash
|
VERSION=1.0
|
||||||
symfony composer install
|
EOLE_VERSION=2.7
|
||||||
symfony composer install --working-dir=tools/php-cs-fixer
|
EOLE_RELEASE=2.7.1
|
||||||
symfony composer install --working-dir=tools/phpstan
|
PKGAPPS=web
|
||||||
npm ci
|
|
||||||
|
|
||||||
phpstan:
|
################################
|
||||||
symfony php tools/phpstan/vendor/bin/phpstan analyze ./src -l 1
|
# Début de zone à ne pas éditer
|
||||||
|
################################
|
||||||
|
|
||||||
php-cs-fixer:
|
include eole.mk
|
||||||
tools/php-cs-fixer/symfony-php-cs-fixer.sh fix --verbose --show-progress=dots
|
include apps.mk
|
||||||
|
|
||||||
install-git-hooks:
|
################################
|
||||||
git config core.hooksPath .githooks
|
# Fin de zone à ne pas éditer
|
||||||
|
################################
|
||||||
|
|
||||||
|
# Makefile rules dedicated to application
|
||||||
|
# if exists
|
||||||
|
ifneq (, $(strip $(wildcard $(SOURCE).mk)))
|
||||||
|
include $(SOURCE).mk
|
||||||
|
endif
|
||||||
|
371
README.md
Executable file → Normal file
@ -1,154 +1,231 @@
|
|||||||
# NINESKELETOR
|
# Renommer le squelette
|
||||||
|
## Dupliquer nineskeletor et renommer en nineXXXX
|
||||||
|
Puis effectuer les changement suivants
|
||||||
|
- Renommer db/nineskeletor-create-0.sql en db/nineXXXX-create-0.sql
|
||||||
|
- Modifier db/nineXXXX-create-0.sql et changer le nom de la base de données en nineXXXX
|
||||||
|
- Renommer dicos/90_nineskeletor.xml en dicos/90_nineXXXX.xml
|
||||||
|
- Modifier dicos/nineXXXX-nineXXXX.xml et remplacer tout les nineskeletor en nineXXXX
|
||||||
|
- Renommer logrotate/nineskeletor en logrotate/nineXXXX
|
||||||
|
- Modifier logrotate/nineXXXX et remplacer tout les nineskeletor en nineXXXX
|
||||||
|
- Renommer postservice/90-nineskeletor en postservice/90-nineXXXX
|
||||||
|
- Modifier postservice/90-nineXXXX et remplacer tout les nineskeletor en nineXXXX
|
||||||
|
- Renommer pretemplate/25-nineskeletor en pretemplate/25-nineXXXX
|
||||||
|
- Modifier pretemplate/25-nineXXXX et remplacer tout les nineskeletor en nineXXXX
|
||||||
|
- Renommer src/nineskeletor-1.0 en src/nineXXXX-1.0
|
||||||
|
- Modifier src/nineXXXX-1.0/webpack.config.js et remplacer tout les nineskeletor en nineXXXX
|
||||||
|
- Renommer sso/filtres/nineskeletor.ini en sso/filtres/nineXXXX.ini
|
||||||
|
- Renommer sso/filtres/nineskeletor_apps.ini en sso/filtres/nineXXXX_apps.ini
|
||||||
|
- Modifier sso/filtres/nineXXXX_apps.ini et remplacer tout les nineskeletor en nineXXXX
|
||||||
|
- Renommer tmpl/nineskeletor.cron en tmpl/nineXXXX.cron
|
||||||
|
- Modifier tmpl/nineXXXX.cron et remplacer tout les nineskeletor en nineXXXX
|
||||||
|
- Renommer tmpl/nineskeletor-apache.conf en tmpl/nineXXXX-apache.conf
|
||||||
|
- Modifier tmpl/nineXXXX-apache.conf et remplacer tout les nineskeletor en nineXXXX
|
||||||
|
- Renommer tmpl/nineskeletor-db.yml en tmpl/nineXXXX-db.yml
|
||||||
|
- Modifier tmpl/nineXXXX-db.yml et remplacer tout les nineskeletor en nineXXXX
|
||||||
|
- Renommer tmpl/nineskeletor-env.local en tmpl/nineXXXX-env.local
|
||||||
|
- Modifier tmpl/nineXXXX-env.local et remplacer tout les nineskeletor en nineXXXX
|
||||||
|
- Renommer tmpl/nineskeletor-proxy.sh en tmpl/nineXXXX-proxy.sh
|
||||||
|
- Modifier Makefile et remplacer tout les nineskeletor en nineXXXX
|
||||||
|
- Remplacer logo public/uploads/logo/logo.png
|
||||||
|
|
||||||
Squelette applicatif symfony
|
## Compilier les asset
|
||||||
|
- apt-get install npm
|
||||||
|
- si proxy
|
||||||
|
- npm config set proxy "http://monproxyurl:monproxyport"
|
||||||
|
- npm config set https-proxy "http://monproxyurl:monproxyport"
|
||||||
|
- npm install -g yarn
|
||||||
|
- yarn install
|
||||||
|
- yarn encore dev
|
||||||
|
- yarn encore prod
|
||||||
|
|
||||||
## Installation for local dev
|
# Description du squelette
|
||||||
```
|
|
||||||
curl -1sLf 'https://dl.cloudsmith.io/public/symfony/stable/setup.deb.sh' | sudo -E bash
|
|
||||||
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
|
|
||||||
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
|
|
||||||
apt-get update
|
|
||||||
apt-get install git docker-compose composer symfony-cli php php-xml php-zip php-gd php-curl php-pgsql yarn
|
|
||||||
git clone https://forge.cadoles.com/Cadoles/nineskeletor.git
|
|
||||||
cd nineskeletor
|
|
||||||
symfony server:ca:install
|
|
||||||
cp .env .env.local
|
|
||||||
```
|
|
||||||
Change in .env.local APP_SECRET variabile
|
|
||||||
This secret is the init password for admin user
|
|
||||||
|
|
||||||
Change in .env.local MERCURE_JWT_SECRET variable
|
## Bundle
|
||||||
And report this secret in docker-compose.yml MERCURE_PUBLISHER_JWT_KEY and MERCURE_SUBSCRIBER_JWT_KEY
|
- DebugBundle
|
||||||
|
- DoctrineBundle
|
||||||
And finish with
|
- DoctrineMigrationsBundle
|
||||||
```
|
- FOSCKEditorBundle
|
||||||
bin/reconfigure.sh
|
- FOSRestBundle
|
||||||
```
|
- FrameworkBundle
|
||||||
|
- KnpSnappyBundle
|
||||||
## Run for local
|
- MakerBundle
|
||||||
|
- MonologBundle
|
||||||
```
|
- NelmioApiDocBundle
|
||||||
symfony server:start
|
- OneupUploaderBundle
|
||||||
```
|
- SecurityBundle
|
||||||
|
- SensioFrameworkExtraBundle
|
||||||
## Installation for apache
|
- SwiftmailerBundle
|
||||||
exec installation for local dev except /bin/reconfigure.sh
|
- TetranzSelect2EntityBundle
|
||||||
|
- TwigBundle
|
||||||
Between
|
- TwigExtraBundle
|
||||||
Change in .env.local APP_WEBURL variable
|
- WebProfilerBundle
|
||||||
For sample
|
- WebpackEncoreBundle
|
||||||
```
|
- ramsey/uuid
|
||||||
APP_WEBURL=MyDomaine
|
- cboden/ratchet
|
||||||
```
|
|
||||||
|
|
||||||
Change in .env.local MERCURE variable like
|
|
||||||
The /hub alias must be the same on Apache configuration ProxyPass and ProxyPassReverse
|
## Asset
|
||||||
```
|
|
||||||
MERCURE_URL=http://MyDomaine/hub/.well-known/mercure
|
### Tag app
|
||||||
MERCURE_PUBLIC_URL=http://MyDomaine/hub/.well-known/mercure
|
- jQuery = https://www.npmjs.com/package/jquery
|
||||||
```
|
- jqueryui = https://www.npmjs.com/package/jqueryui
|
||||||
|
- bootstrap = https://www.npmjs.com/package/bootstrap
|
||||||
|
- timepicki = https://www.npmjs.com/package/timepicki
|
||||||
Create the file docker-compose.override.yml like
|
- datatables.net-bs4 = https://www.npmjs.com/package/datatables.net-bs4
|
||||||
The port 9090 must be the same in the apache configuration ProxyPass and ProxyPassReverse
|
- fontawsome-free = https://www.npmjs.com/package/@fortawesome/fontawesome-free
|
||||||
```
|
- bs-stepper = https://www.npmjs.com/package/bs-stepper
|
||||||
version: '3'
|
- masonry-layout = https://www.npmjs.com/package/masonry-layout
|
||||||
|
- react-slick = https://www.npmjs.com/package/react-slick
|
||||||
services:
|
- image-loaded = https://www.npmjs.com/package/image-loaded
|
||||||
mercure:
|
- moment = https://www.npmjs.com/package/moment
|
||||||
ports:
|
- select2 = https://www.npmjs.com/package/select2
|
||||||
- "9090:80"
|
- crop-select-js = https://www.npmjs.com/package/crop-select-js
|
||||||
environment:
|
- spectrum-colorpicker2 = https://www.npmjs.com/package/spectrum-colorpicker2
|
||||||
SERVER_NAME: ':80'
|
|
||||||
MERCURE_PUBLISHER_JWT_KEY: '!ChangeMe!'
|
|
||||||
MERCURE_SUBSCRIBER_JWT_KEY: '!ChangeMe!'
|
|
||||||
MERCURE_EXTRA_DIRECTIVES: |
|
|
||||||
cors_origins http://MyDomaine
|
|
||||||
```
|
|
||||||
|
|
||||||
And finish with
|
|
||||||
```
|
|
||||||
bin/reconfigure.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
After install and configure apache
|
|
||||||
```
|
|
||||||
apt-get install apache libmodapache2
|
|
||||||
a2enmod rewrite proxy_http
|
|
||||||
service apache2 restart
|
|
||||||
```
|
|
||||||
|
|
||||||
sample apache configuration in /etc/apache2/site-available/000-
|
|
||||||
```
|
|
||||||
<VirtualHost *:80>
|
|
||||||
DocumentRoot /var/www/html/nineskeletor/public
|
|
||||||
CustomLog /var/log/apache2/access.log common
|
|
||||||
ErrorLog /var/log/apache2/error.log
|
|
||||||
|
|
||||||
<Directory /var/www/html/nineskeletor/public>
|
|
||||||
DirectoryIndex index.php
|
|
||||||
|
|
||||||
<IfModule mod_negotiation.c>
|
|
||||||
Options -MultiViews
|
|
||||||
</IfModule>
|
|
||||||
|
|
||||||
<IfModule mod_rewrite.c>
|
|
||||||
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]
|
|
||||||
</IfModule>
|
|
||||||
|
|
||||||
<IfModule !mod_rewrite.c>
|
|
||||||
<IfModule mod_alias.c>
|
|
||||||
RedirectMatch 307 ^/$ /index.php/
|
|
||||||
</IfModule>
|
|
||||||
</IfModule>
|
|
||||||
</Directory>
|
|
||||||
|
|
||||||
# For mercure server
|
|
||||||
ProxyPass /hub/ http://localhost:9090/
|
|
||||||
ProxyPassReverse /hub/ http://localhost:9090/
|
|
||||||
|
|
||||||
</VirtualHost>
|
|
||||||
|
|
||||||
<VirtualHost *:1080>
|
|
||||||
# For mailer server
|
|
||||||
ProxyPass / http://localhost:1080/
|
|
||||||
ProxyPassReverse / http://localhost:1080/
|
|
||||||
</VirtualHost>
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
## Cron Job
|
|
||||||
|
|
||||||
Make sure the cron job is running all the minute
|
|
||||||
You can copy this bin/nineskeletor.cron in your crontab
|
|
||||||
```
|
|
||||||
cp /var/www/html/nineskeletor/bin/nineskeletor.cron /etc/cron.d/nineskeletor
|
|
||||||
```
|
|
||||||
|
|
||||||
## Messenger worker
|
|
||||||
|
|
||||||
Make sure the messenger consume the bus
|
|
||||||
Needed to send mail
|
|
||||||
You can copy this bin/nineskeletor.service in your systemd
|
|
||||||
```
|
|
||||||
cp /var/www/html/nineskeletor/bin/nineskeletor.service /etc/systemd/system/
|
|
||||||
systemctl enable nineskeletor.service
|
|
||||||
systemctl start nineskeletor.service
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### Tag fullcalendar
|
||||||
|
- @fullcalendar/core = https://www.npmjs.com/package/@fullcalendar/core
|
||||||
|
- @fullcalendar/interaction = https://www.npmjs.com/package/@fullcalendar/interaction
|
||||||
|
- @fullcalendar/daygrid = https://www.npmjs.com/package/@fullcalendar/daygrid
|
||||||
|
|
||||||
|
### Tag dropzone
|
||||||
|
- dropzone = https://www.npmjs.com/package/dropzone
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Parameters
|
||||||
|
|
||||||
|
Provient du template env.local
|
||||||
|
- appEnv = PROD
|
||||||
|
- appSecret = valeur du fichier .key autogénéré au premier reconfigure
|
||||||
|
- appWeburl = Valeur du dicos web_url
|
||||||
|
- appAuth = Valeur du dicos = CAS / SQL
|
||||||
|
- appAlias = En dur l'alias web
|
||||||
|
- appName = Nom de l'application
|
||||||
|
- appCron = En dur à true pour activer le système de cron
|
||||||
|
- appMasteridentity = Valeur du dicos = Ninegate / LDAP / SQL
|
||||||
|
- appMasterurl = Si appMasteridentity la valeur du dicos correspondant à l'url du Ninegate maître
|
||||||
|
- appMasterkey = Si appMasteridentity la valeur du dicos correspondant à la clé d'API du Ninegate maître
|
||||||
|
- databaseName = En dur le nom de la base
|
||||||
|
- databaseUser = En dur le user de la base
|
||||||
|
- databasePassword = Autogénéré par le reconfigure
|
||||||
|
- databaseHost = Valeur du dicos pour le host de la base
|
||||||
|
- appMailmethod = Valeur du dicos soit sendmail soit smtp. sendmail par défaut si exim est activé sur le serveur
|
||||||
|
- appMailurl = Si smtp url calculé combinant smtphost smtpport smtpencryption smtpauthmode smtpuser smtppwd
|
||||||
|
- appMailnoreply = Valeur du dicos du noreplay
|
||||||
|
- ldapModel = si masteridentity à LDAP soit open soit scribe
|
||||||
|
- ldapHost = Valeur dicos Host LDAP
|
||||||
|
- ldapPort = Valeur dicos Port LDAP
|
||||||
|
- ldapUser = Valeur dicos User LDAP
|
||||||
|
- ldapPassword = Valeur dicos Password LDAP
|
||||||
|
- ldapBasedn = Valeur dicos Basedn LDAP
|
||||||
|
- ldapUsername = si Scribe en dur sinon valeur du dicos champs annuaire utilisé comme username
|
||||||
|
- ldapFirstname = si Scribe en dur sinon valeur du dicos champs annuaire utilisé comme firstname
|
||||||
|
- ldapLastname = si Scribe en dur sinon valeur du dicos champs annuaire utilisé comme lastname
|
||||||
|
- ldapEmail = si Scribe en dur sinon valeur du dicos champs annuaire utilisé comme email
|
||||||
|
- ldapFiltergroup = si Scribe en dur sinon valeur du dicos filtre ldap de recherche des groupes
|
||||||
|
- ldapFilteruser = si Scribe en dur sinon valeur du dicos filtre ldap des groupes
|
||||||
|
- ldapAdmins = Liste des admins obligatoire = Admin + valeur dicos
|
||||||
|
- casHost = Valeur dicos du host SSO
|
||||||
|
- casPort = Valeur dicos du Porst SSO
|
||||||
|
- casPath = Valeur dicos du Path SSO
|
||||||
|
- casUsername = Valeur en dur correspondant au filtre sso du username
|
||||||
|
- casEmail = Valeur en dur correspondant au filtre sso du email
|
||||||
|
- casLastname = Valeur en dur correspondant au filtre sso du lastname
|
||||||
|
- casFirstname = Valeur en dur correspondant au filtre sso du fistname
|
||||||
|
- proxyUse = Valeur dicos utiliser oui/non un proxy
|
||||||
|
- proxyHost = Si oui valeurs du dicos du host proxy
|
||||||
|
- proxyPort = Si oui valeurs du dicos du post proxy
|
||||||
|
- sondeUse = Valeur dicos utiliser oui/non une sonde statistique
|
||||||
|
- sondeUrl = Si oui url de la sonde statistique
|
||||||
|
|
||||||
|
## Sécurité
|
||||||
|
|
||||||
|
4 rôles possibles
|
||||||
|
- ROLE_ADMIN
|
||||||
|
- ROLE_MODO
|
||||||
|
- ROLE_MASTER
|
||||||
|
- ROLE_USER
|
||||||
|
|
||||||
|
4 routes protégés
|
||||||
|
- /user = accèssible à ROLE_USER / ROLE_MASTER / ROLE_MODO / ROLE_ADMIN
|
||||||
|
- /master = accèssible à ROLE_MASTER / ROLE_MODO / ROLE_ADMIN
|
||||||
|
- /modo = = accèssible à ROLE_MODO / ROLE_ADMIN
|
||||||
|
- /admin = = accèssible à ROLE_ADMIN
|
||||||
|
|
||||||
|
## Job
|
||||||
|
|
||||||
|
Nineskeletor intègre un système de job.
|
||||||
|
Ce système va exécuter des commandes symfony à interval régulier.
|
||||||
|
De base les jobs suivants sont livrés :
|
||||||
|
- app:sendMail = toutes les minutes = Execution du spool de mail en attente
|
||||||
|
- app:dumpBdd = toutes les nuits à 2h00 = Dump de la base
|
||||||
|
- app:purgeFile = toutes les nuits à 3h00 = Suppresion des fichiers obsolètes
|
||||||
|
- app:synchroUsers = toutes les nuites à 3h00 = Synchronisation des comptes utilisateurs soit via LDAP soit via Ninegate
|
||||||
|
|
||||||
|
Pour ajouter un job à la listes, modifier la commande app:initCron qui sera exécutée à chaque reconfigure
|
||||||
|
|
||||||
|
## Service
|
||||||
|
|
||||||
|
- app.password.encoder = encodage password sur la methode que l'annuaire
|
||||||
|
- app.upload.listener = action à réaliser sur upload via oneupload
|
||||||
|
- app.upload.samename = permet d'uploader un fichier et préserver le nom de fichier via oneupload
|
||||||
|
- app.ldap.service = fonction ldap
|
||||||
|
- app.sendmail.transport = executuion du spool de mail via sendmail
|
||||||
|
- app.mail.service = fonction envoit de mail
|
||||||
|
- app.twig.extension = extention twig
|
||||||
|
|
||||||
|
|
||||||
|
## Twig
|
||||||
|
|
||||||
|
### Twig Constantes
|
||||||
|
|
||||||
|
Variables globales twig reprises des parametres symfony
|
||||||
|
- appAlias
|
||||||
|
- appAuth
|
||||||
|
- appName
|
||||||
|
- appCron
|
||||||
|
- appMasteridentity
|
||||||
|
- sondeUse
|
||||||
|
- sondeUrl
|
||||||
|
|
||||||
|
### Twig Extention
|
||||||
|
|
||||||
|
App\Twig\AppExtension
|
||||||
|
- filtre = urlAvatar à placer avec user.avatar afin de définir l'url complète de l'avatar du user
|
||||||
|
|
||||||
|
### Twig Template de base
|
||||||
|
|
||||||
|
#### templates/base.html.twig
|
||||||
|
|
||||||
|
Deux paramétres non obligatoire
|
||||||
|
- useheader = permet d'afficher ou non la bannière dans la page = false par défaut
|
||||||
|
- usesidebar = permet d'afficher oun non la sidebar dans la page = false par défaut
|
||||||
|
- usemonocolor = afin de placer uniquement la couleur dark sur la page
|
||||||
|
Block
|
||||||
|
- block encorelinktags = pour déclarer des encore_link_tags spécifique à la page (encorelinktags app est intégré de base)
|
||||||
|
- block localstyle = pour déclarer des propriétés css spécifique à page (Include/style.css.twig est intégré de base)
|
||||||
|
- block body = le corps de la page
|
||||||
|
- block encorescripttags pour déclarer des encore_script_tags spécifique à la page (encorescripttags app est intégré de base)
|
||||||
|
- block localjavascript = pour déclarer du js spécifique à la page (Include/javascript.js.twig est intégré de base)
|
||||||
|
|
||||||
|
#### templates/Include/style.css.twig
|
||||||
|
|
||||||
|
Style de l'applicaiton en surcouche de bootstrap
|
||||||
|
|
||||||
|
#### templates/Include/sidebar.html.twig
|
||||||
|
|
||||||
|
La sidebar de l'application quand elle est affichée
|
||||||
|
|
||||||
|
#### templates/Include/javascript.js.twig
|
||||||
|
|
||||||
|
Librairie js de l'application
|
||||||
|
|
||||||
|
- object a et button s'ils ont un attribut data-method et data_confirm proposeront une confirmation à l'utilisateur avant de poursuivre l'action
|
||||||
|
- ModalLoad(idmodal,titre,url) = permet d'afficher en modal l'url indiqué en parametre. Par défaut on dispose de la modal #mymodal
|
||||||
|
|
||||||
|
#### templates/Form/fields.htms.twig
|
||||||
|
|
||||||
|
Mise en forme de champs de formulaire
|
64
apps.mk
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
#
|
||||||
|
# NE PAS EDITER CE FICHIER
|
||||||
|
#
|
||||||
|
# Voir Makefile
|
||||||
|
|
||||||
|
|
||||||
|
##########################
|
||||||
|
# Application web envole #
|
||||||
|
##########################
|
||||||
|
ifneq (, $(filter oui web, $(PKGAPPS)))
|
||||||
|
#
|
||||||
|
# Sanity check
|
||||||
|
#
|
||||||
|
ifeq (, $(filter-out X.X, $(strip $(VERSION))))
|
||||||
|
$(error $$(VERSION) variable has incorrect value '$(VERSION)')
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Where to store web application files
|
||||||
|
WEB_PATH := $(DESTDIR)/var/www/html
|
||||||
|
|
||||||
|
# Envole
|
||||||
|
sharenvole_PROG_DIR := $(DESTDIR)/usr/share/envole/$(SOURCE)
|
||||||
|
|
||||||
|
src_$(SOURCE)-$(VERSION)_REC_DIR := $(WEB_PATH)/$(SOURCE)
|
||||||
|
src_plugins-$(VERSION)_REC_DIR := $(WEB_PATH)/$(SOURCE)/plugin
|
||||||
|
src_lang-$(VERSION)_REC_DIR := $(WEB_PATH)/$(SOURCE)/lang
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
##########################
|
||||||
|
# Application EOLE flask #
|
||||||
|
##########################
|
||||||
|
ifneq (, $(filter flask, $(PKGAPPS)))
|
||||||
|
#
|
||||||
|
# Sanity check
|
||||||
|
#
|
||||||
|
ifeq (, $(filter-out XXX, $(strip $(FLASK_MODULE))))
|
||||||
|
$(error $$(FLASK_MODULE) variable has incorrect value '$(FLASK_MODULE)')
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq (, $(strip $(wildcard src/$(FLASK_MODULE).conf)))
|
||||||
|
$(error missing eoleflask configuration file 'src/$(FLASK_MODULE).conf')
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Everything is related to mount point
|
||||||
|
APPS_MOUNT_POINT := $(shell sed -ne 's|^"MOUNT_POINT"[[:space:]]*:[[:space:]]*"/\([^"]*\)",|\1|p' \
|
||||||
|
src/$(FLASK_MODULE).conf)
|
||||||
|
|
||||||
|
ifeq (, $(strip $(APPS_MOUNT_POINT)))
|
||||||
|
$(error no "MOUNT_POINT" in eoleflask configuration file 'src/$(FLASK_MODULE).conf')
|
||||||
|
endif
|
||||||
|
|
||||||
|
# eole-flask configuration
|
||||||
|
src_DATA_DIR := $(DESTDIR)/etc/eole/flask/available
|
||||||
|
|
||||||
|
# Where to store flask application files
|
||||||
|
FLASK_PATH := $(eole_DIR)/flask/$(APPS_MOUNT_POINT)
|
||||||
|
|
||||||
|
# static files
|
||||||
|
src_$(FLASK_MODULE)_static_REC_DIR := $(FLASK_PATH)/static
|
||||||
|
src_$(FLASK_MODULE)_templates_REC_DIR := $(FLASK_PATH)/templates
|
||||||
|
src_$(FLASK_MODULE)_instance_REC_DIR := $(FLASK_PATH)/resources
|
||||||
|
|
||||||
|
endif
|
@ -1,72 +0,0 @@
|
|||||||
// jquery
|
|
||||||
import $ from 'jquery'
|
|
||||||
window.jQuery = $;
|
|
||||||
window.$ = $;
|
|
||||||
|
|
||||||
// jqueryui
|
|
||||||
import 'jqueryui'
|
|
||||||
import 'jqueryui/jquery-ui.min.css';
|
|
||||||
|
|
||||||
// Bootstrap
|
|
||||||
require('bootstrap');
|
|
||||||
require('bootstrap/dist/css/bootstrap.css');
|
|
||||||
|
|
||||||
// Fontawesome
|
|
||||||
require('@fortawesome/fontawesome-free/css/all.css');
|
|
||||||
|
|
||||||
// Datatables
|
|
||||||
require('datatables.net-bs4');
|
|
||||||
require('datatables.net-bs4/css/dataTables.bootstrap4.min.css');
|
|
||||||
require('./js/datatables.init.js');
|
|
||||||
|
|
||||||
// Select2
|
|
||||||
require('select2');
|
|
||||||
require('select2/dist/js/i18n/fr.js');
|
|
||||||
require('select2/dist/css/select2.css');
|
|
||||||
require('@ttskch/select2-bootstrap4-theme/dist/select2-bootstrap4.css');
|
|
||||||
$(() => {
|
|
||||||
$('.select2entity').select2(
|
|
||||||
{
|
|
||||||
theme: 'bootstrap4',
|
|
||||||
language: "fr"
|
|
||||||
}
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Spectrum-colorpicker2
|
|
||||||
require('spectrum-colorpicker2/dist/spectrum.min.js');
|
|
||||||
require('spectrum-colorpicker2/dist/spectrum.min.css');
|
|
||||||
|
|
||||||
// CropSelectJs
|
|
||||||
require('crop-select-js/crop-select-js.min.css');
|
|
||||||
window.CropSelectJs = require('crop-select-js/crop-select-js.min.js');
|
|
||||||
|
|
||||||
// iframe-resizer
|
|
||||||
require('iframe-resizer/js/iframeResizer.min.js');
|
|
||||||
require('iframe-resizer/js/iframeResizer.contentWindow.min.js');
|
|
||||||
|
|
||||||
// Slick
|
|
||||||
require('slick-carousel/slick/slick.css');
|
|
||||||
require('slick-carousel/slick/slick-theme.css');
|
|
||||||
const slick = require('slick-carousel/slick/slick.min.js');
|
|
||||||
global.slick = slick;
|
|
||||||
|
|
||||||
// Imageloaded
|
|
||||||
const imagesLoaded = require('imagesloaded/imagesloaded.js');
|
|
||||||
global.imagesLoaded = imagesLoaded;
|
|
||||||
|
|
||||||
// Masonry
|
|
||||||
const masonry = require('masonry-layout/dist/masonry.pkgd.min.js');
|
|
||||||
global.masonry = masonry;
|
|
||||||
|
|
||||||
// Start the Stimulus application
|
|
||||||
import './bootstrap';
|
|
||||||
|
|
||||||
// App sytle
|
|
||||||
import './styles/font.css';
|
|
||||||
import './styles/app.css';
|
|
||||||
|
|
||||||
// App js
|
|
||||||
require('./js/app.js');
|
|
||||||
|
|
||||||
|
|
11
assets/bootstrap.js
vendored
@ -1,11 +0,0 @@
|
|||||||
import { startStimulusApp } from '@symfony/stimulus-bridge';
|
|
||||||
|
|
||||||
// Registers Stimulus controllers from controllers.json and in the controllers/ directory
|
|
||||||
export const app = startStimulusApp(require.context(
|
|
||||||
'@symfony/stimulus-bridge/lazy-controller-loader!./controllers',
|
|
||||||
true,
|
|
||||||
/\.[jt]sx?$/
|
|
||||||
));
|
|
||||||
|
|
||||||
// register any custom, 3rd party controllers here
|
|
||||||
// app.register('some_controller_name', SomeImportedController);
|
|
@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"controllers": [],
|
|
||||||
"entrypoints": []
|
|
||||||
}
|
|
@ -1,16 +0,0 @@
|
|||||||
import { Controller } from '@hotwired/stimulus';
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This is an example Stimulus controller!
|
|
||||||
*
|
|
||||||
* Any element with a data-controller="hello" attribute will cause
|
|
||||||
* this controller to be executed. The name "hello" comes from the filename:
|
|
||||||
* hello_controller.js -> "hello"
|
|
||||||
*
|
|
||||||
* Delete this file or adapt it for your use!
|
|
||||||
*/
|
|
||||||
export default class extends Controller {
|
|
||||||
connect() {
|
|
||||||
this.element.textContent = 'Hello Stimulus! Edit me in assets/controllers/hello_controller.js';
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,21 +0,0 @@
|
|||||||
|
|
||||||
require('dropzone/dist/dropzone.css');
|
|
||||||
const { Dropzone } = require("dropzone");
|
|
||||||
|
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
|
||||||
var elt = document.getElementById('mydropzone');
|
|
||||||
maxFiles=elt.getAttribute("data-maxFiles");
|
|
||||||
if(maxFiles!=1) maxFiles=null;
|
|
||||||
|
|
||||||
var mydropzone = new Dropzone(elt, {
|
|
||||||
acceptedMimeTypes: $(elt).data("acceptedMimeTypes"),
|
|
||||||
maxFiles: maxFiles,
|
|
||||||
init: function() {
|
|
||||||
dropzoneinit(this);
|
|
||||||
},
|
|
||||||
success: function( file, response ){
|
|
||||||
dropzonesuccess(file,response);
|
|
||||||
},
|
|
||||||
});
|
|
||||||
window.mydropzone=mydropzone;
|
|
||||||
});
|
|
102
assets/js/app.js
@ -1,102 +0,0 @@
|
|||||||
$(document).ready(function() {
|
|
||||||
// Color
|
|
||||||
$(".pick-a-color").spectrum(
|
|
||||||
{
|
|
||||||
preferredFormat: "hex",
|
|
||||||
type: "string",
|
|
||||||
showPalette: true,
|
|
||||||
allowEmpty: true,
|
|
||||||
showAlpha: false,
|
|
||||||
}
|
|
||||||
);
|
|
||||||
$(".pick-a-color").attr("autocomplete","off");
|
|
||||||
|
|
||||||
// Method confirm
|
|
||||||
var doit = true;
|
|
||||||
$("a[data-method]").on('click',function(){
|
|
||||||
if($(this).data('confirm')){
|
|
||||||
doit = confirm($(this).data('confirm'));
|
|
||||||
if(!doit) return false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
$("button[data-method]").on('click',function(){
|
|
||||||
if($(this).data('confirm')){
|
|
||||||
doit = confirm($(this).data('confirm'));
|
|
||||||
if(!doit) return false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Modal
|
|
||||||
$(".btn-modal").click(function() {
|
|
||||||
$("#"+$(this).data("modalid")+" .modal-title").text($(this).data("modaltitle"));
|
|
||||||
$("#"+$(this).data("modalid")+" iframe").attr("src",$(this).data("modalurl"));
|
|
||||||
$("#"+$(this).data("modalid")).modal("show");
|
|
||||||
});
|
|
||||||
|
|
||||||
// Item
|
|
||||||
$( ".item" ).hover(function() {
|
|
||||||
$(this).find(".item-action a").show();
|
|
||||||
});
|
|
||||||
|
|
||||||
$( ".item" ).mouseleave(function() {
|
|
||||||
$(this).find(".item-action a").hide();
|
|
||||||
});
|
|
||||||
|
|
||||||
$( ".item-info" ).click(function() {
|
|
||||||
parent=$(this).parent().parent().parent().parent().parent();
|
|
||||||
if(parent.find(".item-description").hasClass("hide")) {
|
|
||||||
parent.find(".item-description").removeClass("hide");
|
|
||||||
parent.addClass("w-100");
|
|
||||||
parent.css("justify-content","flex-start");
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
parent.find(".item-description").addClass("hide");
|
|
||||||
parent.removeClass("w-100");
|
|
||||||
|
|
||||||
if(parent.hasClass("item-large"))
|
|
||||||
parent.css("justify-content","flex-start");
|
|
||||||
else
|
|
||||||
parent.css("justify-content","center");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// select2-icon
|
|
||||||
function iformat(icon) {
|
|
||||||
return $('<span><i class="' + icon.id + '"></i> ' + icon.text + '</span>');
|
|
||||||
}
|
|
||||||
$('.select2-icon').select2({
|
|
||||||
width: "100%",
|
|
||||||
placeholder: 'choisir un icône',
|
|
||||||
allowClear: true,
|
|
||||||
templateSelection: iformat,
|
|
||||||
templateResult: iformat,
|
|
||||||
formatResult: iformat,
|
|
||||||
allowHtml: true,
|
|
||||||
escapeMarkup: function(m) {
|
|
||||||
return m;
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
// Menu
|
|
||||||
$(".dropdown-toggle").click(function(){
|
|
||||||
$(this).parent().find(".dropdown-menu").toggle();
|
|
||||||
})
|
|
||||||
$(".nav-toogle").click(function(){
|
|
||||||
$("#selmenu").modal("toggle");
|
|
||||||
})
|
|
||||||
|
|
||||||
// Forcer le resize des objects
|
|
||||||
Resize();
|
|
||||||
|
|
||||||
// Focus
|
|
||||||
$("#page").focus();
|
|
||||||
});
|
|
||||||
|
|
||||||
$( window ).resize(function() {
|
|
||||||
Resize();
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,31 +0,0 @@
|
|||||||
$(document).ready(function() {
|
|
||||||
$.extend( $.fn.dataTable.defaults, {
|
|
||||||
responsive: true,
|
|
||||||
"iDisplayLength": 1000,
|
|
||||||
"scrollX": true,
|
|
||||||
"oLanguage": {
|
|
||||||
"sThousands": " ",
|
|
||||||
"sProcessing": "Traitement en cours...",
|
|
||||||
"sSearch": "Rechercher :",
|
|
||||||
"sLengthMenu": "Afficher _MENU_ éléments",
|
|
||||||
"sInfo": "Affichage de l'élement _START_ à _END_ sur _TOTAL_ éléments",
|
|
||||||
"sInfoEmpty": "Affichage de l'élement 0 à 0 sur 0 éléments",
|
|
||||||
"sInfoFiltered": "(filtré de _MAX_ éléments au total)",
|
|
||||||
"sInfoPostFix": "",
|
|
||||||
"sLoadingRecords": "Chargement en cours...",
|
|
||||||
"sZeroRecords": "Aucun élément à afficher",
|
|
||||||
"sEmptyTable": "Aucune donnée disponible dans le tableau",
|
|
||||||
"oPaginate": {
|
|
||||||
"sFirst": "Premier",
|
|
||||||
"sPrevious": "Précédent",
|
|
||||||
"sNext": "Suivant",
|
|
||||||
"sLast": "Dernier"
|
|
||||||
},
|
|
||||||
"oAria": {
|
|
||||||
"sSortAscending": ": activer pour trier la colonne par ordre croissant",
|
|
||||||
"sSortDescending": ": activer pour trier la colonne par ordre décroissant"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
//"stateSave": true
|
|
||||||
});
|
|
||||||
});
|
|
@ -1,591 +0,0 @@
|
|||||||
/* COLOR */
|
|
||||||
body {
|
|
||||||
background-color: var(--colorbgbodylight);
|
|
||||||
color: var(--colorftbodylight);
|
|
||||||
}
|
|
||||||
|
|
||||||
.header {
|
|
||||||
color: var(--colorfttitledark);
|
|
||||||
}
|
|
||||||
|
|
||||||
.header h1, .header a, #sidebar a, #sidebar hr{
|
|
||||||
color: var(--colorfttitledark);
|
|
||||||
}
|
|
||||||
|
|
||||||
.header a:hover, #sidebar a:hover {
|
|
||||||
color: var(--colorfttitledark);
|
|
||||||
text-decoration:none;
|
|
||||||
}
|
|
||||||
.navbar {
|
|
||||||
background-color: var(--colorbgbodydark);
|
|
||||||
}
|
|
||||||
|
|
||||||
.table,
|
|
||||||
.table-hover > tbody > tr:hover > *,
|
|
||||||
.table-striped > tbody > tr:nth-of-type(odd) > * {
|
|
||||||
color: var(--colorftbodylight);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* FONT */
|
|
||||||
body {
|
|
||||||
font-family: var(--fontbody);
|
|
||||||
}
|
|
||||||
|
|
||||||
h1, h2, h3, .navbar-brand, .card-header, .modal-header h4, .widgetheader .title {
|
|
||||||
font-family: var(--fonttitle);
|
|
||||||
color: var(--colorfttitlelight);
|
|
||||||
}
|
|
||||||
|
|
||||||
h1 { font-size: var(--fontsizeh1); }
|
|
||||||
h2 { font-size: var(--fontsizeh2); }
|
|
||||||
h3 { font-size: var(--fontsizeh3); }
|
|
||||||
h4 { font-size: var(--fontsizeh4); }
|
|
||||||
|
|
||||||
.card-header .custom-control, .grid-item-title h2 {
|
|
||||||
font-family: var(--fontbody);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* GLOBAL */
|
|
||||||
html, body {
|
|
||||||
height:100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
a {
|
|
||||||
text-decoration: none;
|
|
||||||
cursor: pointer;
|
|
||||||
color: var(--colorfttitlelight);
|
|
||||||
}
|
|
||||||
|
|
||||||
a:hover {
|
|
||||||
color: var(--colorfttitlelight-darker);
|
|
||||||
}
|
|
||||||
|
|
||||||
main {
|
|
||||||
display:flex;
|
|
||||||
overflow:hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dataTable {
|
|
||||||
border-style: solid none solid solid;
|
|
||||||
border-width: 1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.avatar {
|
|
||||||
width:30px;
|
|
||||||
height:30px;
|
|
||||||
background-color: var(--colorbgbodydark);
|
|
||||||
border-radius: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.select2,.select2-container .select2-search--inline {
|
|
||||||
width:100%!important;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* HEADER */
|
|
||||||
.header h1 {
|
|
||||||
text-transform: uppercase;
|
|
||||||
padding-left: 10px;
|
|
||||||
padding-top: 15px;
|
|
||||||
margin: 0px;
|
|
||||||
line-height:var(--lineheighth1);
|
|
||||||
}
|
|
||||||
|
|
||||||
.header h1 small {
|
|
||||||
font-size:60%;
|
|
||||||
}
|
|
||||||
|
|
||||||
#header .nav-link {
|
|
||||||
padding:0.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: 991px) {
|
|
||||||
#header {
|
|
||||||
display:none !important;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* NAVBAR */
|
|
||||||
.nav {
|
|
||||||
vertical-align: middle;
|
|
||||||
}
|
|
||||||
|
|
||||||
.navbar-logo {
|
|
||||||
padding: 0 0 0 0.5rem !important;
|
|
||||||
}
|
|
||||||
.navbar-logo img{
|
|
||||||
height:30px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#menulink {
|
|
||||||
zoom:150%;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* MENU */
|
|
||||||
#menu {
|
|
||||||
min-height:44px;
|
|
||||||
padding: 0px 0px 0px 10px !important;
|
|
||||||
justify-content: space-around;
|
|
||||||
}
|
|
||||||
|
|
||||||
#menu .navbar-logo {
|
|
||||||
margin-right: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#menuapp {
|
|
||||||
background-color: var(--colorbgbodydark);
|
|
||||||
}
|
|
||||||
|
|
||||||
#menuuser {
|
|
||||||
min-width: 100px;
|
|
||||||
display:flex;
|
|
||||||
justify-content: end;
|
|
||||||
}
|
|
||||||
|
|
||||||
.nav-item {
|
|
||||||
padding:10px 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.nav-item.active {
|
|
||||||
background-color: var(--colorbgbodydark-darker);
|
|
||||||
}
|
|
||||||
|
|
||||||
.menupage a {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.menupage a i{
|
|
||||||
margin-right: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dropdown-menu {
|
|
||||||
background-color: var(--colorbgbodydark);
|
|
||||||
margin-top: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dropdown-item:hover, .dropdown-item:focus {
|
|
||||||
background-color: var(--colorbgbodydark-darker);
|
|
||||||
color: var(--colorftbodydark);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@media (max-width: 991px) {
|
|
||||||
#menu {
|
|
||||||
display:flex !important;
|
|
||||||
padding: 0px !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
#menuapp {
|
|
||||||
position: absolute;
|
|
||||||
top:50px;
|
|
||||||
left:0px;
|
|
||||||
width:100%;
|
|
||||||
overflow-y: auto;
|
|
||||||
height:500px;
|
|
||||||
display:none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#menuapp .nav {
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
|
|
||||||
#menuapp .navbar-nav {
|
|
||||||
flex-direction: column;
|
|
||||||
padding:15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#menu .nav-toogle {
|
|
||||||
display:block !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pagesportal {
|
|
||||||
display:block !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pagesuser {
|
|
||||||
display:block !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.navbar-logo {
|
|
||||||
padding: 10px 5px 10px 10px !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
#switchHeader {
|
|
||||||
display:none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* SIDEBAR */
|
|
||||||
#sidebar {
|
|
||||||
background-color: var(--colorbgbodydark);
|
|
||||||
width: 100%;
|
|
||||||
max-width:300px;
|
|
||||||
overflow-y: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
#sidebar span {
|
|
||||||
padding-left: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#sidebar .nav-pills .nav-link {
|
|
||||||
border-radius:0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#sidebar .nav-pills .nav-link.active {
|
|
||||||
background-color: var(--colorbgbodydark-darker);
|
|
||||||
}
|
|
||||||
|
|
||||||
#sidebar .nav-link-items {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#sidebar .nav-link-item {
|
|
||||||
padding-left: 2em;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: 991px) {
|
|
||||||
#sidebar {
|
|
||||||
max-width:65px;
|
|
||||||
}
|
|
||||||
#sidebar span {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
#sidebar i {
|
|
||||||
font-size: 25px;
|
|
||||||
}
|
|
||||||
#sidebar .nav-link-item {
|
|
||||||
padding-left: 1rem;
|
|
||||||
}
|
|
||||||
#sidebar .nav-link-section {
|
|
||||||
display:block;
|
|
||||||
margin-bottom: 10px;
|
|
||||||
}
|
|
||||||
#sidebar .nav-link-title {
|
|
||||||
display:none;
|
|
||||||
}
|
|
||||||
#sidebar .nav-link-items {
|
|
||||||
display:block !important;
|
|
||||||
border-bottom: 1px solid var(--colorfttitledark);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* PAGE */
|
|
||||||
#page {
|
|
||||||
overflow-y: auto;
|
|
||||||
width:100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ckeditor-content img {
|
|
||||||
max-width:100%;
|
|
||||||
height:auto !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hide {
|
|
||||||
display: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.card-body .form-group:first-child {
|
|
||||||
margin-top: 0px !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* ITEM */
|
|
||||||
.itemframe {
|
|
||||||
width: 100%
|
|
||||||
}
|
|
||||||
|
|
||||||
.items-list {
|
|
||||||
display:flex;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
margin-bottom: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.item {
|
|
||||||
padding:10px;
|
|
||||||
display:flex;
|
|
||||||
text-align: center;
|
|
||||||
justify-content: center;
|
|
||||||
margin-right:5px;
|
|
||||||
margin-bottom:5px;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
color: var(--colorftbodydark) !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.item-action {
|
|
||||||
width: 100%;
|
|
||||||
color: var(--colorftbodydark) !important;
|
|
||||||
padding-top:10px;
|
|
||||||
height:35px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.item-action i {
|
|
||||||
font-size: 22px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.item-container {
|
|
||||||
display:flex;
|
|
||||||
flex-wrap: nowrap;
|
|
||||||
justify-content: space-around;
|
|
||||||
}
|
|
||||||
|
|
||||||
.item-content {
|
|
||||||
display: flex;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
justify-content: space-between;
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
|
|
||||||
.item img {
|
|
||||||
margin:0px auto 10px auto;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
.item h3 {
|
|
||||||
margin:0px;
|
|
||||||
color: var(--colorftbodydark);
|
|
||||||
}
|
|
||||||
|
|
||||||
.item-subtitle {
|
|
||||||
font-size: 10px;
|
|
||||||
margin:0px;
|
|
||||||
color: var(--colorftbodydark);
|
|
||||||
}
|
|
||||||
|
|
||||||
.item-description {
|
|
||||||
color: var(--colorftbodydark);
|
|
||||||
text-align: left;
|
|
||||||
padding: 0px 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.item-description img {
|
|
||||||
max-width: 100% !important;
|
|
||||||
height: auto !important;
|
|
||||||
}
|
|
||||||
.item-description p:last-child {
|
|
||||||
margin-bottom: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.item-verysmall {
|
|
||||||
width: 80px;
|
|
||||||
padding:5px 2px 2px 2px;
|
|
||||||
}
|
|
||||||
.item-verysmall .item-link {
|
|
||||||
width: 76px;
|
|
||||||
}
|
|
||||||
.item-verysmall img {
|
|
||||||
height:40px;
|
|
||||||
}
|
|
||||||
.item-verysmall h3{
|
|
||||||
font-size: 10px;
|
|
||||||
font-family: var(--fontbody);
|
|
||||||
text-transform: uppercase;
|
|
||||||
white-space: nowrap;
|
|
||||||
overflow: hidden;
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
}
|
|
||||||
.item-verysmall .item-subtitle{
|
|
||||||
display:none;
|
|
||||||
}
|
|
||||||
.item-verysmall .item-action {
|
|
||||||
padding-top:0px;
|
|
||||||
height:25px;
|
|
||||||
}
|
|
||||||
.item-verysmall .item-action i {
|
|
||||||
font-size: 14px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.item-small {
|
|
||||||
width: 100px;
|
|
||||||
padding:10px 5px;
|
|
||||||
}
|
|
||||||
.item-small .item-link {
|
|
||||||
width: 90px;
|
|
||||||
}
|
|
||||||
.item-small img {
|
|
||||||
height:60px;
|
|
||||||
}
|
|
||||||
.item-small h3{
|
|
||||||
font-size: 12px;
|
|
||||||
font-family: var(--fontbody);
|
|
||||||
text-transform: uppercase;
|
|
||||||
white-space: nowrap;
|
|
||||||
overflow: hidden;
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
}
|
|
||||||
.item-small .item-subtitle{
|
|
||||||
display:none;
|
|
||||||
}
|
|
||||||
.item-small .item-action i {
|
|
||||||
font-size: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.item-medium {
|
|
||||||
width: 150px;
|
|
||||||
}
|
|
||||||
.item-medium .item-link {
|
|
||||||
width: 130px;
|
|
||||||
}
|
|
||||||
.item-medium img {
|
|
||||||
height:90px;
|
|
||||||
}
|
|
||||||
.item-medium h3{
|
|
||||||
font-size: 18px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.item-large {
|
|
||||||
width:300px;
|
|
||||||
justify-content: left;
|
|
||||||
}
|
|
||||||
.item-large .item-link {
|
|
||||||
display: flex;
|
|
||||||
}
|
|
||||||
.item-large img {
|
|
||||||
height:120px;
|
|
||||||
}
|
|
||||||
.item-large .item-title {
|
|
||||||
text-align:left;
|
|
||||||
padding-left:10px;
|
|
||||||
}
|
|
||||||
.item-large h3{
|
|
||||||
font-size: 25px;
|
|
||||||
border-bottom: 1px solid var(--colorftbodydark);
|
|
||||||
}
|
|
||||||
.item-large .item-container {
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
.item-large .item-action {
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
.item-large .item-description {
|
|
||||||
margin-top:15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.item-list {
|
|
||||||
width:100%;
|
|
||||||
justify-content: left;
|
|
||||||
margin-right: 0px;
|
|
||||||
|
|
||||||
}
|
|
||||||
.item-list .item-container {
|
|
||||||
flex-direction: column;
|
|
||||||
width:100%;
|
|
||||||
}
|
|
||||||
.item-list .item-content {
|
|
||||||
flex-wrap: nowrap;
|
|
||||||
flex-direction: row;
|
|
||||||
}
|
|
||||||
.item-list .item-link {
|
|
||||||
display:flex;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
.item-list img {
|
|
||||||
height:40px;
|
|
||||||
margin:0px;
|
|
||||||
}
|
|
||||||
.item-list .item-title {
|
|
||||||
text-align:left;
|
|
||||||
padding-left:10px;
|
|
||||||
}
|
|
||||||
.item-list h3{
|
|
||||||
font-size: 18px;
|
|
||||||
font-family: var(--fontbody);
|
|
||||||
text-transform: uppercase;
|
|
||||||
}
|
|
||||||
.item-list .item-subtitle{
|
|
||||||
display:none;
|
|
||||||
}
|
|
||||||
.item-list .item-action {
|
|
||||||
width:auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.item-list .item-description {
|
|
||||||
padding:10px 0px 5px 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* WIDGET */
|
|
||||||
.widget{
|
|
||||||
margin-bottom:30px;
|
|
||||||
}
|
|
||||||
.widget-bordered {
|
|
||||||
border:1px solid;
|
|
||||||
}
|
|
||||||
.widget-menu {
|
|
||||||
float: right;
|
|
||||||
color: #fff;
|
|
||||||
margin: 10px 5px 0px 0px;
|
|
||||||
display:none;
|
|
||||||
}
|
|
||||||
.widget-menu i {
|
|
||||||
cursor:pointer;
|
|
||||||
}
|
|
||||||
.widget-header {
|
|
||||||
padding:10px 10px 5px 10px;
|
|
||||||
font-family: var(--fonttitle);
|
|
||||||
font-size: 25px;
|
|
||||||
}
|
|
||||||
.widget-logo {
|
|
||||||
height:40px;
|
|
||||||
margin-right:5px;
|
|
||||||
margin-top:-5px;
|
|
||||||
cursor: pointer;
|
|
||||||
|
|
||||||
}
|
|
||||||
.widget-title {
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
.widget-body {
|
|
||||||
padding: 5px 0px 0px 0px;
|
|
||||||
}
|
|
||||||
.widget-bordered .widget-body {
|
|
||||||
padding: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.widget-body .items-list {
|
|
||||||
margin-bottom: 5px;
|
|
||||||
}
|
|
||||||
.widget-body .item-list:first-child {
|
|
||||||
margin-top: 0px;
|
|
||||||
}
|
|
||||||
.widget-body .items-list:last-child {
|
|
||||||
margin-bottom: -5px;
|
|
||||||
}
|
|
||||||
.widget-body .item-description {
|
|
||||||
padding:10px 0px 0px 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.widget-body .slick {
|
|
||||||
min-height: 200px;
|
|
||||||
}
|
|
||||||
.widget-body .slick-slide {
|
|
||||||
min-height: 200px;
|
|
||||||
}
|
|
||||||
.widget-body .slick-arrow {
|
|
||||||
display: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.widget-body .slick-dots {
|
|
||||||
bottom: 5px;
|
|
||||||
color: var(--colorftbodydark);
|
|
||||||
}
|
|
||||||
|
|
||||||
.widgetplaceholder {
|
|
||||||
background-color: var(--colorbgbodydark);
|
|
||||||
}
|
|
||||||
|
|
||||||
.cat-list {
|
|
||||||
color: var(--colorfttitledark);
|
|
||||||
background-color: var(--colorbgbodydark);
|
|
||||||
padding: 5px 10px;
|
|
||||||
display: inline-block;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,189 +0,0 @@
|
|||||||
@font-face {
|
|
||||||
font-family: 'Redressed';
|
|
||||||
src: url('../fonts/Redressed-webfont.ttf') format('truetype');
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Acme-Regular';
|
|
||||||
src: url('../fonts/Acme-Regular-webfont.ttf') format('truetype');
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Peacesans';
|
|
||||||
src: url('../fonts/Peacesans-webfont.ttf') format('truetype');
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Roboto-Regular';
|
|
||||||
src: url('../fonts/Roboto-Regular-webfont.ttf') format('truetype');
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Justanotherhand-Regular';
|
|
||||||
src: url('../fonts/Justanotherhand-Regular-webfont.ttf') format('truetype');
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Lato-Regular';
|
|
||||||
src: url('../fonts/Lato-Regular.ttf') format('truetype');
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'ABeeZee-Regular';
|
|
||||||
src: url('../fonts/ABeeZee-Regular.ttf') format('truetype');
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'AlfaSlabOne-Regular';
|
|
||||||
src: url('../fonts/AlfaSlabOne-Regular.ttf') format('truetype');
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Anton-Regular';
|
|
||||||
src: url('../fonts/Anton-Regular.ttf') format('truetype');
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'FredokaOne-Regular';
|
|
||||||
src: url('../fonts/FredokaOne-Regular.ttf') format('truetype');
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Overpass-Black';
|
|
||||||
src: url('../fonts/Overpass-Black.ttf') format('truetype');
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Righteous-Regular';
|
|
||||||
src: url('../fonts/Righteous-Regular.ttf') format('truetype');
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Signika-Regular';
|
|
||||||
src: url('../fonts/Signika-Regular.ttf') format('truetype');
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Teko-Bold';
|
|
||||||
src: url('../fonts/Teko-Bold.ttf') format('truetype');
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'LuckiestGuy-Regular';
|
|
||||||
src: url('../fonts/LuckiestGuy-Regular.ttf') format('truetype');
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Baloo-Regular';
|
|
||||||
src: url('../fonts/Baloo-Regular.ttf') format('truetype');
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'CarterOne-Regular';
|
|
||||||
src: url('../fonts/CarterOne-Regular.ttf') format('truetype');
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Chewy-Regular';
|
|
||||||
src: url('../fonts/Chewy-Regular.ttf') format('truetype');
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Courgette-Regular';
|
|
||||||
src: url('../fonts/Courgette-Regular.ttf') format('truetype');
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'LexendDeca-Regular';
|
|
||||||
src: url('../fonts/LexendDeca-Regular.ttf') format('truetype');
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'RubikMonoOne-Regular';
|
|
||||||
src: url('../fonts/RubikMonoOne-Regular.ttf') format('truetype');
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'SigmarOne-Regular';
|
|
||||||
src: url('../fonts/SigmarOne-Regular.ttf') format('truetype');
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Viga-Regular';
|
|
||||||
src: url('../fonts/Viga-Regular.ttf') format('truetype');
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Grandstander';
|
|
||||||
src: url('../fonts/Grandstander-Black.ttf') format('truetype');
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'PassionOne';
|
|
||||||
src: url('../fonts/PassionOne-Regular.ttf') format('truetype');
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Theboldfont';
|
|
||||||
src: url('../fonts/theboldfont.ttf') format('truetype');
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Futura-Condensed-Extra-Bold';
|
|
||||||
src: url('../fonts/Futura-Condensed-Extra-Bold.otf') format('opentype');
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
|
|
17
bin/console
@ -1,17 +0,0 @@
|
|||||||
#!/usr/bin/env php
|
|
||||||
<?php
|
|
||||||
|
|
||||||
use App\Kernel;
|
|
||||||
use Symfony\Bundle\FrameworkBundle\Console\Application;
|
|
||||||
|
|
||||||
if (!is_file(dirname(__DIR__).'/vendor/autoload_runtime.php')) {
|
|
||||||
throw new LogicException('Symfony Runtime is missing. Try running "composer require symfony/runtime".');
|
|
||||||
}
|
|
||||||
|
|
||||||
require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
|
|
||||||
|
|
||||||
return function (array $context) {
|
|
||||||
$kernel = new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']);
|
|
||||||
|
|
||||||
return new Application($kernel);
|
|
||||||
};
|
|
@ -1,12 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
SERVICE="messager.sh"
|
|
||||||
pgrep -x "$SERVICE" >/tmp/messager.pid
|
|
||||||
NB=$(wc -l < /tmp/messager.pid)
|
|
||||||
if [ ${NB} -gt 1 ]
|
|
||||||
then
|
|
||||||
echo "$SERVICE is running"
|
|
||||||
else
|
|
||||||
echo "$SERVICE stopped"
|
|
||||||
/var/www/html/nineskeletor/bin/console messenger:consume async --memory-limit=512m --env=prod
|
|
||||||
fi
|
|
@ -1 +0,0 @@
|
|||||||
* * * * * www-data /var/www/html/nineskeletor/bin/console app:Cron &>/dev/null
|
|
@ -1,13 +0,0 @@
|
|||||||
[Unit]
|
|
||||||
StartLimitIntervalSec=20s
|
|
||||||
StartLimitBurst=5
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
ExecStart=/usr/bin/php -d memory_limit=-1 /var/www/html/nineskeletor/bin/console messenger:consume async --memory-limit=512m --env=prod
|
|
||||||
Restart=always
|
|
||||||
RestartSec=1
|
|
||||||
TimeoutSec=300
|
|
||||||
User=www-data
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
19
bin/phpunit
@ -1,19 +0,0 @@
|
|||||||
#!/usr/bin/env php
|
|
||||||
<?php
|
|
||||||
|
|
||||||
if (!ini_get('date.timezone')) {
|
|
||||||
ini_set('date.timezone', 'UTC');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (is_file(dirname(__DIR__).'/vendor/phpunit/phpunit/phpunit')) {
|
|
||||||
define('PHPUNIT_COMPOSER_INSTALL', dirname(__DIR__).'/vendor/autoload.php');
|
|
||||||
require PHPUNIT_COMPOSER_INSTALL;
|
|
||||||
PHPUnit\TextUI\Command::main();
|
|
||||||
} else {
|
|
||||||
if (!is_file(dirname(__DIR__).'/vendor/symfony/phpunit-bridge/bin/simple-phpunit.php')) {
|
|
||||||
echo "Unable to find the `simple-phpunit.php` script in `vendor/symfony/phpunit-bridge/bin/`.\n";
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
require dirname(__DIR__).'/vendor/symfony/phpunit-bridge/bin/simple-phpunit.php';
|
|
||||||
}
|
|
@ -1,41 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Se positionner sur la racine du projet
|
|
||||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
|
||||||
cd ${DIR}
|
|
||||||
cd ..
|
|
||||||
DIR=$(pwd)
|
|
||||||
|
|
||||||
# Import des env
|
|
||||||
. $DIR/.env
|
|
||||||
. $DIR/.env.local
|
|
||||||
|
|
||||||
docker-compose stop
|
|
||||||
docker-compose up -d
|
|
||||||
|
|
||||||
# Déclaration d'un proxy
|
|
||||||
if [[ "$PROXY_USE" == "1" ]]
|
|
||||||
then
|
|
||||||
export HTTP_PROXY="$PROXY_HOST:$PROXY_PORT"
|
|
||||||
export HTTPS_PROXY="$PROXY_HOST:$PROXY_PORT"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Suppression des logs trop ancien
|
|
||||||
if [[ -d $DIR/var/log ]]
|
|
||||||
then
|
|
||||||
find $DIR/var/log -mindepth 1 -mtime +7 -delete
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Installation des dépendances composer
|
|
||||||
echo COMPOSER = Install
|
|
||||||
composer install --no-interaction
|
|
||||||
bin/console doctrine:migrations:migrate --no-interaction
|
|
||||||
bin/console app:Init
|
|
||||||
bin/console app:Cron
|
|
||||||
|
|
||||||
|
|
||||||
# Permissions
|
|
||||||
echo PERMISSIONS
|
|
||||||
./bin/perm.sh www-data
|
|
||||||
|
|
||||||
echo
|
|
@ -1 +0,0 @@
|
|||||||
module.exports = {extends: ['@commitlint/config-conventional']};
|
|
135
composer.json
@ -1,135 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "project",
|
|
||||||
"license": "proprietary",
|
|
||||||
"minimum-stability": "stable",
|
|
||||||
"prefer-stable": true,
|
|
||||||
"require": {
|
|
||||||
"php": ">=8.1",
|
|
||||||
"ext-ctype": "*",
|
|
||||||
"ext-iconv": "*",
|
|
||||||
"aws/aws-sdk-php": "^3.234",
|
|
||||||
"doctrine/annotations": "^1.0",
|
|
||||||
"doctrine/doctrine-bundle": "^2.6",
|
|
||||||
"doctrine/doctrine-migrations-bundle": "^3.2",
|
|
||||||
"doctrine/orm": "^2.12",
|
|
||||||
"friendsofsymfony/ckeditor-bundle": "^2.4",
|
|
||||||
"friendsofsymfony/rest-bundle": "^3.3",
|
|
||||||
"gregwar/captcha-bundle": "^2.2",
|
|
||||||
"jasig/phpcas": "^1.6",
|
|
||||||
"mashape/unirest-php": "^3.0",
|
|
||||||
"nelmio/api-doc-bundle": "^4.9",
|
|
||||||
"oneup/uploader-bundle": "^3.2",
|
|
||||||
"phpdocumentor/reflection-docblock": "^5.3",
|
|
||||||
"phpstan/phpdoc-parser": "^1.5",
|
|
||||||
"ramsey/uuid": "^4.3",
|
|
||||||
"sensio/framework-extra-bundle": "^6.1",
|
|
||||||
"sentry/sentry-symfony": "^4.3",
|
|
||||||
"symfony/asset": "6.1.*",
|
|
||||||
"symfony/console": "*",
|
|
||||||
"symfony/doctrine-messenger": "6.1.*",
|
|
||||||
"symfony/dotenv": "*",
|
|
||||||
"symfony/expression-language": "6.1.*",
|
|
||||||
"symfony/flex": "^2",
|
|
||||||
"symfony/form": "6.1.*",
|
|
||||||
"symfony/framework-bundle": "*",
|
|
||||||
"symfony/http-client": "6.1.*",
|
|
||||||
"symfony/intl": "6.1.*",
|
|
||||||
"symfony/lock": "6.1.*",
|
|
||||||
"symfony/mailer": "6.1.*",
|
|
||||||
"symfony/maker-bundle": "^1.44",
|
|
||||||
"symfony/mercure-bundle": "^0.3.5",
|
|
||||||
"symfony/mime": "6.1.*",
|
|
||||||
"symfony/monolog-bundle": "^3.0",
|
|
||||||
"symfony/notifier": "6.1.*",
|
|
||||||
"symfony/process": "6.1.*",
|
|
||||||
"symfony/property-access": "6.1.*",
|
|
||||||
"symfony/property-info": "6.1.*",
|
|
||||||
"symfony/proxy-manager-bridge": "6.1.*",
|
|
||||||
"symfony/runtime": "*",
|
|
||||||
"symfony/security-bundle": "6.1.*",
|
|
||||||
"symfony/serializer": "6.1.*",
|
|
||||||
"symfony/string": "6.1.*",
|
|
||||||
"symfony/translation": "6.1.*",
|
|
||||||
"symfony/twig-bundle": "6.1.*",
|
|
||||||
"symfony/validator": "6.1.*",
|
|
||||||
"symfony/web-link": "6.1.*",
|
|
||||||
"symfony/webpack-encore-bundle": "^1.12",
|
|
||||||
"symfony/yaml": "*",
|
|
||||||
"tetranz/select2entity-bundle": "^3.1",
|
|
||||||
"twig/extra-bundle": "^2.12|^3.0",
|
|
||||||
"twig/twig": "^2.12|^3.0"
|
|
||||||
},
|
|
||||||
"repositories": [
|
|
||||||
{
|
|
||||||
"type": "vcs",
|
|
||||||
"url": "https://github.com/loverg-c/unirest-php"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"config": {
|
|
||||||
"allow-plugins": {
|
|
||||||
"composer/package-versions-deprecated": true,
|
|
||||||
"symfony/flex": true,
|
|
||||||
"symfony/runtime": true
|
|
||||||
},
|
|
||||||
"optimize-autoloader": true,
|
|
||||||
"preferred-install": {
|
|
||||||
"*": "dist"
|
|
||||||
},
|
|
||||||
"sort-packages": true
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"App\\": "src/"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload-dev": {
|
|
||||||
"psr-4": {
|
|
||||||
"App\\Tests\\": "tests/"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"replace": {
|
|
||||||
"symfony/polyfill-ctype": "*",
|
|
||||||
"symfony/polyfill-iconv": "*",
|
|
||||||
"symfony/polyfill-php72": "*",
|
|
||||||
"symfony/polyfill-php73": "*",
|
|
||||||
"symfony/polyfill-php74": "*",
|
|
||||||
"symfony/polyfill-php80": "*",
|
|
||||||
"symfony/polyfill-php81": "*"
|
|
||||||
},
|
|
||||||
"scripts": {
|
|
||||||
"auto-scripts": {
|
|
||||||
"yarn install": "script",
|
|
||||||
"yarn encore dev": "script",
|
|
||||||
"yarn encore prod": "script",
|
|
||||||
"cache:clear --env=prod": "symfony-cmd",
|
|
||||||
"assets:install %PUBLIC_DIR%": "symfony-cmd"
|
|
||||||
},
|
|
||||||
"post-install-cmd": [
|
|
||||||
"@auto-scripts"
|
|
||||||
],
|
|
||||||
"post-update-cmd": [
|
|
||||||
"@auto-scripts"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"conflict": {
|
|
||||||
"symfony/symfony": "*"
|
|
||||||
},
|
|
||||||
"extra": {
|
|
||||||
"symfony": {
|
|
||||||
"allow-contrib": false,
|
|
||||||
"require": "6.1.*"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"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.*",
|
|
||||||
"symfony/debug-bundle": "6.1.*",
|
|
||||||
"symfony/phpunit-bridge": "^6.1",
|
|
||||||
"symfony/stopwatch": "6.1.*",
|
|
||||||
"symfony/web-profiler-bundle": "6.1.*"
|
|
||||||
}
|
|
||||||
}
|
|
13662
composer.lock
generated
@ -1,25 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
return [
|
|
||||||
Symfony\Bundle\FrameworkBundle\FrameworkBundle::class => ['all' => true],
|
|
||||||
Doctrine\Bundle\DoctrineBundle\DoctrineBundle::class => ['all' => true],
|
|
||||||
Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle::class => ['all' => true],
|
|
||||||
Symfony\Bundle\DebugBundle\DebugBundle::class => ['dev' => true],
|
|
||||||
Symfony\Bundle\TwigBundle\TwigBundle::class => ['all' => true],
|
|
||||||
Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true],
|
|
||||||
Symfony\WebpackEncoreBundle\WebpackEncoreBundle::class => ['all' => true],
|
|
||||||
Twig\Extra\TwigExtraBundle\TwigExtraBundle::class => ['all' => true],
|
|
||||||
Symfony\Bundle\SecurityBundle\SecurityBundle::class => ['all' => true],
|
|
||||||
Symfony\Bundle\MonologBundle\MonologBundle::class => ['all' => true],
|
|
||||||
Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle::class => ['all' => true],
|
|
||||||
Symfony\Bundle\MercureBundle\MercureBundle::class => ['all' => true],
|
|
||||||
FOS\CKEditorBundle\FOSCKEditorBundle::class => ['all' => true],
|
|
||||||
Oneup\UploaderBundle\OneupUploaderBundle::class => ['all' => true],
|
|
||||||
Tetranz\Select2EntityBundle\TetranzSelect2EntityBundle::class => ['all' => true],
|
|
||||||
Gregwar\CaptchaBundle\GregwarCaptchaBundle::class => ['all' => true],
|
|
||||||
Sentry\SentryBundle\SentryBundle::class => ['prod' => true],
|
|
||||||
FOS\RestBundle\FOSRestBundle::class => ['all' => true],
|
|
||||||
Nelmio\ApiDocBundle\NelmioApiDocBundle::class => ['all' => true],
|
|
||||||
Symfony\Bundle\MakerBundle\MakerBundle::class => ['dev' => true],
|
|
||||||
Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle::class => ['dev' => true, 'test' => true],
|
|
||||||
];
|
|
@ -1,5 +0,0 @@
|
|||||||
when@dev:
|
|
||||||
debug:
|
|
||||||
# Forwards VarDumper Data clones to a centralized server allowing to inspect dumps on CLI or in your browser.
|
|
||||||
# See the "server:dump" command to start a new server.
|
|
||||||
dump_destination: "tcp://%env(VAR_DUMPER_SERVER)%"
|
|
@ -1,42 +0,0 @@
|
|||||||
doctrine:
|
|
||||||
dbal:
|
|
||||||
url: '%env(resolve:DATABASE_URL)%'
|
|
||||||
|
|
||||||
# IMPORTANT: You MUST configure your server version,
|
|
||||||
# either here or in the DATABASE_URL env var (see .env file)
|
|
||||||
#server_version: '13'
|
|
||||||
orm:
|
|
||||||
auto_generate_proxy_classes: true
|
|
||||||
naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware
|
|
||||||
auto_mapping: true
|
|
||||||
mappings:
|
|
||||||
App:
|
|
||||||
is_bundle: false
|
|
||||||
dir: '%kernel.project_dir%/src/Entity'
|
|
||||||
prefix: 'App\Entity'
|
|
||||||
alias: App
|
|
||||||
|
|
||||||
when@test:
|
|
||||||
doctrine:
|
|
||||||
dbal:
|
|
||||||
# "TEST_TOKEN" is typically set by ParaTest
|
|
||||||
dbname_suffix: '_test%env(default::TEST_TOKEN)%'
|
|
||||||
|
|
||||||
when@prod:
|
|
||||||
doctrine:
|
|
||||||
orm:
|
|
||||||
auto_generate_proxy_classes: false
|
|
||||||
query_cache_driver:
|
|
||||||
type: pool
|
|
||||||
pool: doctrine.system_cache_pool
|
|
||||||
result_cache_driver:
|
|
||||||
type: pool
|
|
||||||
pool: doctrine.result_cache_pool
|
|
||||||
|
|
||||||
framework:
|
|
||||||
cache:
|
|
||||||
pools:
|
|
||||||
doctrine.result_cache_pool:
|
|
||||||
adapter: cache.app
|
|
||||||
doctrine.system_cache_pool:
|
|
||||||
adapter: cache.system
|
|
@ -1,6 +0,0 @@
|
|||||||
doctrine_migrations:
|
|
||||||
migrations_paths:
|
|
||||||
# namespace is arbitrary but should be different from App\Migrations
|
|
||||||
# as migrations classes should NOT be autoloaded
|
|
||||||
'DoctrineMigrations': '%kernel.project_dir%/migrations'
|
|
||||||
enable_profiler: '%kernel.debug%'
|
|
@ -1,37 +0,0 @@
|
|||||||
# Read the documentation: https://symfony.com/doc/current/bundles/FOSCKEditorBundle/index.html
|
|
||||||
|
|
||||||
twig:
|
|
||||||
form_themes:
|
|
||||||
- '@FOSCKEditor/Form/ckeditor_widget.html.twig'
|
|
||||||
|
|
||||||
fos_ck_editor:
|
|
||||||
base_path: "build/ckeditor"
|
|
||||||
js_path: "build/ckeditor/ckeditor.js"
|
|
||||||
configs:
|
|
||||||
full_config:
|
|
||||||
language: fr
|
|
||||||
toolbar: "my_full_toolbar"
|
|
||||||
extraPlugins: ["html5video","youtube","justify","templates","iframe","colorbutton"]
|
|
||||||
small_config:
|
|
||||||
language: fr
|
|
||||||
toolbar: "my_small_toolbar"
|
|
||||||
removePlugins: 'elementspath'
|
|
||||||
toolbars:
|
|
||||||
configs:
|
|
||||||
my_full_toolbar: [ "@document1", "-", "@clipboard1", "-", "@basicstyles1", "-", "@paragraph1", "/", "@links1", "-", "@insert1", "-", "@styles1", "-" , "@colors1", "-" , "@tools1" ]
|
|
||||||
my_small_toolbar: [ "@basicstyles1", "-", "@paragraph3", "-", "@insert3"]
|
|
||||||
|
|
||||||
items:
|
|
||||||
document1: [ 'Source','-','NewPage','DocProps','Preview','Print','-','Templates' ]
|
|
||||||
clipboard1: [ 'Cut','Copy','Paste','PasteText','PasteFromWord','-','Undo','Redo' ]
|
|
||||||
basicstyles1: [ 'Bold','Italic','Underline','RemoveFormat' ]
|
|
||||||
paragraph1: [ 'NumberedList','BulletedList','-','Outdent','Indent','-','Blockquote','CreateDiv','-','JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock' ]
|
|
||||||
paragraph2: [ 'JustifyLeft','JustifyCenter','JustifyRight','NumberedList','BulletedList' ]
|
|
||||||
paragraph3: [ 'NumberedList','BulletedList' ]
|
|
||||||
links1: [ 'Link','Unlink','Anchor' ]
|
|
||||||
insert1: [ 'Image','Html5video','Table','HorizontalRule','Smiley','SpecialChar','PageBreak','Iframe' ]
|
|
||||||
insert2: [ 'Image','Table','Smiley','Link','Unlink' ]
|
|
||||||
insert3: [ 'Smiley','Link','Unlink' ]
|
|
||||||
styles1: [ 'Styles','Format','Font','FontSize' ]
|
|
||||||
colors1: [ 'TextColor','BGColor' ]
|
|
||||||
tools1: [ 'Maximize', 'ShowBlocks','-','About' ]
|
|
@ -1,11 +0,0 @@
|
|||||||
# Read the documentation: https://symfony.com/doc/master/bundles/FOSRestBundle/index.html
|
|
||||||
fos_rest:
|
|
||||||
param_fetcher_listener: true
|
|
||||||
body_listener: true
|
|
||||||
|
|
||||||
format_listener:
|
|
||||||
enabled: true
|
|
||||||
rules:
|
|
||||||
- { path: '/rest', priorities: ['json', 'xml'], fallback_format: 'html' }
|
|
||||||
- { path: '/', fallback_format: 'html' }
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
|||||||
# see https://symfony.com/doc/current/reference/configuration/framework.html
|
|
||||||
framework:
|
|
||||||
secret: '%env(APP_SECRET)%'
|
|
||||||
#csrf_protection: true
|
|
||||||
http_method_override: false
|
|
||||||
|
|
||||||
# Enables session support. Note that the session will ONLY be started if you read or write from it.
|
|
||||||
# Remove or comment this section to explicitly disable session support.
|
|
||||||
session:
|
|
||||||
handler_id: Symfony\Component\HttpFoundation\Session\Storage\Handler\RedisSessionHandler
|
|
||||||
name: '%env(APP_ALIAS)%'
|
|
||||||
gc_probability: null
|
|
||||||
gc_maxlifetime: '%env(resolve:APP_SESSIONTIME)%'
|
|
||||||
cookie_secure: auto
|
|
||||||
cookie_samesite: lax
|
|
||||||
storage_factory_id: session.storage.factory.native
|
|
||||||
|
|
||||||
#esi: true
|
|
||||||
#fragments: true
|
|
||||||
php_errors:
|
|
||||||
log: true
|
|
||||||
|
|
||||||
when@test:
|
|
||||||
framework:
|
|
||||||
test: true
|
|
||||||
session:
|
|
||||||
storage_factory_id: session.storage.factory.mock_file
|
|
@ -1,2 +0,0 @@
|
|||||||
framework:
|
|
||||||
lock: '%env(LOCK_DSN)%'
|
|
@ -1,8 +0,0 @@
|
|||||||
mercure:
|
|
||||||
hubs:
|
|
||||||
default:
|
|
||||||
url: '%env(MERCURE_URL)%'
|
|
||||||
public_url: '%env(MERCURE_PUBLIC_URL)%'
|
|
||||||
jwt:
|
|
||||||
secret: '%env(MERCURE_JWT_SECRET)%'
|
|
||||||
publish: '*'
|
|
@ -1,24 +0,0 @@
|
|||||||
framework:
|
|
||||||
messenger:
|
|
||||||
failure_transport: failed
|
|
||||||
|
|
||||||
transports:
|
|
||||||
# https://symfony.com/doc/current/messenger.html#transport-configuration
|
|
||||||
async:
|
|
||||||
dsn: '%env(MESSENGER_TRANSPORT_DSN)%'
|
|
||||||
options:
|
|
||||||
use_notify: true
|
|
||||||
check_delayed_interval: 60000
|
|
||||||
retry_strategy:
|
|
||||||
max_retries: 3
|
|
||||||
multiplier: 2
|
|
||||||
failed: 'doctrine://default?queue_name=failed'
|
|
||||||
# sync: 'sync://'
|
|
||||||
|
|
||||||
routing:
|
|
||||||
Symfony\Component\Mailer\Messenger\SendEmailMessage: async
|
|
||||||
Symfony\Component\Notifier\Message\ChatMessage: async
|
|
||||||
Symfony\Component\Notifier\Message\SmsMessage: async
|
|
||||||
|
|
||||||
# Route your messages to the transports
|
|
||||||
# 'App\Message\YourMessage': async
|
|
@ -1,61 +0,0 @@
|
|||||||
monolog:
|
|
||||||
channels:
|
|
||||||
- deprecation # Deprecations are logged in the dedicated "deprecation" channel when it exists
|
|
||||||
|
|
||||||
when@dev:
|
|
||||||
monolog:
|
|
||||||
handlers:
|
|
||||||
main:
|
|
||||||
type: stream
|
|
||||||
path: "%kernel.logs_dir%/%kernel.environment%.log"
|
|
||||||
level: debug
|
|
||||||
channels: ["!event"]
|
|
||||||
# uncomment to get logging in your browser
|
|
||||||
# you may have to allow bigger header sizes in your Web server configuration
|
|
||||||
#firephp:
|
|
||||||
# type: firephp
|
|
||||||
# level: info
|
|
||||||
#chromephp:
|
|
||||||
# type: chromephp
|
|
||||||
# level: info
|
|
||||||
console:
|
|
||||||
type: console
|
|
||||||
process_psr_3_messages: false
|
|
||||||
channels: ["!event", "!doctrine", "!console"]
|
|
||||||
|
|
||||||
when@test:
|
|
||||||
monolog:
|
|
||||||
handlers:
|
|
||||||
main:
|
|
||||||
type: fingers_crossed
|
|
||||||
action_level: error
|
|
||||||
handler: nested
|
|
||||||
excluded_http_codes: [404, 405]
|
|
||||||
channels: ["!event"]
|
|
||||||
nested:
|
|
||||||
type: stream
|
|
||||||
path: "%kernel.logs_dir%/%kernel.environment%.log"
|
|
||||||
level: debug
|
|
||||||
|
|
||||||
when@prod:
|
|
||||||
monolog:
|
|
||||||
handlers:
|
|
||||||
main:
|
|
||||||
type: fingers_crossed
|
|
||||||
action_level: error
|
|
||||||
handler: nested
|
|
||||||
excluded_http_codes: [404, 405]
|
|
||||||
buffer_size: 50 # How many messages should be saved? Prevent memory leaks
|
|
||||||
nested:
|
|
||||||
type: stream
|
|
||||||
path: php://stderr
|
|
||||||
level: debug
|
|
||||||
formatter: monolog.formatter.json
|
|
||||||
console:
|
|
||||||
type: console
|
|
||||||
process_psr_3_messages: false
|
|
||||||
channels: ["!event", "!doctrine"]
|
|
||||||
deprecation:
|
|
||||||
type: stream
|
|
||||||
channels: [deprecation]
|
|
||||||
path: php://stderr
|
|
@ -1,9 +0,0 @@
|
|||||||
nelmio_api_doc:
|
|
||||||
documentation:
|
|
||||||
info:
|
|
||||||
title: '%appName%'
|
|
||||||
description:
|
|
||||||
version: 1.0.0
|
|
||||||
areas: # to filter documented areas
|
|
||||||
path_patterns:
|
|
||||||
- /rest # Accepts routes under /rest except /rest/doc
|
|
@ -1,16 +0,0 @@
|
|||||||
framework:
|
|
||||||
notifier:
|
|
||||||
#chatter_transports:
|
|
||||||
# slack: '%env(SLACK_DSN)%'
|
|
||||||
# telegram: '%env(TELEGRAM_DSN)%'
|
|
||||||
#texter_transports:
|
|
||||||
# twilio: '%env(TWILIO_DSN)%'
|
|
||||||
# nexmo: '%env(NEXMO_DSN)%'
|
|
||||||
channel_policy:
|
|
||||||
# use chat/slack, chat/telegram, sms/twilio or sms/nexmo
|
|
||||||
urgent: ['email']
|
|
||||||
high: ['email']
|
|
||||||
medium: ['email']
|
|
||||||
low: ['email']
|
|
||||||
admin_recipients:
|
|
||||||
- { email: admin@example.com }
|
|
@ -1,27 +0,0 @@
|
|||||||
oneup_uploader:
|
|
||||||
mappings:
|
|
||||||
avatar:
|
|
||||||
frontend: dropzone
|
|
||||||
storage:
|
|
||||||
directory: "%kernel.project_dir%/var/tmp/avatar"
|
|
||||||
logo:
|
|
||||||
frontend: dropzone
|
|
||||||
storage:
|
|
||||||
directory: "%kernel.project_dir%/var/tmp/logo"
|
|
||||||
icon:
|
|
||||||
frontend: dropzone
|
|
||||||
storage:
|
|
||||||
directory: "%kernel.project_dir%/var/tmp/icon"
|
|
||||||
slide:
|
|
||||||
frontend: dropzone
|
|
||||||
storage:
|
|
||||||
directory: "%kernel.project_dir%/var/tmp/slide"
|
|
||||||
header:
|
|
||||||
frontend: dropzone
|
|
||||||
storage:
|
|
||||||
directory: "%kernel.project_dir%/var/tmp/header"
|
|
||||||
file:
|
|
||||||
frontend: dropzone
|
|
||||||
namer: App\Service\UploadSamename
|
|
||||||
storage:
|
|
||||||
directory: "%kernel.project_dir%/var/tmp/file"
|
|
@ -1,12 +0,0 @@
|
|||||||
framework:
|
|
||||||
router:
|
|
||||||
utf8: true
|
|
||||||
|
|
||||||
# Configure how to generate URLs in non-HTTP contexts, such as CLI commands.
|
|
||||||
# See https://symfony.com/doc/current/routing.html#generating-urls-in-commands
|
|
||||||
#default_uri: http://localhost
|
|
||||||
|
|
||||||
when@prod:
|
|
||||||
framework:
|
|
||||||
router:
|
|
||||||
strict_requirements: null
|
|
@ -1,54 +0,0 @@
|
|||||||
security:
|
|
||||||
password_hashers:
|
|
||||||
Symfony\Component\Security\Core\User\LegacyPasswordAuthenticatedUserInterface:
|
|
||||||
id: 'App\Service\PasswordEncoder'
|
|
||||||
|
|
||||||
providers:
|
|
||||||
main:
|
|
||||||
entity:
|
|
||||||
class: App\Entity\User
|
|
||||||
property: username
|
|
||||||
|
|
||||||
firewalls:
|
|
||||||
dev:
|
|
||||||
pattern: ^/(_(profiler|wdt)|css|images|js)/
|
|
||||||
security: false
|
|
||||||
|
|
||||||
main:
|
|
||||||
pattern: ^/
|
|
||||||
provider: main
|
|
||||||
context: maincontext
|
|
||||||
user_checker: App\Service\UserChecker
|
|
||||||
form_login:
|
|
||||||
login_path: app_login
|
|
||||||
check_path: app_login
|
|
||||||
default_target_path: app_home
|
|
||||||
use_referer: true
|
|
||||||
csrf_parameter: _csrf_security_token
|
|
||||||
csrf_token_id: a_private_string
|
|
||||||
|
|
||||||
logout:
|
|
||||||
invalidate_session: true
|
|
||||||
path: app_kill
|
|
||||||
target: app_home
|
|
||||||
|
|
||||||
access_control:
|
|
||||||
- { path: ^/all, roles: [ROLE_ADMIN, ROLE_MODO, ROLE_MASTER, ROLE_MANAGER, ROLE_USER] }
|
|
||||||
- { path: ^/user, roles: [ROLE_USER] }
|
|
||||||
- { path: ^/manager, roles: [ROLE_MANAGER] }
|
|
||||||
- { path: ^/master, roles: [ROLE_MASTER] }
|
|
||||||
- { path: ^/modo, roles: [ROLE_MODO] }
|
|
||||||
- { path: ^/admin, roles: [ROLE_ADMIN] }
|
|
||||||
|
|
||||||
when@test:
|
|
||||||
security:
|
|
||||||
password_hashers:
|
|
||||||
# By default, password hashers are resource intensive and take time. This is
|
|
||||||
# important to generate secure password hashes. In tests however, secure hashes
|
|
||||||
# are not important, waste resources and increase test times. The following
|
|
||||||
# reduces the work factor to the lowest possible values.
|
|
||||||
Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface:
|
|
||||||
algorithm: auto
|
|
||||||
cost: 4 # Lowest possible value for bcrypt
|
|
||||||
time_cost: 3 # Lowest possible value for argon
|
|
||||||
memory_cost: 10 # Lowest possible value for argon
|
|
@ -1,20 +0,0 @@
|
|||||||
when@prod:
|
|
||||||
sentry:
|
|
||||||
dsn: '%env(SENTRY_DSN)%'
|
|
||||||
|
|
||||||
# If you are using Monolog, you also need these additional configuration and services to log the errors correctly:
|
|
||||||
# https://docs.sentry.io/platforms/php/guides/symfony/#monolog-integration
|
|
||||||
# register_error_listener: false
|
|
||||||
|
|
||||||
# monolog:
|
|
||||||
# handlers:
|
|
||||||
# sentry:
|
|
||||||
# type: service
|
|
||||||
# id: Sentry\Monolog\Handler
|
|
||||||
|
|
||||||
# services:
|
|
||||||
# Sentry\Monolog\Handler:
|
|
||||||
# arguments:
|
|
||||||
# $hub: '@Sentry\State\HubInterface'
|
|
||||||
# $level: !php/const Monolog\Logger::ERROR
|
|
||||||
# $bubble: false
|
|
@ -1,13 +0,0 @@
|
|||||||
framework:
|
|
||||||
default_locale: en
|
|
||||||
translator:
|
|
||||||
default_path: '%kernel.project_dir%/translations'
|
|
||||||
fallbacks:
|
|
||||||
- en
|
|
||||||
# providers:
|
|
||||||
# crowdin:
|
|
||||||
# dsn: '%env(CROWDIN_DSN)%'
|
|
||||||
# loco:
|
|
||||||
# dsn: '%env(LOCO_DSN)%'
|
|
||||||
# lokalise:
|
|
||||||
# dsn: '%env(LOKALISE_DSN)%'
|
|
@ -1,36 +0,0 @@
|
|||||||
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%"
|
|
||||||
appModules: "%appModules%"
|
|
||||||
appGroupuse: "%appGroupuse%"
|
|
||||||
sondeUse: "%sondeUse%"
|
|
||||||
sondeUrl: "%sondeUrl%"
|
|
||||||
auditUse: "%auditUse%"
|
|
||||||
|
|
||||||
when@test:
|
|
||||||
twig:
|
|
||||||
strict_variables: true
|
|
@ -1,13 +0,0 @@
|
|||||||
framework:
|
|
||||||
validation:
|
|
||||||
email_validation_mode: html5
|
|
||||||
|
|
||||||
# Enables validator auto-mapping support.
|
|
||||||
# For instance, basic validation constraints will be inferred from Doctrine's metadata.
|
|
||||||
#auto_mapping:
|
|
||||||
# App\Entity\: []
|
|
||||||
|
|
||||||
when@test:
|
|
||||||
framework:
|
|
||||||
validation:
|
|
||||||
not_compromised_password: false
|
|
@ -1,15 +0,0 @@
|
|||||||
when@dev:
|
|
||||||
web_profiler:
|
|
||||||
toolbar: true
|
|
||||||
intercept_redirects: false
|
|
||||||
|
|
||||||
framework:
|
|
||||||
profiler: { only_exceptions: false }
|
|
||||||
|
|
||||||
when@test:
|
|
||||||
web_profiler:
|
|
||||||
toolbar: false
|
|
||||||
intercept_redirects: false
|
|
||||||
|
|
||||||
framework:
|
|
||||||
profiler: { collect: false }
|
|
@ -1,49 +0,0 @@
|
|||||||
webpack_encore:
|
|
||||||
# The path where Encore is building the assets - i.e. Encore.setOutputPath()
|
|
||||||
output_path: '%kernel.project_dir%/public/build'
|
|
||||||
# If multiple builds are defined (as shown below), you can disable the default build:
|
|
||||||
# output_path: false
|
|
||||||
|
|
||||||
# Set attributes that will be rendered on all script and link tags
|
|
||||||
script_attributes:
|
|
||||||
defer: false
|
|
||||||
# Uncomment (also under link_attributes) if using Turbo Drive
|
|
||||||
# https://turbo.hotwired.dev/handbook/drive#reloading-when-assets-change
|
|
||||||
# 'data-turbo-track': reload
|
|
||||||
# link_attributes:
|
|
||||||
# Uncomment if using Turbo Drive
|
|
||||||
# 'data-turbo-track': reload
|
|
||||||
|
|
||||||
# If using Encore.enableIntegrityHashes() and need the crossorigin attribute (default: false, or use 'anonymous' or 'use-credentials')
|
|
||||||
# crossorigin: 'anonymous'
|
|
||||||
|
|
||||||
# Preload all rendered script and link tags automatically via the HTTP/2 Link header
|
|
||||||
# preload: true
|
|
||||||
|
|
||||||
# Set to true to throw an exception if the entrypoints.json file is missing or an entry is missing from the data
|
|
||||||
strict_mode: false
|
|
||||||
|
|
||||||
# If you have multiple builds:
|
|
||||||
# builds:
|
|
||||||
# pass "frontend" as the 3rg arg to the Twig functions
|
|
||||||
# {{ encore_entry_script_tags('entry1', null, 'frontend') }}
|
|
||||||
|
|
||||||
# frontend: '%kernel.project_dir%/public/frontend/build'
|
|
||||||
|
|
||||||
# Cache the entrypoints.json (rebuild Symfony's cache when entrypoints.json changes)
|
|
||||||
# Put in config/packages/prod/webpack_encore.yaml
|
|
||||||
# cache: true
|
|
||||||
|
|
||||||
framework:
|
|
||||||
assets:
|
|
||||||
json_manifest_path: '%kernel.project_dir%/public/build/manifest.json'
|
|
||||||
|
|
||||||
#when@prod:
|
|
||||||
# webpack_encore:
|
|
||||||
# # Cache the entrypoints.json (rebuild Symfony's cache when entrypoints.json changes)
|
|
||||||
# # Available in version 1.2
|
|
||||||
# cache: true
|
|
||||||
|
|
||||||
#when@test:
|
|
||||||
# webpack_encore:
|
|
||||||
# strict_mode: false
|
|
@ -1,5 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
if (file_exists(dirname(__DIR__).'/var/cache/prod/App_KernelProdContainer.preload.php')) {
|
|
||||||
require dirname(__DIR__).'/var/cache/prod/App_KernelProdContainer.preload.php';
|
|
||||||
}
|
|
1667
config/routes.yaml
@ -1,1667 +0,0 @@
|
|||||||
#== Home ========================================================================================================
|
|
||||||
app_home:
|
|
||||||
path: /
|
|
||||||
controller: App\Controller\HomeController::home
|
|
||||||
|
|
||||||
app_user_home:
|
|
||||||
path: /user
|
|
||||||
controller: App\Controller\HomeController::homeuser
|
|
||||||
defaults: { access: user }
|
|
||||||
|
|
||||||
app_manager_home:
|
|
||||||
path: /manager
|
|
||||||
controller: App\Controller\HomeController::homemanager
|
|
||||||
defaults: { access: manager }
|
|
||||||
|
|
||||||
app_master_home:
|
|
||||||
path: /master
|
|
||||||
controller: App\Controller\HomeController::homemaster
|
|
||||||
defaults: { access: master }
|
|
||||||
|
|
||||||
app_modo_home:
|
|
||||||
path: /modo
|
|
||||||
controller: App\Controller\HomeController::homemodo
|
|
||||||
defaults: { access: modo }
|
|
||||||
|
|
||||||
app_admin_home:
|
|
||||||
path: /admin
|
|
||||||
controller: App\Controller\HomeController::homeadmin
|
|
||||||
defaults: { access: admin }
|
|
||||||
|
|
||||||
oneup_uploader:
|
|
||||||
resource: .
|
|
||||||
type: uploader
|
|
||||||
|
|
||||||
#== Security ====================================================================================================
|
|
||||||
#-- Access public
|
|
||||||
app_login:
|
|
||||||
path: /login
|
|
||||||
controller: App\Controller\SecurityController::login
|
|
||||||
|
|
||||||
app_loginldapcheck:
|
|
||||||
path: /loginldapcheck
|
|
||||||
controller: App\Controller\SecurityController::loginldapcheck
|
|
||||||
|
|
||||||
app_loginopenidcallback:
|
|
||||||
path: /oauth2/callback
|
|
||||||
controller: App\Controller\SecurityController::loginopenidcallback
|
|
||||||
|
|
||||||
app_logout:
|
|
||||||
path: /logout
|
|
||||||
controller: App\Controller\SecurityController::logout
|
|
||||||
|
|
||||||
app_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 }
|
|
||||||
|
|
||||||
app_publish:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_config_render:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_config_update:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_config_logo:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_theme_select:
|
|
||||||
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
|
|
||||||
|
|
||||||
#== Cron ========================================================================================================
|
|
||||||
#-- Access admin
|
|
||||||
app_admin_cron:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_cron_update:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_log:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
#== Crop ========================================================================================================
|
|
||||||
#-- Access all
|
|
||||||
app_all_crop01:
|
|
||||||
path: /all/crop01/{type}/{reportinput}
|
|
||||||
controller: App\Controller\CropController::crop01
|
|
||||||
|
|
||||||
app_all_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
|
|
||||||
|
|
||||||
app_minio_image:
|
|
||||||
path: /minio/image
|
|
||||||
controller: App\Controller\MinioController::image
|
|
||||||
|
|
||||||
app_minio_document:
|
|
||||||
path: /minio/document
|
|
||||||
controller: App\Controller\MinioController::document
|
|
||||||
|
|
||||||
#== Hydra =======================================================================================================
|
|
||||||
#-- Access public
|
|
||||||
app_hydra_loginsql:
|
|
||||||
path: /hydra/loginsql
|
|
||||||
controller: App\Controller\HydraController::loginsql
|
|
||||||
|
|
||||||
app_hydra_checkloginsql:
|
|
||||||
path: /hydra/checkloginsql
|
|
||||||
controller: App\Controller\HydraController::checkloginsql
|
|
||||||
|
|
||||||
app_hydra_loginldap:
|
|
||||||
path: /hydra/loginldap
|
|
||||||
controller: App\Controller\HydraController::loginldap
|
|
||||||
|
|
||||||
app_hydra_checkloginldap:
|
|
||||||
path: /hydra/checkloginldap
|
|
||||||
controller: App\Controller\HydraController::checkloginldap
|
|
||||||
|
|
||||||
app_hydra_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 }
|
|
||||||
|
|
||||||
#== Audit =======================================================================================================
|
|
||||||
#--Access admin
|
|
||||||
app_admin_audit_renderid:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
#--Access modo
|
|
||||||
app_modo_audit_renderid:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_niveau01_tablelist:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_niveau01_submit:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_niveau01_delete:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_niveau02_tablelist:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_niveau02_update:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
#-- Access modo
|
|
||||||
app_modo_niveau02:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_modo_niveau02_submit:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_modo_niveau02_delete:
|
|
||||||
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
|
|
||||||
|
|
||||||
#== Niveau03 ====================================================================================================
|
|
||||||
#-- Access admin
|
|
||||||
app_admin_niveau03:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_niveau03_submit:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_niveau03_delete:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_modo_niveau03_tablelist:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_modo_niveau03_update:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
#-- Access public
|
|
||||||
app_niveau03_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 }
|
|
||||||
|
|
||||||
app_admin_niveau04_tablelist:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_niveau04_update:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
#-- Access modo
|
|
||||||
app_modo_niveau04:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_modo_niveau04_submit:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_modo_niveau04_delete:
|
|
||||||
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
|
|
||||||
|
|
||||||
#== Group =======================================================================================================
|
|
||||||
#-- Access admin
|
|
||||||
app_admin_group:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_group_selectlist:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_group_update:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_group_users:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_group_usersin:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_group_usergroup_del:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
#-- Access modo
|
|
||||||
app_modo_group:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_modo_group_selectlist:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_modo_group_usersnotin:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_modo_group_usergroup_add:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_modo_group_usergroup_changerole:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_all_group_tablelist:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_all_group_submit:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_all_group_delete:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_all_group_usersnotin:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_all_group_usergroup_add:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_all_group_usergroup_changerole:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
#== Whitelist ===================================================================================================
|
|
||||||
#-- Access admin
|
|
||||||
app_admin_whitelist:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_whitelist_submit:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_whitelist_delete:
|
|
||||||
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
|
|
||||||
|
|
||||||
#== Registration ================================================================================================
|
|
||||||
#-- Access admin
|
|
||||||
app_admin_registration:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_registration_update:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
#-- Access modo
|
|
||||||
app_modo_registration:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_modo_registration_update:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
#-- Access public
|
|
||||||
app_registration:
|
|
||||||
path: /registration
|
|
||||||
controller: App\Controller\RegistrationController::submit
|
|
||||||
|
|
||||||
app_registration_info:
|
|
||||||
path: /registration/info
|
|
||||||
controller: App\Controller\RegistrationController::info
|
|
||||||
|
|
||||||
app_registration_validation:
|
|
||||||
path: /registration/validation/{key}
|
|
||||||
controller: App\Controller\RegistrationController::validation
|
|
||||||
|
|
||||||
app_resetpwd01:
|
|
||||||
path: /resetpwd01
|
|
||||||
controller: App\Controller\RegistrationController::resetpwd01
|
|
||||||
|
|
||||||
app_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 }
|
|
||||||
|
|
||||||
app_admin_user_tablelist:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_user_submit:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_user_delete:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_modo_user_tablelist:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_modo_user_submit:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_modo_user_delete:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_manager_user_tablelist:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_manager_user_submit:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_manager_user_delete:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_all_users:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_all_user_selectlist:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_all_preference:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_icon_submit:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_icon_delete:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_icon_upload:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_all_icon_submit:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_all_icon_delete:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_all_icon_upload:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_alert_submit:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_alert_delete:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
#-- Access all
|
|
||||||
app_all_alert_read:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_alertcategory_update:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
#== ITEM =================================================================================================================================================
|
|
||||||
|
|
||||||
#-- Access admin
|
|
||||||
app_admin_item:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_item_update:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_item_order:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_itemcategory_update:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_itemcategory_order:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_bookmark_update:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_bookmark_heart:
|
|
||||||
path: /admin/bookmark/heart
|
|
||||||
controller: App\Controller\BookmarkController::heart
|
|
||||||
defaults: { access: admin }
|
|
||||||
|
|
||||||
#-- Access all
|
|
||||||
app_all_bookmark_submit:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
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 }
|
|
||||||
|
|
||||||
#== FILE =================================================================================================================
|
|
||||||
|
|
||||||
#-- Access admin
|
|
||||||
app_admin_file_list:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_file_folder:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_file_trash:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_file_purgetrash:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_file_move:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_file_show:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
#-- Access all
|
|
||||||
app_all_file_list:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_all_file_folder:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_all_file_trash:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_all_file_purgetrash:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_all_file_move:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_all_file_show:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
#== PAGEWIDGETSLIDE ================================================================================================================================================
|
|
||||||
|
|
||||||
#-- Access admin
|
|
||||||
app_admin_pagewidgetslide_upload:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_pagewidgetslide_submit:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_pagewidgetslide_delete:
|
|
||||||
path: /admin/pagewidgetslide/delete/{idwidget}/{id}
|
|
||||||
controller: App\Controller\PagewidgetslideController::delete
|
|
||||||
defaults: { access: admin }
|
|
||||||
|
|
||||||
#-- Access all
|
|
||||||
app_all_pagewidgetslide_upload:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_all_pagewidgetslide_submit:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_all_pagewidgetslide_delete:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_page_template_tablelist:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_page_template_update:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_page_template_view:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
#== PAGE =================================================================================================================================================
|
|
||||||
|
|
||||||
#-- Access admin
|
|
||||||
app_admin_page_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 }
|
|
||||||
|
|
||||||
app_admin_page_portal_submit:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_page_portal_delete:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_page_portal_order:
|
|
||||||
path: /admin/page/order
|
|
||||||
controller: App\Controller\PageController::order
|
|
||||||
defaults: { access: admin, usage: portal }
|
|
||||||
|
|
||||||
#-- Access all
|
|
||||||
# usage=user
|
|
||||||
app_all_page_user_submit:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_all_page_user_delete:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
# usage=group
|
|
||||||
app_all_page_group_submit:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_all_page_group_delete:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
#-- Access visitor
|
|
||||||
# usage=portal
|
|
||||||
app_all_page_portal_view:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
# usage=group
|
|
||||||
app_all_page_group_view:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
#== PAGE WIDGET ==========================================================================================================================================
|
|
||||||
|
|
||||||
#-- Access admin
|
|
||||||
app_admin_pagewidget_widget_sumbit:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_pagewidget_delete:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_pagewidget_ckeditor:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_pagewidget_view_urlfixe:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_pagewidget_view_itemessential:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_pagewidget_view_flux:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_pagewidget_view_bookmark:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_pagewidget_view_editor:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_pagewidget_view_file:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_pagewidget_view_calendar:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_pagewidget_view_project:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_pagewidget_view_chat:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_admin_pagewidget_view_groupmessage:
|
|
||||||
path: /admin/pagewidget/view/groupmessage/{id}
|
|
||||||
controller: App\Controller\PagewidgetController::viewgroupmessage
|
|
||||||
defaults: { access: admin }
|
|
||||||
|
|
||||||
#-- Access all
|
|
||||||
app_all_pagewidget_widget_sumbit:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_all_pagewidget_delete:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_all_pagewidget_ckeditor:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_all_pagewidget_view_urlfixe:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_all_pagewidget_view_itemessential:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_all_pagewidget_view_flux:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_all_pagewidget_view_bookmark:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_all_pagewidget_view_editor:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_all_pagewidget_view_file:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_all_pagewidget_view_calendar:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_all_pagewidget_view_project:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_all_pagewidget_view_chat:
|
|
||||||
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 }
|
|
||||||
|
|
||||||
app_all_pagewidget_view_groupmessage:
|
|
||||||
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 }
|
|
@ -1,4 +0,0 @@
|
|||||||
controllers:
|
|
||||||
resource: ../../src/Controller/RestController.php
|
|
||||||
type: annotation
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
|||||||
when@dev:
|
|
||||||
_errors:
|
|
||||||
resource: '@FrameworkBundle/Resources/config/routing/errors.xml'
|
|
||||||
prefix: /_error
|
|
@ -1,7 +0,0 @@
|
|||||||
# Expose your documentation as JSON swagger compliant
|
|
||||||
app_swagger_ui:
|
|
||||||
path: /rest
|
|
||||||
methods: GET
|
|
||||||
defaults: { _controller: nelmio_api_doc.controller.swagger_ui }
|
|
||||||
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
|||||||
when@dev:
|
|
||||||
web_profiler_wdt:
|
|
||||||
resource: '@WebProfilerBundle/Resources/config/routing/wdt.xml'
|
|
||||||
prefix: /_wdt
|
|
||||||
|
|
||||||
web_profiler_profiler:
|
|
||||||
resource: '@WebProfilerBundle/Resources/config/routing/profiler.xml'
|
|
||||||
prefix: /_profiler
|
|
@ -1,318 +0,0 @@
|
|||||||
parameters:
|
|
||||||
appEnv: "%env(resolve:APP_ENV)%"
|
|
||||||
appSecret: "%env(resolve:APP_SECRET)%"
|
|
||||||
appSessiontime: "%env(resolve:APP_SESSIONTIME)%"
|
|
||||||
protocole: '%env(resolve:PROTOCOLE)%'
|
|
||||||
|
|
||||||
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)%"
|
|
||||||
|
|
||||||
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)%"
|
|
||||||
|
|
||||||
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)%"
|
|
||||||
|
|
||||||
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)%"
|
|
||||||
|
|
||||||
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)%"
|
|
||||||
|
|
||||||
databaseUrl: "%env(resolve:DATABASE_URL)%"
|
|
||||||
|
|
||||||
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)%"
|
|
||||||
|
|
||||||
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)%"
|
|
||||||
|
|
||||||
proxyUse: "%env(resolve:PROXY_USE)%"
|
|
||||||
proxyHost: "%env(resolve:PROXY_HOST)%"
|
|
||||||
proxyPort: "%env(resolve:PROXY_PORT)%"
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
App\:
|
|
||||||
resource: "../src/"
|
|
||||||
exclude:
|
|
||||||
- "../src/DependencyInjection/"
|
|
||||||
- "../src/Entity/"
|
|
||||||
- "../src/Kernel.php"
|
|
||||||
|
|
||||||
App\Controller\:
|
|
||||||
resource: "../src/Controller"
|
|
||||||
tags: ["controller.service_arguments"]
|
|
||||||
|
|
||||||
Redis:
|
|
||||||
class: Redis
|
|
||||||
calls:
|
|
||||||
- connect:
|
|
||||||
- "%env(REDIS_HOST)%"
|
|
||||||
- "%env(int:REDIS_PORT)%"
|
|
||||||
|
|
||||||
Symfony\Component\HttpFoundation\Session\Storage\Handler\RedisSessionHandler:
|
|
||||||
arguments:
|
|
||||||
- "@Redis"
|
|
||||||
|
|
||||||
App\EventListener\AllSubscriber:
|
|
||||||
public: true
|
|
||||||
tags:
|
|
||||||
- name: "doctrine.event_subscriber"
|
|
||||||
|
|
||||||
App\EventListener\PurgefileSubscriber:
|
|
||||||
public: true
|
|
||||||
arguments: ['@App\Service\MinioService']
|
|
||||||
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\Niveau02Subscriber:
|
|
||||||
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\EventListener\UserSubscriber:
|
|
||||||
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\Entity\User:
|
|
||||||
public: true
|
|
||||||
arguments: ["@security.password_hasher"]
|
|
||||||
|
|
||||||
App\Command\InitCommand:
|
|
||||||
public: true
|
|
||||||
arguments: ["@service_container", "@doctrine.orm.entity_manager"]
|
|
||||||
|
|
||||||
App\Command\SetPasswordCommand:
|
|
||||||
public: true
|
|
||||||
arguments: ["@service_container", "@doctrine.orm.entity_manager"]
|
|
||||||
|
|
||||||
App\Command\CronCommand:
|
|
||||||
public: true
|
|
||||||
arguments: ["@service_container", "@doctrine.orm.entity_manager"]
|
|
||||||
|
|
||||||
App\Command\CleanCommand:
|
|
||||||
public: true
|
|
||||||
arguments: ["@service_container", "@doctrine.orm.entity_manager"]
|
|
||||||
|
|
||||||
App\Command\CleanRegistrationCommand:
|
|
||||||
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\Twig\AppExtension:
|
|
||||||
calls:
|
|
||||||
- [setContainer, ["@service_container"]]
|
|
||||||
tags:
|
|
||||||
- { name: twig.extension }
|
|
||||||
|
|
||||||
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\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\Service\LdapService:
|
|
||||||
public: true
|
|
||||||
arguments: ["@service_container"]
|
|
||||||
|
|
||||||
App\Service\MailService:
|
|
||||||
public: true
|
|
||||||
arguments: ["@mailer", "@twig"]
|
|
||||||
|
|
||||||
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 }
|
|
@ -1 +0,0 @@
|
|||||||
FROM cadoles/hydra-dispatcher-v1:v0.0.0-111-g2e60bdb
|
|
@ -1,43 +0,0 @@
|
|||||||
hydra:
|
|
||||||
apps:
|
|
||||||
- id: ninesql
|
|
||||||
title:
|
|
||||||
fr: NINE SQL
|
|
||||||
en: NINE SQL
|
|
||||||
description:
|
|
||||||
fr: Authentification via NINESQL
|
|
||||||
en: Authentication by NINESQL
|
|
||||||
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:
|
|
||||||
- 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
|
|
@ -1,23 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
{% block head %}
|
|
||||||
<title>{% block title %}{{ 'view.base.title'|trans({}, 'view', app.request.session.get('_locale')) }}{% endblock %}</title>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
{% block stylesheets %}
|
|
||||||
{{ encore_entry_link_tags('app', null, 'appConfig') }}
|
|
||||||
{{ encore_entry_link_tags('theme', null, 'themeConfig') }}
|
|
||||||
{% endblock %}
|
|
||||||
{% endblock %}
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
{% block body %}
|
|
||||||
{% block body_content %}{% endblock %}
|
|
||||||
{% block javascripts %}
|
|
||||||
{{ encore_entry_script_tags('app', null, 'appConfig') }}
|
|
||||||
{{ encore_entry_script_tags('theme', null, 'themeConfig') }}
|
|
||||||
{% endblock %}
|
|
||||||
{% endblock %}
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,16 +0,0 @@
|
|||||||
{% extends 'base.html.twig' %}
|
|
||||||
|
|
||||||
{% block stylesheets %}
|
|
||||||
{{ parent() }}
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{% block title %}{{ 'view.error.title'|trans({}, 'view') }}{% endblock %}
|
|
||||||
|
|
||||||
{% block body_content %}
|
|
||||||
<section class="grid place-items-center h-screen">
|
|
||||||
<div class="container px-5 py-2 mx-auto lg:px-32">
|
|
||||||
<p>{{ 'view.error.text'|trans({}, 'view') }} {{statusCode}}</p>
|
|
||||||
<p>{{message}}</p>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
{% endblock %}
|
|
@ -1,13 +0,0 @@
|
|||||||
{% form_theme form _self %}
|
|
||||||
|
|
||||||
{% block form_errors %}
|
|
||||||
{% if errors is defined and errors.count > 0 %}
|
|
||||||
<div class="bg-red-400 mb-5 p-5 rounded">
|
|
||||||
<p id="{{form.vars.id}}" >
|
|
||||||
{% for error in errors %}
|
|
||||||
{{ error.message | trans({}, 'form', app.request.session.get('_locale')) }}<br />
|
|
||||||
{% endfor %}
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
{% endblock form_errors %}
|
|
@ -1,88 +0,0 @@
|
|||||||
{% extends 'base.html.twig' %}
|
|
||||||
|
|
||||||
{% form_theme form 'form/error_theme.html.twig' %}
|
|
||||||
|
|
||||||
{% block stylesheets %}
|
|
||||||
{{ parent() }}
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{% block title %}{{ 'view.login.title'|trans({}, 'view', app.request.session.get('_locale')) }}{% endblock %}
|
|
||||||
|
|
||||||
{% block body_content %}
|
|
||||||
{% set lang = app.request.session.get('_locale') is defined and app.request.session.get('_locale') is not null ? app.request.session.get('_locale') : app.request.server.get('DEFAULT_LOCALE') %}
|
|
||||||
|
|
||||||
<div class="container mx-auto">
|
|
||||||
<div id="headercontainer">
|
|
||||||
<div id="langcontainer" class="flex justify-around">
|
|
||||||
{% for locale in locales %}
|
|
||||||
<a href="{{ asset(path('locale_change', {'locale':locale })) }}" title="{{locale}}" aria-label="{{locale}}"><img class="w-10" src="{{ asset('flags/'~ locale ~'.svg') }}"/></a>
|
|
||||||
{% endfor %}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="titlecontainer" class="text-center p-5">
|
|
||||||
{% if loginRequestInfo.client.logo_uri is not empty %}
|
|
||||||
<img class="mx-auto" style="width:150px" src="{{ loginRequestInfo.client.logo_uri }}" alt="user image" />
|
|
||||||
{% endif %}
|
|
||||||
<h1 class="font-medium leading-tight text-5xl">{{ loginRequestInfo.client.client_name }}</h1>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="subtitlecontainer">
|
|
||||||
<h2 class="font-medium leading-tight text-3xl mt-0 mb-5 text-center">{{ 'view.login.call_to_action'|trans({}, 'view', app.request.session.get('_locale')) }}</h2>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="flashcontainer">
|
|
||||||
{% block flash %}
|
|
||||||
{% for type, alert in {error: 'bg-red-400', danger: 'bg-red-400', warning: 'bg-yellow-400', info: 'bg-blue-400', success: 'bg-green-400'} %}
|
|
||||||
{% for message in app.session.flashBag.get(type) %}
|
|
||||||
<div class="rounded mb-5 p-5 {{alert}}">
|
|
||||||
<p role="{{ alert is same as('success') ? 'status' : (alert is same as('danger') or alert is same as ('warning'))? 'alert' : '' }}">
|
|
||||||
{{ message|raw }}
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
{% endfor %}
|
|
||||||
{% endfor %}
|
|
||||||
{% endblock %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="maincontainer">
|
|
||||||
{{ form_start(form) }}
|
|
||||||
|
|
||||||
<div id="formerrorcontainer">
|
|
||||||
{{ form_errors(form.app) }}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="choicecontainer">
|
|
||||||
{% for choice in form.app.vars.choices %}
|
|
||||||
{% set choice_id = form.app.vars.full_name ~ '[' ~ choice.value ~ ']' %}
|
|
||||||
{% set label_id = form.app.vars.full_name ~ '-label-' ~ choice.value %}
|
|
||||||
<div class="choicelogin last:mb-0 mb-5">
|
|
||||||
<input aria-labelledby="{{label_id}}" type="submit" class="hidden" id="{{ choice_id }}" value="{{ choice.value }}" name="{{form.app.vars.full_name}}" />
|
|
||||||
|
|
||||||
<label for="{{ choice_id }}" class="app-item flex flex-row w-full cursor-pointer rounded-lg bg-white shadow-lg">
|
|
||||||
{% if choice.data.iconUrl %}
|
|
||||||
<div class="choiceloginlogo w-full h-auto object-cover w-24 rounded-t-lg rounded-r-none rounded-l-lg bg-contain bg-no-repeat bg-center ml-5 mr-2" style="background-image:url('{{ choice.data.iconUrl }}')"></div>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
<div class="choicelogintitle p-6 flex flex-col justify-start w-full">
|
|
||||||
<h5 class="text-gray-900 text-xl font-medium mb-2">{{ choice.label }}</h5>
|
|
||||||
<p class="text-gray-700 text-base mb-4">
|
|
||||||
{{ choice.data.description(lang) }}
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
{% endfor %}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{% do form.app.setRendered %}
|
|
||||||
|
|
||||||
<div id="submitcontainer">
|
|
||||||
{{form_row(form.submit, {'attr' : {'class' : 'btnlogin w-full px-7 py-5 mt-5 bg-sky-500 text-white font-medium text-sm cursor-pointer leading-snug uppercase rounded shadow-md hover:bg-sky-700 hover:shadow-lg focus:bg-sky-900 focus:shadow-lg focus:outline-none focus:ring-0 active:bg-sky-900 active:shadow-lg transition duration-150 ease-in-out'}})}}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{{ form_rest(form) }}
|
|
||||||
{{ form_end(form) }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endblock %}
|
|
@ -1,59 +0,0 @@
|
|||||||
body {
|
|
||||||
background-color: #fff !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.place-items-center {
|
|
||||||
place-items: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
#langcontainer{
|
|
||||||
display:none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container {
|
|
||||||
max-width: 1100px;
|
|
||||||
}
|
|
||||||
|
|
||||||
input[type="radio"]:checked ~ .app-item {
|
|
||||||
--tw-shadow: 0 10px 15px -3px rgb(22 78 99 / 0.3), 0 4px 6px -4px rgb(22 78 99 / 0.3);
|
|
||||||
background-color: rgba(240, 240, 240, 0.507);
|
|
||||||
}
|
|
||||||
|
|
||||||
#choicecontainer {
|
|
||||||
display: flex;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
.choicelogin {
|
|
||||||
flex: 1 1 33.333333%;
|
|
||||||
padding: 10px;
|
|
||||||
height: 350px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.app-item {
|
|
||||||
height:100%;
|
|
||||||
display: flex;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
text-align: center;
|
|
||||||
background-color: #ecf0f1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.app-item > * {
|
|
||||||
flex: 1 1 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.object-cover {
|
|
||||||
height:130px;
|
|
||||||
margin-top:30px;
|
|
||||||
}
|
|
||||||
|
|
||||||
h2{
|
|
||||||
font-size: 18px !important;
|
|
||||||
}
|
|
||||||
h5 {
|
|
||||||
font-size:30px !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
#submitcontainer {
|
|
||||||
display:none;
|
|
||||||
}
|
|
@ -1,20 +0,0 @@
|
|||||||
{
|
|
||||||
"client_id": "nineskeletor",
|
|
||||||
"client_name": "Nineskeletor",
|
|
||||||
"client_secret": "changeme",
|
|
||||||
"grant_types": [
|
|
||||||
"authorization_code",
|
|
||||||
"refresh_token"
|
|
||||||
],
|
|
||||||
"jwks": {},
|
|
||||||
"metadata": {},
|
|
||||||
"token_endpoint_auth_method": "client_secret_post",
|
|
||||||
"post_logout_redirect_uris": ["http://localhost:8005"],
|
|
||||||
"redirect_uris": ["http://localhost:8005/oauth2/callback"],
|
|
||||||
"response_types": [
|
|
||||||
"code"
|
|
||||||
],
|
|
||||||
"logo_uri": "http://localhost:8005/minio/logo",
|
|
||||||
"scope": "openid"
|
|
||||||
|
|
||||||
}
|
|
@ -1,67 +0,0 @@
|
|||||||
|
|
||||||
user nginx;
|
|
||||||
worker_processes auto;
|
|
||||||
|
|
||||||
error_log /var/log/nginx/error.log warn;
|
|
||||||
pid /var/run/nginx.pid;
|
|
||||||
|
|
||||||
|
|
||||||
events {
|
|
||||||
worker_connections 1024;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
http {
|
|
||||||
include /etc/nginx/mime.types;
|
|
||||||
default_type application/octet-stream;
|
|
||||||
|
|
||||||
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
|
|
||||||
'$status $body_bytes_sent "$http_referer" '
|
|
||||||
'"$http_user_agent" "$http_x_forwarded_for"';
|
|
||||||
|
|
||||||
access_log /var/log/nginx/access.log main;
|
|
||||||
|
|
||||||
sendfile on;
|
|
||||||
#tcp_nopush on;
|
|
||||||
|
|
||||||
keepalive_timeout 65;
|
|
||||||
|
|
||||||
#gzip on;
|
|
||||||
|
|
||||||
# include /etc/nginx/conf.d/*.conf;
|
|
||||||
|
|
||||||
upstream minio {
|
|
||||||
server minio1:9000;
|
|
||||||
server minio2:9000;
|
|
||||||
server minio3:9000;
|
|
||||||
server minio4:9000;
|
|
||||||
}
|
|
||||||
|
|
||||||
server {
|
|
||||||
listen 9000;
|
|
||||||
server_name localhost;
|
|
||||||
|
|
||||||
# To allow special characters in headers
|
|
||||||
ignore_invalid_headers off;
|
|
||||||
# Allow any size file to be uploaded.
|
|
||||||
# Set to a value such as 1000m; to restrict file size to a specific value
|
|
||||||
client_max_body_size 0;
|
|
||||||
# To disable buffering
|
|
||||||
proxy_buffering off;
|
|
||||||
|
|
||||||
location / {
|
|
||||||
proxy_set_header Host $http_host;
|
|
||||||
proxy_set_header X-Real-IP $remote_addr;
|
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
|
||||||
|
|
||||||
proxy_connect_timeout 300;
|
|
||||||
# Default is HTTP/1, keepalive is only enabled in HTTP/1.1
|
|
||||||
proxy_http_version 1.1;
|
|
||||||
proxy_set_header Connection "";
|
|
||||||
chunked_transfer_encoding off;
|
|
||||||
|
|
||||||
proxy_pass http://minio;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,22 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
set -u
|
|
||||||
|
|
||||||
function create_user_and_database() {
|
|
||||||
local database=$1
|
|
||||||
echo " Creating user and database '$database'"
|
|
||||||
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" <<-EOSQL
|
|
||||||
CREATE USER $database;
|
|
||||||
CREATE DATABASE $database;
|
|
||||||
GRANT ALL PRIVILEGES ON DATABASE $database TO $database;
|
|
||||||
EOSQL
|
|
||||||
}
|
|
||||||
|
|
||||||
if [ -n "$POSTGRES_MULTIPLE_DATABASES" ]; then
|
|
||||||
echo "Multiple database creation requested: $POSTGRES_MULTIPLE_DATABASES"
|
|
||||||
for db in $(echo $POSTGRES_MULTIPLE_DATABASES | tr ',' ' '); do
|
|
||||||
create_user_and_database $db
|
|
||||||
done
|
|
||||||
echo "Multiple databases created"
|
|
||||||
fi
|
|
5
db/gen/nineskeletor-create-0.sql
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
|
||||||
|
|
||||||
|
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
|
||||||
|
CREATE DATABASE nineskeletor DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
|
||||||
|
|
231
dicos/90_nineskeletor.xml
Normal file
@ -0,0 +1,231 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<creole>
|
||||||
|
<files>
|
||||||
|
<file filelist='nineskeletor' name='/etc/eole/eole-db.d/nineskeletor-db.yml' rm='True' mkdir='True'/>
|
||||||
|
<file filelist='nineskeletor_nginx' name='/etc/nginx/web.d/nineskeletor.conf' source='nineskeletor-nginx.conf' rm='True' mkdir='True' />
|
||||||
|
</files>
|
||||||
|
|
||||||
|
<containers>
|
||||||
|
<container name='web'>
|
||||||
|
<!--
|
||||||
|
<package>nineskeletor-apps</package>
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!-- service de configuration apache -->
|
||||||
|
<service method="apache" servicelist="nineskeletor">nineskeletor</service>
|
||||||
|
<service servicelist="nineskeletor">wssnineskeletor</service>
|
||||||
|
|
||||||
|
<!-- template -->
|
||||||
|
<file filelist='nineskeletor' name='/etc/apache2/sites-available/nineskeletor' source='nineskeletor-apache.conf' />
|
||||||
|
<file filelist='nineskeletor' name='/lib/systemd/system/wssnineskeletor.service' source='nineskeletor.service'/>
|
||||||
|
<file filelist='nineskeletor' name='/var/www/html/nineskeletor/.env.local' source='nineskeletor-env.local' rm='True'/>
|
||||||
|
<file filelist='nineskeletor' name='/etc/cron.d/nineskeletor' source='nineskeletor.cron' rm='True'/>
|
||||||
|
</container>
|
||||||
|
</containers>
|
||||||
|
|
||||||
|
<variables>
|
||||||
|
<family name='nineskeletor'>
|
||||||
|
<variable name="ninegate_test_ninegate" type="oui/non" hidden='True' exists='False'><value>non</value></variable>
|
||||||
|
<variable name="activer_revprox" type="oui/non" description="Activer le reverse proxy Nginx" hidden='True' exists='False'><value>non</value></variable>
|
||||||
|
|
||||||
|
<variable name='activer_nineskeletor' type='oui/non' description='Activer Nineskeletor'>
|
||||||
|
<value>oui</value>
|
||||||
|
</variable>
|
||||||
|
|
||||||
|
<variable type='string' name='nineskeletor_mode_auth' description="Mode Authentification" mandatory='True'><value>CAS</value></variable>
|
||||||
|
<variable type='string' name='nineskeletor_masteridentity' description="Maître de l'Identité" mandatory='True'><value>Ninegate</value></variable>
|
||||||
|
<variable type='string' name='nineskeletor_urlidentity' description="URL complète de l'Identité" mandatory='True'><value>/ninegate</value></variable>
|
||||||
|
<variable type='string' name='nineskeletor_apikeyidentity' description="API Key de l'Identité" mandatory='True'><value>APIKeyNinegate</value></variable>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- LDAP -->
|
||||||
|
<variable type='string' name='nineskeletor_ldaptemplate' description="Modèle d'annuaire"><value>scribe</value></variable>
|
||||||
|
<variable type='string' name='nineskeletor_ldapfiltergroup' description="Filtre LDAP des groupes (bien mettre votre filtre entre parenthèses)" mandatory='True'><value>(&(ObjectClass=posixGroup)(cn=*))</value></variable>
|
||||||
|
<variable type='string' name='nineskeletor_ldapfilteruser' description="Filtre LDAP des utilisateurs (bien mettre votre filtre entre parenthèses)" mandatory='True'><value>(&(ObjectClass=person)(uid=*))</value></variable>
|
||||||
|
<variable type='string' name='nineskeletor_ldapuid' description="Attribut LDAP uid" mandatory='True'><value>uid</value></variable>
|
||||||
|
<variable type='string' name='nineskeletor_ldapfirstname' description="Attribut LDAP firstname" mandatory='True'><value>givenname</value></variable>
|
||||||
|
<variable type='string' name='nineskeletor_ldaplastname' description="Attribut LDAP lastname" mandatory='True'><value>sn</value></variable>
|
||||||
|
<variable type='string' name='nineskeletor_ldapmail' description="Attribut LDAP email" mandatory='True'><value>mail</value></variable>
|
||||||
|
|
||||||
|
<!-- EMAIL -->
|
||||||
|
<variable type='string' name='nineskeletor_noreply' description='Adresse mail utilisé pour le noreply' mandatory='True' />
|
||||||
|
<variable type="oui/non" name='nineskeletor_activer_localmail' description="Utiliser le serveur d'envoi de mail local" mandatory='True'>
|
||||||
|
<value>oui</value>
|
||||||
|
</variable>
|
||||||
|
<variable type='string' name='nineskeletor_smtphost' description='Host du serveur SMTP' mandatory='True' />
|
||||||
|
<variable type='string' name='nineskeletor_smtpport' description='Port du serveur SMTP' mandatory='True' />
|
||||||
|
<variable type='string' name='nineskeletor_smtpuser' description='Compte du serveur SMTP' mandatory='True' />
|
||||||
|
<variable type='string' name='nineskeletor_smtppwd' description='Mot de passe associé du compte SMTP' mandatory='True' />
|
||||||
|
<variable type='string' name='nineskeletor_smtpencryption' description='Type Encryptage du serveur SMTP' mandatory='True' />
|
||||||
|
<variable type='string' name='nineskeletor_smtpauthmode' description='Mode Authentification du serveur SMTP' mandatory='True' />
|
||||||
|
|
||||||
|
|
||||||
|
<!-- BDD -->
|
||||||
|
<variable type='string' name='nineskeletor_db_mode' description='Serveur de bases de données à utiliser' mode='expert'/>
|
||||||
|
<variable type='string' name='nineskeletor_dbserver' description='Adresse du serveur de base de données' mode='expert'/>
|
||||||
|
<variable type='number' name='nineskeletor_dbport' description="Port d'écoute du serveur de base de données" mode='expert'/>
|
||||||
|
<variable type='string' name='nineskeletor_allow_hosts' description="Hôtes autorisés à utiliser la base de données" multi='True' mode='expert'/>
|
||||||
|
<variable type='string' name='nineskeletor_dbuser' description='Utilisateur du serveur de base de données' mode='expert'/>
|
||||||
|
<variable type='string' name='nineskeletor_dbpass' description='Fichier de mot de passe du serveur' mode='expert'/>
|
||||||
|
</family>
|
||||||
|
|
||||||
|
<separators>
|
||||||
|
<separator name="nineskeletor_ldaptemplate">Paramètres associés à l'Annuaire</separator>
|
||||||
|
<separator name="nineskeletor_noreply">Paramètres associés aux Mails</separator>
|
||||||
|
<separator name="nineskeletor_db_mode">Paramètres associés à la Base de Données</separator>
|
||||||
|
</separators>
|
||||||
|
</variables>
|
||||||
|
|
||||||
|
<constraints>
|
||||||
|
<!-- AFFICHAGE EN FONCTION DE APACHE -->
|
||||||
|
<condition name='hidden_if_in' source='activer_apache'>
|
||||||
|
<param>non</param>
|
||||||
|
<target type='filelist'>nineskeletor</target>
|
||||||
|
<target type='filelist'>nineskeletor_nginx</target>
|
||||||
|
<target type='servicelist'>nineskeletor</target>
|
||||||
|
</condition>
|
||||||
|
|
||||||
|
<!-- AFFICHAGE EN FONCTION DE REVERSE PROXY -->
|
||||||
|
<condition name='hidden_if_in' source='activer_revprox'>
|
||||||
|
<param>non</param>
|
||||||
|
<target type='filelist'>nineskeletor_nginx</target>
|
||||||
|
</condition>
|
||||||
|
|
||||||
|
<!-- AFFICHAGE EN FONCTION DE NINESKELETOR -->
|
||||||
|
<condition name='hidden_if_in' source='activer_nineskeletor'>
|
||||||
|
<param>non</param>
|
||||||
|
|
||||||
|
<target type='variable'>nineskeletor_masteridentity</target>
|
||||||
|
<target type='variable'>nineskeletor_urlidentity</target>
|
||||||
|
<target type='variable'>nineskeletor_apikeyidentity</target>
|
||||||
|
|
||||||
|
<target type='variable'>nineskeletor_mode_auth</target>
|
||||||
|
<target type='variable'>nineskeletor_ldaptemplate</target>
|
||||||
|
|
||||||
|
<target type='variable'>nineskeletor_noreply</target>
|
||||||
|
<target type='variable'>nineskeletor_activer_localmail</target>
|
||||||
|
<target type='variable'>nineskeletor_smtphost</target>
|
||||||
|
<target type='variable'>nineskeletor_smtpport</target>
|
||||||
|
<target type='variable'>nineskeletor_smtpuser</target>
|
||||||
|
<target type='variable'>nineskeletor_smtppwd</target>
|
||||||
|
<target type='variable'>nineskeletor_smtpencryption</target>
|
||||||
|
<target type='variable'>nineskeletor_smtpauthmode</target>
|
||||||
|
|
||||||
|
<target type='variable'>nineskeletor_db_mode</target>
|
||||||
|
<target type='variable'>nineskeletor_dbserver</target>
|
||||||
|
<target type='variable'>nineskeletor_dbport</target>
|
||||||
|
<target type='variable'>nineskeletor_allow_hosts</target>
|
||||||
|
<target type='variable'>nineskeletor_dbuser</target>
|
||||||
|
<target type='variable'>nineskeletor_dbpass</target>
|
||||||
|
|
||||||
|
<target type='filelist'>nineskeletor</target>
|
||||||
|
<target type='filelist'>nineskeletor_nginx</target>
|
||||||
|
<target type='servicelist'>nineskeletor</target>
|
||||||
|
</condition>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- AFFICHAGE EN FONCTION DE NINEGATE -->
|
||||||
|
<fill name='calc_multi_condition' target='nineskeletor_masteridentity'>
|
||||||
|
<param>oui</param>
|
||||||
|
|
||||||
|
<param type='eole' name='condition_1' hidden='False'>ninegate_test_ninegate</param>
|
||||||
|
<param name='match'>Ninegate</param>
|
||||||
|
<param name='mismatch'>LDAP</param>
|
||||||
|
<param name='default_mismatch'>LDAP</param>
|
||||||
|
</fill>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- AFFICHAGE EN FONCTION DU MASTERIDENTITY -->
|
||||||
|
<condition name='hidden_if_in' source='nineskeletor_masteridentity'>
|
||||||
|
<param>LDAP</param>
|
||||||
|
|
||||||
|
<target type='variable'>nineskeletor_urlidentity</target>
|
||||||
|
<target type='variable'>nineskeletor_apikeyidentity</target>
|
||||||
|
</condition>
|
||||||
|
|
||||||
|
<condition name='hidden_if_in' source='nineskeletor_masteridentity'>
|
||||||
|
<param>Ninegate</param>
|
||||||
|
|
||||||
|
<target type='variable'>nineskeletor_ldaptemplate</target>
|
||||||
|
</condition>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- AFFICHAGE EN FONCTION DU LDAP -->
|
||||||
|
<condition name='hidden_if_in' source='nineskeletor_ldaptemplate'>
|
||||||
|
<param>scribe</param>
|
||||||
|
|
||||||
|
<target type='variable'>nineskeletor_ldapfiltergroup</target>
|
||||||
|
<target type='variable'>nineskeletor_ldapfilteruser</target>
|
||||||
|
<target type='variable'>nineskeletor_ldapuid</target>
|
||||||
|
<target type='variable'>nineskeletor_ldapfirstname</target>
|
||||||
|
<target type='variable'>nineskeletor_ldaplastname</target>
|
||||||
|
<target type='variable'>nineskeletor_ldapmail</target>
|
||||||
|
</condition>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- AFFICHAGE EN FONCTION DU MAIL -->
|
||||||
|
<fill name='concat' target='nineskeletor_noreply'>
|
||||||
|
<param>noreply@</param>
|
||||||
|
<param type='eole'>domaine_messagerie_etab</param>
|
||||||
|
</fill>
|
||||||
|
|
||||||
|
<condition name='hidden_if_in' source='nineskeletor_activer_localmail'>
|
||||||
|
<param>oui</param>
|
||||||
|
|
||||||
|
<target type='variable'>nineskeletor_smtphost</target>
|
||||||
|
<target type='variable'>nineskeletor_smtpport</target>
|
||||||
|
<target type='variable'>nineskeletor_smtpuser</target>
|
||||||
|
<target type='variable'>nineskeletor_smtppwd</target>
|
||||||
|
<target type='variable'>nineskeletor_smtpencryption</target>
|
||||||
|
<target type='variable'>nineskeletor_smtpauthmode</target>
|
||||||
|
</condition>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- AFFICHAGE EN FONCTION DU MODE DE BDD -->
|
||||||
|
<condition name='disabled_if_in' source='nineskeletor_db_mode'>
|
||||||
|
<param>local</param>
|
||||||
|
<target type='variable'>nineskeletor_dbserver</target>
|
||||||
|
<target type='variable'>nineskeletor_dbuser</target>
|
||||||
|
<target type='variable'>nineskeletor_dbport</target>
|
||||||
|
<target type='variable'>nineskeletor_dbpass</target>
|
||||||
|
</condition>
|
||||||
|
<condition name='disabled_if_in' source='nineskeletor_db_mode'>
|
||||||
|
<param>default</param>
|
||||||
|
<target type='variable'>nineskeletor_dbserver</target>
|
||||||
|
<target type='variable'>nineskeletor_dbuser</target>
|
||||||
|
<target type='variable'>nineskeletor_dbport</target>
|
||||||
|
<target type='variable'>nineskeletor_dbpass</target>
|
||||||
|
<target type='variable'>nineskeletor_allow_hosts</target>
|
||||||
|
</condition>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- VALID EMUN DES DIFFRENTES COMBO -->
|
||||||
|
<check name='valid_enum' target='nineskeletor_masteridentity'>
|
||||||
|
<param>['LDAP','Ninegate']</param>
|
||||||
|
</check>
|
||||||
|
|
||||||
|
<check name='valid_enum' target='nineskeletor_mode_auth'>
|
||||||
|
<param>['CAS', 'LDAP', 'SQL']</param>
|
||||||
|
</check>
|
||||||
|
|
||||||
|
<check name='valid_enum' target='nineskeletor_ldaptemplate'>
|
||||||
|
<param>['scribe','open']</param>
|
||||||
|
</check>
|
||||||
|
|
||||||
|
<check name='valid_enum' target='nineskeletor_smtpencryption'>
|
||||||
|
<param>['tls', 'ssl', 'null']</param>
|
||||||
|
</check>
|
||||||
|
<check name='valid_enum' target='nineskeletor_smtpauthmode'>
|
||||||
|
<param>['plain', 'login', 'cram-md5', 'null']</param>
|
||||||
|
</check>
|
||||||
|
|
||||||
|
<check name='valid_enum' target='nineskeletor_db_mode'>
|
||||||
|
<param>['default', 'externe', 'local']</param>
|
||||||
|
</check>
|
||||||
|
|
||||||
|
</constraints>
|
||||||
|
|
||||||
|
<help>
|
||||||
|
<variable name='activer_nineskeletor'>Skelete application Nine</variable>
|
||||||
|
</help>
|
||||||
|
</creole>
|
@ -1,283 +0,0 @@
|
|||||||
version: '3'
|
|
||||||
|
|
||||||
# Port
|
|
||||||
# 8005 = nineskeletor
|
|
||||||
# 6379 = redis
|
|
||||||
# 5432 = postgresql
|
|
||||||
# 80 = mercure
|
|
||||||
# 9000 = minio nginx
|
|
||||||
# 1025 = fake smtp
|
|
||||||
# 1080 = fake webmail
|
|
||||||
# 389 = fake ldap
|
|
||||||
# 636 = fake ldaps
|
|
||||||
# 6080 = tool phpldapadmin
|
|
||||||
# 6081 = tool adminer
|
|
||||||
|
|
||||||
|
|
||||||
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: nineskeletor-redis
|
|
||||||
ports:
|
|
||||||
- 6379:6379
|
|
||||||
environment:
|
|
||||||
- TZ=Europe/Paris
|
|
||||||
volumes:
|
|
||||||
- /etc/localtime:/etc/localtime:ro
|
|
||||||
|
|
||||||
# Service postgresql pour le stockage de la bdd applicative
|
|
||||||
postgresql:
|
|
||||||
image: postgres:13-alpine
|
|
||||||
container_name: nineskeletor-postgresql
|
|
||||||
hostname: nineskeletor-postgresql
|
|
||||||
environment:
|
|
||||||
POSTGRES_MULTIPLE_DATABASES: nineskeletor,hydra
|
|
||||||
POSTGRES_PASSWORD: ChangeMe
|
|
||||||
POSTGRES_USER: symfony
|
|
||||||
ports:
|
|
||||||
- 5432:5432
|
|
||||||
volumes:
|
|
||||||
- db-data:/var/lib/postgresql/data:rw
|
|
||||||
- ./containers/postgresql:/docker-entrypoint-initdb.d
|
|
||||||
|
|
||||||
# Service websocket
|
|
||||||
mercure:
|
|
||||||
image: dunglas/mercure
|
|
||||||
container_name: nineskeletor-mercure
|
|
||||||
restart: unless-stopped
|
|
||||||
ports:
|
|
||||||
- "80"
|
|
||||||
environment:
|
|
||||||
SERVER_NAME: ':80'
|
|
||||||
MERCURE_PUBLISHER_JWT_KEY: '!changeme!changeme!changeme!changeme!changeme!changeme!'
|
|
||||||
MERCURE_SUBSCRIBER_JWT_KEY: '!changeme!changeme!changeme!changeme!changeme!changeme!'
|
|
||||||
MERCURE_EXTRA_DIRECTIVES: |
|
|
||||||
cors_origins https://127.0.0.1:8000
|
|
||||||
# Comment the following line to disable the development mode
|
|
||||||
command: /usr/bin/caddy run -config /etc/caddy/Caddyfile.dev
|
|
||||||
volumes:
|
|
||||||
- mercure_data:/data
|
|
||||||
- mercure_config:/config
|
|
||||||
|
|
||||||
# Service de stockage Minio
|
|
||||||
minio1:
|
|
||||||
image: minio/minio:RELEASE.2021-01-16T02-19-44Z
|
|
||||||
container_name: nineskeletor-minio1
|
|
||||||
volumes:
|
|
||||||
- data1-1:/data1
|
|
||||||
- data1-2:/data2
|
|
||||||
expose:
|
|
||||||
- "9000"
|
|
||||||
environment:
|
|
||||||
MINIO_ROOT_USER: minio
|
|
||||||
MINIO_ROOT_PASSWORD: changeme
|
|
||||||
command: server http://minio{1...4}/data{1...2}
|
|
||||||
healthcheck:
|
|
||||||
test: ["CMD", "curl", "-f", "http://127.0.0.1:9000/minio/health/live"]
|
|
||||||
interval: 30s
|
|
||||||
timeout: 20s
|
|
||||||
retries: 3
|
|
||||||
|
|
||||||
# Service de stockage Minio
|
|
||||||
minio2:
|
|
||||||
image: minio/minio:RELEASE.2021-01-16T02-19-44Z
|
|
||||||
container_name: nineskeletor-minio2
|
|
||||||
volumes:
|
|
||||||
- data2-1:/data1
|
|
||||||
- data2-2:/data2
|
|
||||||
expose:
|
|
||||||
- "9000"
|
|
||||||
environment:
|
|
||||||
MINIO_ROOT_USER: minio
|
|
||||||
MINIO_ROOT_PASSWORD: changeme
|
|
||||||
command: server http://minio{1...4}/data{1...2}
|
|
||||||
healthcheck:
|
|
||||||
test: ["CMD", "curl", "-f", "http://127.0.0.1:9000/minio/health/live"]
|
|
||||||
interval: 30s
|
|
||||||
timeout: 20s
|
|
||||||
retries: 3
|
|
||||||
|
|
||||||
# Service de stockage Minio
|
|
||||||
minio3:
|
|
||||||
image: minio/minio:RELEASE.2021-01-16T02-19-44Z
|
|
||||||
container_name: nineskeletor-minio3
|
|
||||||
volumes:
|
|
||||||
- data3-1:/data1
|
|
||||||
- data3-2:/data2
|
|
||||||
expose:
|
|
||||||
- "9000"
|
|
||||||
environment:
|
|
||||||
MINIO_ROOT_USER: minio
|
|
||||||
MINIO_ROOT_PASSWORD: changeme
|
|
||||||
command: server http://minio{1...4}/data{1...2}
|
|
||||||
healthcheck:
|
|
||||||
test: ["CMD", "curl", "-f", "http://127.0.0.1:9000/minio/health/live"]
|
|
||||||
interval: 30s
|
|
||||||
timeout: 20s
|
|
||||||
retries: 3
|
|
||||||
|
|
||||||
# Service de stockage Minio
|
|
||||||
minio4:
|
|
||||||
image: minio/minio:RELEASE.2021-01-16T02-19-44Z
|
|
||||||
container_name: nineskeletor-minio4
|
|
||||||
volumes:
|
|
||||||
- data4-1:/data1
|
|
||||||
- data4-2:/data2
|
|
||||||
expose:
|
|
||||||
- "9000"
|
|
||||||
environment:
|
|
||||||
MINIO_ROOT_USER: minio
|
|
||||||
MINIO_ROOT_PASSWORD: changeme
|
|
||||||
command: server http://minio{1...4}/data{1...2}
|
|
||||||
healthcheck:
|
|
||||||
test: ["CMD", "curl", "-f", "http://127.0.0.1:9000/minio/health/live"]
|
|
||||||
interval: 30s
|
|
||||||
timeout: 20s
|
|
||||||
retries: 3
|
|
||||||
|
|
||||||
# Service nginx orchestrateur des minio
|
|
||||||
nginx:
|
|
||||||
image: nginx:1.19.2-alpine
|
|
||||||
container_name: nineskeletor-nginx
|
|
||||||
volumes:
|
|
||||||
- ./containers/minio/nginx.conf:/etc/nginx/nginx.conf:ro
|
|
||||||
ports:
|
|
||||||
- "9000:9000"
|
|
||||||
depends_on:
|
|
||||||
- minio1
|
|
||||||
- minio2
|
|
||||||
- minio3
|
|
||||||
- minio4
|
|
||||||
|
|
||||||
# Service hydra
|
|
||||||
hydra:
|
|
||||||
image: cadoles/hydra-v1
|
|
||||||
container_name: nineskeletor-hydra
|
|
||||||
volumes:
|
|
||||||
- ./containers/hydra/clients.d:/etc/hydra/clients.d
|
|
||||||
ports:
|
|
||||||
- 7080:4444
|
|
||||||
- 4445:4445
|
|
||||||
links:
|
|
||||||
- postgresql
|
|
||||||
depends_on:
|
|
||||||
- postgresql
|
|
||||||
restart: on-failure
|
|
||||||
environment:
|
|
||||||
LOG_LEAK_SENSITIVE_VALUES: "true"
|
|
||||||
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
|
|
||||||
HYDRA_ALLOW_INSECURE: "yes"
|
|
||||||
HYDRA_LEVEL: debug
|
|
||||||
|
|
||||||
hydra-dispatcher:
|
|
||||||
build:
|
|
||||||
context: ./containers/hydra-dispatcher
|
|
||||||
container_name: nineskeletor-hydra-dispatcher
|
|
||||||
links:
|
|
||||||
- hydra
|
|
||||||
ports:
|
|
||||||
- 7081:80
|
|
||||||
restart: on-failure
|
|
||||||
environment:
|
|
||||||
- APP_ENV=dev
|
|
||||||
- APP_DEBUG=yes
|
|
||||||
- HYDRA_BASE_URL=http://hydra:4444
|
|
||||||
- HYDRA_ADMIN_BASE_URL=http://hydra:4445
|
|
||||||
# url dispatcher
|
|
||||||
- BASE_URL=http://localhost:7081
|
|
||||||
- COOKIE_PATH=/
|
|
||||||
- DEFAULT_LOCALE=fr
|
|
||||||
- APP_LOCALES=fr,en
|
|
||||||
volumes:
|
|
||||||
- ./containers/hydra-dispatcher/hydra:/var/www/config/hydra:ro
|
|
||||||
- ./containers/hydra-dispatcher/templates:/var/www/templates
|
|
||||||
- ./containers/hydra-dispatcher/theme.css:/var/www/public/build/theme/theme.css
|
|
||||||
|
|
||||||
# Service fake smtp = optionnel
|
|
||||||
mailer:
|
|
||||||
image: schickling/mailcatcher
|
|
||||||
container_name: nineskeletor-mailer
|
|
||||||
ports:
|
|
||||||
- 1025:1025
|
|
||||||
- 1080:1080
|
|
||||||
|
|
||||||
# Service fake openldap = optionnel si nineskeletor a une synchronisation avec un annuaire
|
|
||||||
openldap:
|
|
||||||
image: osixia/openldap:1.5.0
|
|
||||||
container_name: nineskeletor-openldap
|
|
||||||
environment:
|
|
||||||
LDAP_LOG_LEVEL: "256"
|
|
||||||
LDAP_ORGANISATION: "nine"
|
|
||||||
LDAP_DOMAIN: "nine.fr"
|
|
||||||
LDAP_ADMIN_PASSWORD: "changeme"
|
|
||||||
LDAP_CONFIG_PASSWORD: "changeme"
|
|
||||||
LDAP_READONLY_USER: "true"
|
|
||||||
LDAP_READONLY_USER_USERNAME: "readonly"
|
|
||||||
LDAP_READONLY_USER_PASSWORD: "readonly"
|
|
||||||
LDAP_TLS: "false"
|
|
||||||
volumes:
|
|
||||||
- /var/lib/ldap
|
|
||||||
- /etc/ldap/slapd.d
|
|
||||||
- /container/service/slapd/assets/certs/
|
|
||||||
ports:
|
|
||||||
- "389:389"
|
|
||||||
- "636:636"
|
|
||||||
|
|
||||||
# Service tool phpldapadmin = optionnel dans le cas de la présence d'un fake openldap
|
|
||||||
phpldapadmin:
|
|
||||||
image: osixia/phpldapadmin:latest
|
|
||||||
container_name: nineskeletor-phpldapadmin
|
|
||||||
environment:
|
|
||||||
PHPLDAPADMIN_LDAP_HOSTS: "openldap"
|
|
||||||
PHPLDAPADMIN_HTTPS: "false"
|
|
||||||
ports:
|
|
||||||
- "6080:80"
|
|
||||||
depends_on:
|
|
||||||
- openldap
|
|
||||||
|
|
||||||
# Service tool adminer = optionnel
|
|
||||||
adminer:
|
|
||||||
image: adminer
|
|
||||||
container_name: nineskeletor-adminer
|
|
||||||
restart: always
|
|
||||||
ports:
|
|
||||||
- 6081:8080
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
db-data:
|
|
||||||
mercure_data:
|
|
||||||
mercure_config:
|
|
||||||
data1-1:
|
|
||||||
data1-2:
|
|
||||||
data2-1:
|
|
||||||
data2-2:
|
|
||||||
data3-1:
|
|
||||||
data3-2:
|
|
||||||
data4-1:
|
|
||||||
data4-2:
|
|
231
eole.mk
Normal file
@ -0,0 +1,231 @@
|
|||||||
|
#
|
||||||
|
# NE PAS EDITER CE FICHIER
|
||||||
|
#
|
||||||
|
# Utiliser <appli>.mk à inclure à la fin de Makefile
|
||||||
|
|
||||||
|
#################
|
||||||
|
# Sanity checks #
|
||||||
|
#################
|
||||||
|
|
||||||
|
ifeq (, $(DESTDIR))
|
||||||
|
$(warning $$(DESTDIR) is empty, installation will be done in /)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq (, $(filter-out XXX-XXX, $(strip $(SOURCE))))
|
||||||
|
$(error $$(SOURCE) variable has incorrect value '$(SOURCE)')
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq (, $(filter-out 2.X, $(strip $(EOLE_VERSION))))
|
||||||
|
$(error $$(EOLE_VERSION) variable has incorrect value '$(EOLE_VERSION)')
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq (, $(filter-out 2.X.Y, $(strip $(EOLE_RELEASE))))
|
||||||
|
$(error $$(EOLE_RELEASE) variable has incorrect value '$(EOLE_RELEASE)')
|
||||||
|
endif
|
||||||
|
|
||||||
|
#########################
|
||||||
|
# Variables definitions #
|
||||||
|
#########################
|
||||||
|
|
||||||
|
INSTALL := install
|
||||||
|
INSTALL_DATA := install -m 644
|
||||||
|
INSTALL_PROGRAM := install -m 755
|
||||||
|
INSTALL_DIRECTORY := install -m 755 -d
|
||||||
|
INSTALL_RECURSIVE := cp -dr --no-preserve=ownership
|
||||||
|
|
||||||
|
# Standard path
|
||||||
|
bin_PROG_DIR := $(DESTDIR)/usr/bin
|
||||||
|
sbin_PROG_DIR := $(DESTDIR)/usr/sbin
|
||||||
|
man8_DATA_DIR := $(DESTDIR)/usr/share/man/fr.UTF-8/man8
|
||||||
|
|
||||||
|
# Base
|
||||||
|
eole_DIR := $(DESTDIR)/usr/share/eole
|
||||||
|
|
||||||
|
ifeq ($(strip $(EOLE_VERSION)), 2.3)
|
||||||
|
diagnose_PROG_DIR := $(eole_DIR)/diagnose/module
|
||||||
|
else
|
||||||
|
diagnose_PROG_DIR := $(eole_DIR)/diagnose/
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Creole
|
||||||
|
creole_DIR := $(eole_DIR)/creole
|
||||||
|
dicos_DATA_DIR := $(creole_DIR)/dicos
|
||||||
|
tmpl_DATA_DIR := $(creole_DIR)/distrib
|
||||||
|
preservice_PROG_DIR := $(eole_DIR)/preservice
|
||||||
|
pretemplate_PROG_DIR := $(eole_DIR)/pretemplate
|
||||||
|
posttemplate_PROG_DIR := $(eole_DIR)/posttemplate
|
||||||
|
postservice_PROG_DIR := $(eole_DIR)/postservice
|
||||||
|
ifeq ($(strip $(EOLE_VERSION)), 2.3)
|
||||||
|
firewall_DATA_DIR := $(eole_DIR)/firewall
|
||||||
|
endif
|
||||||
|
bacula_restore_DATA_DIR := $(eole_DIR)/bacula/restore
|
||||||
|
bareos_restore_DATA_DIR := $(eole_DIR)/bareos/restore
|
||||||
|
bacula_fichier_DATA_DIR := $(DESTDIR)/etc/bacula/baculafichiers.d
|
||||||
|
bareos_fichier_DATA_DIR := $(DESTDIR)/etc/bareos/bareosfichiers.d
|
||||||
|
ifeq ($(strip $(EOLE_VERSION)), 2.3)
|
||||||
|
schedule_pre_PROG_DIR := $(eole_DIR)/schedule/pre
|
||||||
|
schedule_post_PROG_DIR := $(eole_DIR)/schedule/post
|
||||||
|
else
|
||||||
|
schedule_scripts_PROG_DIR := $(eole_DIR)/schedule/scripts
|
||||||
|
endif
|
||||||
|
extra_REC_DIR := $(creole_DIR)/extra
|
||||||
|
|
||||||
|
# Zéphir
|
||||||
|
zephir_DATA_DIR := $(DESTDIR)/usr/share/zephir
|
||||||
|
zephir_configs_DATA_DIR := $(zephir_DATA_DIR)/monitor/configs
|
||||||
|
zephir_srv_DATA_DIR := $(zephir_configs_DATA_DIR)/services
|
||||||
|
zephir_scripts_PROG_DIR := $(zephir_DATA_DIR)/scripts
|
||||||
|
|
||||||
|
# SSO
|
||||||
|
sso_DATA_DIR := $(DESTDIR)/usr/share/sso
|
||||||
|
sso_filtres_DATA_DIR := $(sso_DATA_DIR)/app_filters
|
||||||
|
sso_user-info_DATA_DIR := $(sso_DATA_DIR)/user_infos
|
||||||
|
|
||||||
|
# EAD
|
||||||
|
ead_DATA_DIR := $(DESTDIR)/usr/share/ead2/backend/config
|
||||||
|
ead_actions_DATA_DIR := $(ead_DATA_DIR)/actions
|
||||||
|
ead_perms_DATA_DIR := $(ead_DATA_DIR)/perms
|
||||||
|
ead_roles_DATA_DIR := $(ead_DATA_DIR)/roles
|
||||||
|
|
||||||
|
# Program libraries goes under /usr/lib/<PROGRAM>/
|
||||||
|
lib_$(SOURCE)_DATA_DIR := $(DESTDIR)/usr/lib/$(SOURCE)
|
||||||
|
|
||||||
|
# Scripts Eole
|
||||||
|
scripts_PROG_DIR := $(eole_DIR)/sbin
|
||||||
|
lib_eole_DATA_DIR := $(DESTDIR)/usr/lib/eole
|
||||||
|
|
||||||
|
# LDAP
|
||||||
|
ldap_passwords_DATA_DIR := $(eole_DIR)/annuaire/password_files
|
||||||
|
|
||||||
|
# LXC
|
||||||
|
lxc_DATA_DIR := $(eole_DIR)/lxc
|
||||||
|
lxc_fstab_DATA_DIR := $(lxc_DATA_DIR)/fstab
|
||||||
|
lxc_hosts_DATA_DIR := $(lxc_DATA_DIR)/hosts
|
||||||
|
|
||||||
|
# SQL
|
||||||
|
sql_DATA_DIR := $(eole_DIR)/mysql/$(SOURCE)
|
||||||
|
sql_gen_DATA_DIR := $(sql_DATA_DIR)/gen
|
||||||
|
sql_updates_DATA_DIR := $(sql_DATA_DIR)/updates
|
||||||
|
|
||||||
|
sql_conf_gen_DATA_DIR := $(eole_DIR)/applications/gen
|
||||||
|
sql_conf_passwords_DATA_DIR := $(eole_DIR)/applications/passwords
|
||||||
|
sql_conf_updates_DATA_DIR := $(eole_DIR)/applications/updates/$(SOURCE)
|
||||||
|
|
||||||
|
# EoleDB sql directory
|
||||||
|
db_DIR := $(eole_DIR)/db
|
||||||
|
db_gen_DATA_DIR := $(eole_DIR)/db/$(SOURCE)/gen
|
||||||
|
db_updates_DATA_DIR := $(eole_DIR)/db/$(SOURCE)/updates
|
||||||
|
|
||||||
|
# Certifs
|
||||||
|
certs_DATA_DIR := $(eole_DIR)/certs
|
||||||
|
|
||||||
|
# Logrotate
|
||||||
|
logrotate_DATA_DIR := $(DESTDIR)/etc/logrotate.d
|
||||||
|
|
||||||
|
# Cron
|
||||||
|
cron_PROG_DIR := $(DESTDIR)/etc/cron.daily
|
||||||
|
|
||||||
|
# Python modules
|
||||||
|
ifneq ($(DESTDIR),)
|
||||||
|
PYTHON_OPTS := --root $(DESTDIR)
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Translation
|
||||||
|
TRANSLATION_SRC := translation
|
||||||
|
TRANSLATION_DEST := $(DESTDIR)/usr/share/locale
|
||||||
|
PO_FILES = $(wildcard $(TRANSLATION_SRC)/*/*.po)
|
||||||
|
MO_FOLDERS = $(addprefix $(TRANSLATION_DEST), $(addsuffix LC_MESSAGES,$(subst $(TRANSLATION_SRC),,$(dir $(PO_FILES)))))
|
||||||
|
|
||||||
|
#############################################
|
||||||
|
# Common directories and files installation #
|
||||||
|
#############################################
|
||||||
|
|
||||||
|
all:
|
||||||
|
|
||||||
|
$(MO_FOLDERS):
|
||||||
|
$(INSTALL_DIRECTORY) $@
|
||||||
|
|
||||||
|
$(PO_FILES): $(MO_FOLDERS)
|
||||||
|
msgfmt -o $(TRANSLATION_DEST)$(subst $(TRANSLATION_SRC),,$(addsuffix LC_MESSAGES,$(dir $@)))/$(notdir $(@:.po=.mo)) $@
|
||||||
|
|
||||||
|
install-lang: $(PO_FILES)
|
||||||
|
|
||||||
|
install:: install-dirs install-files install-lang
|
||||||
|
|
||||||
|
# $1 = command to run
|
||||||
|
# $2 = source directory
|
||||||
|
# $3 = destination directory
|
||||||
|
define fc_install_file
|
||||||
|
if [ -d $2 ]; then \
|
||||||
|
for file in `ls -1 $2/`; do \
|
||||||
|
$1 $2/$$file $3 || true; \
|
||||||
|
done; \
|
||||||
|
fi
|
||||||
|
endef
|
||||||
|
|
||||||
|
##
|
||||||
|
## Directory creation
|
||||||
|
##
|
||||||
|
|
||||||
|
# use % to catch local name in $*
|
||||||
|
# data, program and recursive directory require a corresponding
|
||||||
|
# directory in local sources
|
||||||
|
%_DATA_DIR %_PROG_DIR %REC_DIR:
|
||||||
|
test ! -d $(subst _,/,$*) || $(INSTALL_DIRECTORY) $($@)
|
||||||
|
|
||||||
|
# Create the directory referenced by the variable without a local one.
|
||||||
|
%_DIR:
|
||||||
|
@: # do nothing
|
||||||
|
|
||||||
|
##
|
||||||
|
## Install files present directly under data, program and recursive directories
|
||||||
|
##
|
||||||
|
|
||||||
|
# $* : name of variable
|
||||||
|
# $($*): value of variable
|
||||||
|
%-instdata:
|
||||||
|
$(call fc_install_file, $(INSTALL_DATA), $(subst _,/,$(subst _DATA_DIR,,$*)), $($*))
|
||||||
|
|
||||||
|
%-instprog:
|
||||||
|
$(call fc_install_file, $(INSTALL_PROGRAM), $(subst _,/,$(subst _PROG_DIR,,$*)), $($*))
|
||||||
|
|
||||||
|
%-instrec:
|
||||||
|
$(call fc_install_file, $(INSTALL_RECURSIVE), $(subst _,/,$(subst _REC_DIR,,$*)), $($*))
|
||||||
|
|
||||||
|
|
||||||
|
# Use second expansion as variables may be created in included
|
||||||
|
# Makefiles
|
||||||
|
.SECONDEXPANSION:
|
||||||
|
|
||||||
|
# List of all directories
|
||||||
|
installdirs_LIST = $(foreach V, $(filter %_DIR, $(.VARIABLES)), \
|
||||||
|
$(if $(filter file, $(origin $(V))), \
|
||||||
|
$(V)))
|
||||||
|
# List of data directories
|
||||||
|
installdata_LIST = $(filter %_DATA_DIR, $(installdirs_LIST))
|
||||||
|
# List of program directories
|
||||||
|
installprog_LIST = $(filter %_PROG_DIR, $(installdirs_LIST))
|
||||||
|
# List of recursive directories
|
||||||
|
installrec_LIST = $(filter %_REC_DIR, $(installdirs_LIST))
|
||||||
|
|
||||||
|
# Expand directories to create as dependency
|
||||||
|
# Use double-colon to permit user to define additionnal install-dirs
|
||||||
|
install-dirs:: $$(installdirs_LIST)
|
||||||
|
|
||||||
|
# Expand files to install as dependency
|
||||||
|
# Use double-colon to permit user to define additionnal install-files
|
||||||
|
install-files:: install-data-files install-prog-files install-rec-dirs
|
||||||
|
|
||||||
|
install-data-files: $$(patsubst %,%-instdata,$$(installdata_LIST))
|
||||||
|
|
||||||
|
install-prog-files: $$(patsubst %,%-instprog,$$(installprog_LIST))
|
||||||
|
|
||||||
|
install-rec-dirs: $$(patsubst %,%-instrec,$$(installrec_LIST))
|
||||||
|
|
||||||
|
# Installation of python modules
|
||||||
|
ifeq ($(shell test -f setup.py && echo 0), 0)
|
||||||
|
install-files::
|
||||||
|
python setup.py install --no-compile --install-layout=deb $(PYTHON_OPTS)
|
||||||
|
endif
|
||||||
|
|
||||||
|
.PHONY: install install-dirs install-files install-data-files install-prog-files install-rec-dirs
|
13
logrotate/nineskeletor
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
/var/www/html/nineskeletor/var/log/*.log {
|
||||||
|
su root www-data
|
||||||
|
daily
|
||||||
|
rotate 7
|
||||||
|
size 900
|
||||||
|
maxage 7
|
||||||
|
compress
|
||||||
|
dateext
|
||||||
|
dateformat -%Y%m%d
|
||||||
|
missingok
|
||||||
|
create 644 www-data www-data
|
||||||
|
}
|
||||||
|
|
@ -1,298 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
declare(strict_types=1);
|
|
||||||
|
|
||||||
namespace DoctrineMigrations;
|
|
||||||
|
|
||||||
use Doctrine\DBAL\Schema\Schema;
|
|
||||||
use Doctrine\Migrations\AbstractMigration;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Auto-generated Migration: Please modify to your needs!
|
|
||||||
*/
|
|
||||||
final class Version20230201080252 extends AbstractMigration
|
|
||||||
{
|
|
||||||
public function getDescription(): string
|
|
||||||
{
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function up(Schema $schema): void
|
|
||||||
{
|
|
||||||
// this up() migration is auto-generated, please modify it to your needs
|
|
||||||
$this->addSql('CREATE SEQUENCE alert_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
|
||||||
$this->addSql('CREATE SEQUENCE alertcategory_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
|
||||||
$this->addSql('CREATE SEQUENCE audit_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
|
||||||
$this->addSql('CREATE SEQUENCE bookmark_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
|
||||||
$this->addSql('CREATE SEQUENCE cron_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
|
||||||
$this->addSql('CREATE SEQUENCE groupe_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
|
||||||
$this->addSql('CREATE SEQUENCE icon_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
|
||||||
$this->addSql('CREATE SEQUENCE item_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
|
||||||
$this->addSql('CREATE SEQUENCE itemcategory_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
|
||||||
$this->addSql('CREATE SEQUENCE niveau01_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
|
||||||
$this->addSql('CREATE SEQUENCE niveau02_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
|
||||||
$this->addSql('CREATE SEQUENCE niveau03_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
|
||||||
$this->addSql('CREATE SEQUENCE niveau04_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
|
||||||
$this->addSql('CREATE SEQUENCE page_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
|
||||||
$this->addSql('CREATE SEQUENCE pagecategory_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
|
||||||
$this->addSql('CREATE SEQUENCE pagewidget_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
|
||||||
$this->addSql('CREATE SEQUENCE pagewidgetslide_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
|
||||||
$this->addSql('CREATE SEQUENCE registration_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
|
||||||
$this->addSql('CREATE SEQUENCE useraccount_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
|
||||||
$this->addSql('CREATE SEQUENCE usergroupe_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
|
||||||
$this->addSql('CREATE SEQUENCE usermodo_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
|
||||||
$this->addSql('CREATE SEQUENCE whitelist_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
|
||||||
$this->addSql('CREATE SEQUENCE widget_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
|
|
||||||
$this->addSql('CREATE TABLE alert (id INT NOT NULL, category INT NOT NULL, title VARCHAR(100) NOT NULL, content TEXT DEFAULT NULL, rowOrder INT DEFAULT NULL, publishedat DATE NOT NULL, unpublishedat DATE DEFAULT NULL, fghideable BOOLEAN NOT NULL, roles TEXT DEFAULT NULL, PRIMARY KEY(id))');
|
|
||||||
$this->addSql('CREATE INDEX IDX_17FD46C164C19C1 ON alert (category)');
|
|
||||||
$this->addSql('COMMENT ON COLUMN alert.roles IS \'(DC2Type:array)\'');
|
|
||||||
$this->addSql('CREATE TABLE alertgroupe (alert INT NOT NULL, groupe INT NOT NULL, PRIMARY KEY(alert, groupe))');
|
|
||||||
$this->addSql('CREATE INDEX IDX_64DB975617FD46C1 ON alertgroupe (alert)');
|
|
||||||
$this->addSql('CREATE INDEX IDX_64DB97564B98C21 ON alertgroupe (groupe)');
|
|
||||||
$this->addSql('CREATE TABLE alertuserread (alert INT NOT NULL, useraccount INT NOT NULL, PRIMARY KEY(alert, useraccount))');
|
|
||||||
$this->addSql('CREATE INDEX IDX_D4317FA917FD46C1 ON alertuserread (alert)');
|
|
||||||
$this->addSql('CREATE INDEX IDX_D4317FA9E157AA1A ON alertuserread (useraccount)');
|
|
||||||
$this->addSql('CREATE TABLE alertcategory (id INT NOT NULL, icon_id INT DEFAULT NULL, label VARCHAR(100) NOT NULL, color VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id))');
|
|
||||||
$this->addSql('CREATE INDEX IDX_EC575F7E54B9D732 ON alertcategory (icon_id)');
|
|
||||||
$this->addSql('CREATE TABLE audit (id INT NOT NULL, entityname VARCHAR(250) NOT NULL, entityid VARCHAR(250) NOT NULL, datesubmit TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, username VARCHAR(250) NOT NULL, description TEXT DEFAULT NULL, detail TEXT DEFAULT NULL, PRIMARY KEY(id))');
|
|
||||||
$this->addSql('CREATE INDEX search_idx ON audit (entityname, entityid, datesubmit)');
|
|
||||||
$this->addSql('COMMENT ON COLUMN audit.detail IS \'(DC2Type:array)\'');
|
|
||||||
$this->addSql('CREATE TABLE bookmark (id INT NOT NULL, icon_id INT DEFAULT NULL, user_id INT DEFAULT NULL, pagewidget_id INT DEFAULT NULL, item_id INT DEFAULT NULL, title VARCHAR(100) NOT NULL, subtitle VARCHAR(250) DEFAULT NULL, url VARCHAR(500) NOT NULL, target VARCHAR(32) NOT NULL, rowOrder INT DEFAULT NULL, color VARCHAR(24) DEFAULT NULL, PRIMARY KEY(id))');
|
|
||||||
$this->addSql('CREATE INDEX IDX_DA62921D54B9D732 ON bookmark (icon_id)');
|
|
||||||
$this->addSql('CREATE INDEX IDX_DA62921DA76ED395 ON bookmark (user_id)');
|
|
||||||
$this->addSql('CREATE INDEX IDX_DA62921D55B7C7A2 ON bookmark (pagewidget_id)');
|
|
||||||
$this->addSql('CREATE INDEX IDX_DA62921D126F525E ON bookmark (item_id)');
|
|
||||||
$this->addSql('CREATE TABLE config (id VARCHAR(255) NOT NULL, title VARCHAR(250) NOT NULL, value TEXT DEFAULT NULL, defaultvalue TEXT NOT NULL, roworder VARCHAR(255) NOT NULL, visible BOOLEAN NOT NULL, changeable BOOLEAN NOT NULL, required BOOLEAN NOT NULL, type VARCHAR(255) NOT NULL, grouped VARCHAR(255) NOT NULL, category VARCHAR(255) NOT NULL, help TEXT NOT NULL, PRIMARY KEY(id))');
|
|
||||||
$this->addSql('CREATE TABLE cron (id INT NOT NULL, command VARCHAR(255) NOT NULL, description TEXT DEFAULT NULL, statut INT DEFAULT NULL, submitdate TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, startexecdate TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, endexecdate TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, nextexecdate TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, repeatinterval INT DEFAULT NULL, jsonargument TEXT DEFAULT NULL, PRIMARY KEY(id))');
|
|
||||||
$this->addSql('CREATE TABLE groupe (id INT NOT NULL, owner_id INT DEFAULT NULL, pagetemplate_id INT DEFAULT NULL, label VARCHAR(250) NOT NULL, description TEXT DEFAULT NULL, email VARCHAR(250) DEFAULT NULL, isopen BOOLEAN DEFAULT false NOT NULL, isworkgroup BOOLEAN DEFAULT false NOT NULL, apikey VARCHAR(255) NOT NULL, ldapfilter TEXT DEFAULT NULL, attributes TEXT DEFAULT NULL, idexternal TEXT DEFAULT NULL, PRIMARY KEY(id))');
|
|
||||||
$this->addSql('CREATE UNIQUE INDEX UNIQ_4B98C21EA750E8 ON groupe (label)');
|
|
||||||
$this->addSql('CREATE INDEX IDX_4B98C217E3C61F9 ON groupe (owner_id)');
|
|
||||||
$this->addSql('CREATE INDEX IDX_4B98C216D71CE5E ON groupe (pagetemplate_id)');
|
|
||||||
$this->addSql('CREATE TABLE icon (id INT NOT NULL, user_id INT DEFAULT NULL, label VARCHAR(250) NOT NULL, tags VARCHAR(250) DEFAULT NULL, PRIMARY KEY(id))');
|
|
||||||
$this->addSql('CREATE UNIQUE INDEX UNIQ_659429DBEA750E8 ON icon (label)');
|
|
||||||
$this->addSql('CREATE INDEX IDX_659429DBA76ED395 ON icon (user_id)');
|
|
||||||
$this->addSql('CREATE TABLE item (id INT NOT NULL, icon_id INT DEFAULT NULL, category INT NOT NULL, title VARCHAR(100) NOT NULL, subtitle VARCHAR(250) DEFAULT NULL, slug VARCHAR(128) DEFAULT NULL, url VARCHAR(500) NOT NULL, target VARCHAR(32) NOT NULL, content TEXT DEFAULT NULL, rowOrder INT DEFAULT NULL, essential BOOLEAN DEFAULT false, protected BOOLEAN DEFAULT false, color VARCHAR(24) DEFAULT NULL, roles TEXT DEFAULT NULL, PRIMARY KEY(id))');
|
|
||||||
$this->addSql('CREATE UNIQUE INDEX UNIQ_1F1B251E989D9B62 ON item (slug)');
|
|
||||||
$this->addSql('CREATE INDEX IDX_1F1B251E54B9D732 ON item (icon_id)');
|
|
||||||
$this->addSql('CREATE INDEX IDX_1F1B251E64C19C1 ON item (category)');
|
|
||||||
$this->addSql('COMMENT ON COLUMN item.roles IS \'(DC2Type:array)\'');
|
|
||||||
$this->addSql('CREATE TABLE itemgroupe (item INT NOT NULL, groupe INT NOT NULL, PRIMARY KEY(item, groupe))');
|
|
||||||
$this->addSql('CREATE INDEX IDX_A4267B6D1F1B251E ON itemgroupe (item)');
|
|
||||||
$this->addSql('CREATE INDEX IDX_A4267B6D4B98C21 ON itemgroupe (groupe)');
|
|
||||||
$this->addSql('CREATE TABLE itemcategory (id INT NOT NULL, icon_id INT DEFAULT NULL, label VARCHAR(100) NOT NULL, color VARCHAR(24) DEFAULT NULL, rowOrder INT DEFAULT NULL, PRIMARY KEY(id))');
|
|
||||||
$this->addSql('CREATE INDEX IDX_7959DEE854B9D732 ON itemcategory (icon_id)');
|
|
||||||
$this->addSql('CREATE TABLE niveau01 (id INT NOT NULL, label VARCHAR(250) NOT NULL, code TEXT DEFAULT NULL, postaladress TEXT DEFAULT NULL, telephonenumber VARCHAR(60) DEFAULT NULL, email VARCHAR(60) DEFAULT NULL, apikey VARCHAR(255) NOT NULL, ldapfilter TEXT DEFAULT NULL, attributes TEXT DEFAULT NULL, idexternal TEXT DEFAULT NULL, PRIMARY KEY(id))');
|
|
||||||
$this->addSql('CREATE UNIQUE INDEX UNIQ_6DFC7E23EA750E8 ON niveau01 (label)');
|
|
||||||
$this->addSql('CREATE TABLE niveau02 (id INT NOT NULL, niveau01_id INT NOT NULL, label VARCHAR(250) NOT NULL, code TEXT DEFAULT NULL, postaladress TEXT DEFAULT NULL, telephonenumber VARCHAR(60) DEFAULT NULL, email VARCHAR(60) DEFAULT NULL, apikey VARCHAR(255) NOT NULL, PRIMARY KEY(id))');
|
|
||||||
$this->addSql('CREATE UNIQUE INDEX UNIQ_F4F52F99EA750E8 ON niveau02 (label)');
|
|
||||||
$this->addSql('CREATE INDEX IDX_F4F52F9959FDD7AB ON niveau02 (niveau01_id)');
|
|
||||||
$this->addSql('CREATE TABLE niveau03 (id INT NOT NULL, niveau02_id INT NOT NULL, label VARCHAR(250) NOT NULL, code TEXT DEFAULT NULL, postaladress TEXT DEFAULT NULL, telephonenumber VARCHAR(60) DEFAULT NULL, email VARCHAR(60) DEFAULT NULL, apikey VARCHAR(255) NOT NULL, PRIMARY KEY(id))');
|
|
||||||
$this->addSql('CREATE UNIQUE INDEX UNIQ_83F21F0FEA750E8 ON niveau03 (label)');
|
|
||||||
$this->addSql('CREATE INDEX IDX_83F21F0F4B487845 ON niveau03 (niveau02_id)');
|
|
||||||
$this->addSql('CREATE TABLE niveau04 (id INT NOT NULL, niveau03_id INT NOT NULL, label VARCHAR(250) NOT NULL, code TEXT DEFAULT NULL, postaladress TEXT DEFAULT NULL, telephonenumber VARCHAR(60) DEFAULT NULL, email VARCHAR(60) DEFAULT NULL, apikey VARCHAR(255) NOT NULL, PRIMARY KEY(id))');
|
|
||||||
$this->addSql('CREATE UNIQUE INDEX UNIQ_1D968AACEA750E8 ON niveau04 (label)');
|
|
||||||
$this->addSql('CREATE INDEX IDX_1D968AACF3F41F20 ON niveau04 (niveau03_id)');
|
|
||||||
$this->addSql('CREATE TABLE page (id INT NOT NULL, pagecategory_id INT DEFAULT NULL, user_id INT DEFAULT NULL, page_id INT DEFAULT NULL, name VARCHAR(100) NOT NULL, roworder INT NOT NULL, maxwidth INT NOT NULL, fonticon VARCHAR(255) DEFAULT NULL, url TEXT DEFAULT NULL, toreload BOOLEAN DEFAULT NULL, html TEXT DEFAULT NULL, template TEXT DEFAULT NULL, parentfor VARCHAR(255) DEFAULT NULL, roles TEXT DEFAULT NULL, PRIMARY KEY(id))');
|
|
||||||
$this->addSql('CREATE INDEX IDX_140AB6207AED5C04 ON page (pagecategory_id)');
|
|
||||||
$this->addSql('CREATE INDEX IDX_140AB620A76ED395 ON page (user_id)');
|
|
||||||
$this->addSql('CREATE INDEX IDX_140AB620C4663E4 ON page (page_id)');
|
|
||||||
$this->addSql('COMMENT ON COLUMN page.template IS \'(DC2Type:array)\'');
|
|
||||||
$this->addSql('COMMENT ON COLUMN page.roles IS \'(DC2Type:array)\'');
|
|
||||||
$this->addSql('CREATE TABLE pagegroupe (page INT NOT NULL, groupe INT NOT NULL, PRIMARY KEY(page, groupe))');
|
|
||||||
$this->addSql('CREATE INDEX IDX_E8009F6B140AB620 ON pagegroupe (page)');
|
|
||||||
$this->addSql('CREATE INDEX IDX_E8009F6B4B98C21 ON pagegroupe (groupe)');
|
|
||||||
$this->addSql('CREATE TABLE pagecategory (id INT NOT NULL, name VARCHAR(100) NOT NULL, PRIMARY KEY(id))');
|
|
||||||
$this->addSql('CREATE TABLE pagewidget (id INT NOT NULL, page_id INT DEFAULT NULL, widget_id INT DEFAULT NULL, icon_id INT DEFAULT NULL, name VARCHAR(100) NOT NULL, loc VARCHAR(255) NOT NULL, roworder INT NOT NULL, height INT NOT NULL, autoajust BOOLEAN DEFAULT false NOT NULL, border BOOLEAN DEFAULT true NOT NULL, opened BOOLEAN DEFAULT true NOT NULL, viewheader BOOLEAN DEFAULT true NOT NULL, colorheaderback VARCHAR(255) DEFAULT NULL, colorheaderfont VARCHAR(255) DEFAULT NULL, colorbodyback VARCHAR(255) DEFAULT NULL, colorbodyfont VARCHAR(255) DEFAULT NULL, parameter TEXT DEFAULT NULL, PRIMARY KEY(id))');
|
|
||||||
$this->addSql('CREATE INDEX IDX_69400D9AC4663E4 ON pagewidget (page_id)');
|
|
||||||
$this->addSql('CREATE INDEX IDX_69400D9AFBE885E2 ON pagewidget (widget_id)');
|
|
||||||
$this->addSql('CREATE INDEX IDX_69400D9A54B9D732 ON pagewidget (icon_id)');
|
|
||||||
$this->addSql('COMMENT ON COLUMN pagewidget.parameter IS \'(DC2Type:array)\'');
|
|
||||||
$this->addSql('CREATE TABLE pagewidgetslide (id INT NOT NULL, pagewidget_id INT DEFAULT NULL, title VARCHAR(100) DEFAULT NULL, subtitle VARCHAR(250) DEFAULT NULL, url VARCHAR(500) DEFAULT NULL, target VARCHAR(32) NOT NULL, roworder INT DEFAULT NULL, image VARCHAR(100) DEFAULT NULL, PRIMARY KEY(id))');
|
|
||||||
$this->addSql('CREATE INDEX IDX_DF96542055B7C7A2 ON pagewidgetslide (pagewidget_id)');
|
|
||||||
$this->addSql('CREATE TABLE registration (id INT NOT NULL, niveau01_id INT NOT NULL, niveau02_id INT DEFAULT NULL, niveau03_id INT DEFAULT NULL, niveau04_id INT DEFAULT NULL, username VARCHAR(128) NOT NULL, firstname VARCHAR(250) DEFAULT NULL, lastname VARCHAR(250) DEFAULT NULL, password VARCHAR(250) NOT NULL, salt VARCHAR(250) NOT NULL, email VARCHAR(128) NOT NULL, isvisible BOOLEAN NOT NULL, postaladress VARCHAR(250) DEFAULT NULL, telephonenumber VARCHAR(60) DEFAULT NULL, job VARCHAR(250) DEFAULT NULL, position VARCHAR(250) DEFAULT NULL, motivation TEXT DEFAULT NULL, note TEXT DEFAULT NULL, keyexpire TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, keyvalue VARCHAR(60) DEFAULT NULL, statut INT NOT NULL, PRIMARY KEY(id))');
|
|
||||||
$this->addSql('CREATE UNIQUE INDEX UNIQ_62A8A7A7F85E0677 ON registration (username)');
|
|
||||||
$this->addSql('CREATE UNIQUE INDEX UNIQ_62A8A7A7E7927C74 ON registration (email)');
|
|
||||||
$this->addSql('CREATE INDEX IDX_62A8A7A759FDD7AB ON registration (niveau01_id)');
|
|
||||||
$this->addSql('CREATE INDEX IDX_62A8A7A74B487845 ON registration (niveau02_id)');
|
|
||||||
$this->addSql('CREATE INDEX IDX_62A8A7A7F3F41F20 ON registration (niveau03_id)');
|
|
||||||
$this->addSql('CREATE INDEX IDX_62A8A7A76E232799 ON registration (niveau04_id)');
|
|
||||||
$this->addSql('CREATE TABLE useraccount (id INT NOT NULL, niveau01_id INT NOT NULL, niveau02_id INT DEFAULT NULL, niveau03_id INT DEFAULT NULL, niveau04_id INT DEFAULT NULL, username VARCHAR(128) NOT NULL, apikey VARCHAR(255) NOT NULL, firstname VARCHAR(250) DEFAULT NULL, lastname VARCHAR(250) DEFAULT NULL, roles TEXT NOT NULL, password VARCHAR(250) NOT NULL, salt VARCHAR(250) NOT NULL, isactive BOOLEAN NOT NULL, email VARCHAR(128) NOT NULL, avatar VARCHAR(250) DEFAULT \'0\', isvisible BOOLEAN NOT NULL, postaladress TEXT DEFAULT NULL, telephonenumber VARCHAR(60) DEFAULT NULL, job VARCHAR(250) DEFAULT NULL, position VARCHAR(250) DEFAULT NULL, motivation TEXT DEFAULT NULL, note TEXT DEFAULT NULL, preference TEXT DEFAULT NULL, keyexpire TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, keyvalue VARCHAR(60) DEFAULT NULL, visitedate TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, visitecpt INT DEFAULT NULL, PRIMARY KEY(id))');
|
|
||||||
$this->addSql('CREATE UNIQUE INDEX UNIQ_E157AA1AF85E0677 ON useraccount (username)');
|
|
||||||
$this->addSql('CREATE UNIQUE INDEX UNIQ_E157AA1AE7927C74 ON useraccount (email)');
|
|
||||||
$this->addSql('CREATE INDEX IDX_E157AA1A59FDD7AB ON useraccount (niveau01_id)');
|
|
||||||
$this->addSql('CREATE INDEX IDX_E157AA1A4B487845 ON useraccount (niveau02_id)');
|
|
||||||
$this->addSql('CREATE INDEX IDX_E157AA1AF3F41F20 ON useraccount (niveau03_id)');
|
|
||||||
$this->addSql('CREATE INDEX IDX_E157AA1A6E232799 ON useraccount (niveau04_id)');
|
|
||||||
$this->addSql('COMMENT ON COLUMN useraccount.roles IS \'(DC2Type:array)\'');
|
|
||||||
$this->addSql('COMMENT ON COLUMN useraccount.preference IS \'(DC2Type:array)\'');
|
|
||||||
$this->addSql('CREATE TABLE usergroupe (id INT NOT NULL, user_id INT DEFAULT NULL, group_id INT DEFAULT NULL, rolegroup INT NOT NULL, apikey VARCHAR(60) NOT NULL, visitedate TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, visitecpt INT DEFAULT NULL, PRIMARY KEY(id))');
|
|
||||||
$this->addSql('CREATE INDEX IDX_6C439BE5A76ED395 ON usergroupe (user_id)');
|
|
||||||
$this->addSql('CREATE INDEX IDX_6C439BE5FE54D947 ON usergroupe (group_id)');
|
|
||||||
$this->addSql('CREATE UNIQUE INDEX UNIQ_6C439BE5A76ED395FE54D947 ON usergroupe (user_id, group_id)');
|
|
||||||
$this->addSql('CREATE TABLE usermodo (id INT NOT NULL, user_id INT NOT NULL, niveau01_id INT NOT NULL, PRIMARY KEY(id))');
|
|
||||||
$this->addSql('CREATE INDEX IDX_D162D6C4A76ED395 ON usermodo (user_id)');
|
|
||||||
$this->addSql('CREATE INDEX IDX_D162D6C459FDD7AB ON usermodo (niveau01_id)');
|
|
||||||
$this->addSql('CREATE TABLE whitelist (id INT NOT NULL, label VARCHAR(250) NOT NULL, PRIMARY KEY(id))');
|
|
||||||
$this->addSql('CREATE UNIQUE INDEX UNIQ_CB069864EA750E8 ON whitelist (label)');
|
|
||||||
$this->addSql('CREATE TABLE widget (id INT NOT NULL, icon_id INT DEFAULT NULL, roworder INT NOT NULL, name VARCHAR(100) NOT NULL, description TEXT DEFAULT NULL, routeview VARCHAR(255) NOT NULL, height INT NOT NULL, autoajust BOOLEAN DEFAULT false NOT NULL, border BOOLEAN DEFAULT true NOT NULL, opened BOOLEAN DEFAULT true NOT NULL, viewheader BOOLEAN DEFAULT true NOT NULL, colorheaderback VARCHAR(255) DEFAULT NULL, colorheaderfont VARCHAR(255) DEFAULT NULL, colorbodyback VARCHAR(255) DEFAULT NULL, colorbodyfont VARCHAR(255) DEFAULT NULL, access TEXT DEFAULT NULL, parameter TEXT DEFAULT NULL, PRIMARY KEY(id))');
|
|
||||||
$this->addSql('CREATE INDEX IDX_85F91ED054B9D732 ON widget (icon_id)');
|
|
||||||
$this->addSql('COMMENT ON COLUMN widget.access IS \'(DC2Type:array)\'');
|
|
||||||
$this->addSql('COMMENT ON COLUMN widget.parameter IS \'(DC2Type:array)\'');
|
|
||||||
$this->addSql('CREATE TABLE messenger_messages (id BIGSERIAL NOT NULL, body TEXT NOT NULL, headers TEXT NOT NULL, queue_name VARCHAR(190) NOT NULL, created_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, available_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, delivered_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, PRIMARY KEY(id))');
|
|
||||||
$this->addSql('CREATE INDEX IDX_75EA56E0FB7336F0 ON messenger_messages (queue_name)');
|
|
||||||
$this->addSql('CREATE INDEX IDX_75EA56E0E3BD61CE ON messenger_messages (available_at)');
|
|
||||||
$this->addSql('CREATE INDEX IDX_75EA56E016BA31DB ON messenger_messages (delivered_at)');
|
|
||||||
$this->addSql('CREATE OR REPLACE FUNCTION notify_messenger_messages() RETURNS TRIGGER AS $$
|
|
||||||
BEGIN
|
|
||||||
PERFORM pg_notify(\'messenger_messages\', NEW.queue_name::text);
|
|
||||||
RETURN NEW;
|
|
||||||
END;
|
|
||||||
$$ LANGUAGE plpgsql;');
|
|
||||||
$this->addSql('DROP TRIGGER IF EXISTS notify_trigger ON messenger_messages;');
|
|
||||||
$this->addSql('CREATE TRIGGER notify_trigger AFTER INSERT OR UPDATE ON messenger_messages FOR EACH ROW EXECUTE PROCEDURE notify_messenger_messages();');
|
|
||||||
$this->addSql('ALTER TABLE alert ADD CONSTRAINT FK_17FD46C164C19C1 FOREIGN KEY (category) REFERENCES alertcategory (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE');
|
|
||||||
$this->addSql('ALTER TABLE alertgroupe ADD CONSTRAINT FK_64DB975617FD46C1 FOREIGN KEY (alert) REFERENCES alert (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
|
||||||
$this->addSql('ALTER TABLE alertgroupe ADD CONSTRAINT FK_64DB97564B98C21 FOREIGN KEY (groupe) REFERENCES groupe (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
|
||||||
$this->addSql('ALTER TABLE alertuserread ADD CONSTRAINT FK_D4317FA917FD46C1 FOREIGN KEY (alert) REFERENCES alert (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
|
||||||
$this->addSql('ALTER TABLE alertuserread ADD CONSTRAINT FK_D4317FA9E157AA1A FOREIGN KEY (useraccount) REFERENCES useraccount (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
|
||||||
$this->addSql('ALTER TABLE alertcategory ADD CONSTRAINT FK_EC575F7E54B9D732 FOREIGN KEY (icon_id) REFERENCES icon (id) ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE');
|
|
||||||
$this->addSql('ALTER TABLE bookmark ADD CONSTRAINT FK_DA62921D54B9D732 FOREIGN KEY (icon_id) REFERENCES icon (id) ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE');
|
|
||||||
$this->addSql('ALTER TABLE bookmark ADD CONSTRAINT FK_DA62921DA76ED395 FOREIGN KEY (user_id) REFERENCES useraccount (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
|
||||||
$this->addSql('ALTER TABLE bookmark ADD CONSTRAINT FK_DA62921D55B7C7A2 FOREIGN KEY (pagewidget_id) REFERENCES pagewidget (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
|
||||||
$this->addSql('ALTER TABLE bookmark ADD CONSTRAINT FK_DA62921D126F525E FOREIGN KEY (item_id) REFERENCES item (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
|
||||||
$this->addSql('ALTER TABLE groupe ADD CONSTRAINT FK_4B98C217E3C61F9 FOREIGN KEY (owner_id) REFERENCES useraccount (id) ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE');
|
|
||||||
$this->addSql('ALTER TABLE groupe ADD CONSTRAINT FK_4B98C216D71CE5E FOREIGN KEY (pagetemplate_id) REFERENCES page (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
|
||||||
$this->addSql('ALTER TABLE icon ADD CONSTRAINT FK_659429DBA76ED395 FOREIGN KEY (user_id) REFERENCES useraccount (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
|
||||||
$this->addSql('ALTER TABLE item ADD CONSTRAINT FK_1F1B251E54B9D732 FOREIGN KEY (icon_id) REFERENCES icon (id) ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE');
|
|
||||||
$this->addSql('ALTER TABLE item ADD CONSTRAINT FK_1F1B251E64C19C1 FOREIGN KEY (category) REFERENCES itemcategory (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE');
|
|
||||||
$this->addSql('ALTER TABLE itemgroupe ADD CONSTRAINT FK_A4267B6D1F1B251E FOREIGN KEY (item) REFERENCES item (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
|
||||||
$this->addSql('ALTER TABLE itemgroupe ADD CONSTRAINT FK_A4267B6D4B98C21 FOREIGN KEY (groupe) REFERENCES groupe (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
|
||||||
$this->addSql('ALTER TABLE itemcategory ADD CONSTRAINT FK_7959DEE854B9D732 FOREIGN KEY (icon_id) REFERENCES icon (id) ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE');
|
|
||||||
$this->addSql('ALTER TABLE niveau02 ADD CONSTRAINT FK_F4F52F9959FDD7AB FOREIGN KEY (niveau01_id) REFERENCES niveau01 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
|
||||||
$this->addSql('ALTER TABLE niveau03 ADD CONSTRAINT FK_83F21F0F4B487845 FOREIGN KEY (niveau02_id) REFERENCES niveau02 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
|
||||||
$this->addSql('ALTER TABLE niveau04 ADD CONSTRAINT FK_1D968AACF3F41F20 FOREIGN KEY (niveau03_id) REFERENCES niveau03 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
|
||||||
$this->addSql('ALTER TABLE page ADD CONSTRAINT FK_140AB6207AED5C04 FOREIGN KEY (pagecategory_id) REFERENCES pagecategory (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
|
||||||
$this->addSql('ALTER TABLE page ADD CONSTRAINT FK_140AB620A76ED395 FOREIGN KEY (user_id) REFERENCES useraccount (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
|
||||||
$this->addSql('ALTER TABLE page ADD CONSTRAINT FK_140AB620C4663E4 FOREIGN KEY (page_id) REFERENCES page (id) ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE');
|
|
||||||
$this->addSql('ALTER TABLE pagegroupe ADD CONSTRAINT FK_E8009F6B140AB620 FOREIGN KEY (page) REFERENCES page (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
|
||||||
$this->addSql('ALTER TABLE pagegroupe ADD CONSTRAINT FK_E8009F6B4B98C21 FOREIGN KEY (groupe) REFERENCES groupe (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
|
||||||
$this->addSql('ALTER TABLE pagewidget ADD CONSTRAINT FK_69400D9AC4663E4 FOREIGN KEY (page_id) REFERENCES page (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
|
||||||
$this->addSql('ALTER TABLE pagewidget ADD CONSTRAINT FK_69400D9AFBE885E2 FOREIGN KEY (widget_id) REFERENCES widget (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
|
||||||
$this->addSql('ALTER TABLE pagewidget ADD CONSTRAINT FK_69400D9A54B9D732 FOREIGN KEY (icon_id) REFERENCES icon (id) ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE');
|
|
||||||
$this->addSql('ALTER TABLE pagewidgetslide ADD CONSTRAINT FK_DF96542055B7C7A2 FOREIGN KEY (pagewidget_id) REFERENCES pagewidget (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
|
||||||
$this->addSql('ALTER TABLE registration ADD CONSTRAINT FK_62A8A7A759FDD7AB FOREIGN KEY (niveau01_id) REFERENCES niveau01 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
|
||||||
$this->addSql('ALTER TABLE registration ADD CONSTRAINT FK_62A8A7A74B487845 FOREIGN KEY (niveau02_id) REFERENCES niveau02 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
|
||||||
$this->addSql('ALTER TABLE registration ADD CONSTRAINT FK_62A8A7A7F3F41F20 FOREIGN KEY (niveau03_id) REFERENCES niveau03 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
|
||||||
$this->addSql('ALTER TABLE registration ADD CONSTRAINT FK_62A8A7A76E232799 FOREIGN KEY (niveau04_id) REFERENCES niveau04 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
|
||||||
$this->addSql('ALTER TABLE useraccount ADD CONSTRAINT FK_E157AA1A59FDD7AB FOREIGN KEY (niveau01_id) REFERENCES niveau01 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
|
||||||
$this->addSql('ALTER TABLE useraccount ADD CONSTRAINT FK_E157AA1A4B487845 FOREIGN KEY (niveau02_id) REFERENCES niveau02 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
|
||||||
$this->addSql('ALTER TABLE useraccount ADD CONSTRAINT FK_E157AA1AF3F41F20 FOREIGN KEY (niveau03_id) REFERENCES niveau03 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
|
||||||
$this->addSql('ALTER TABLE useraccount ADD CONSTRAINT FK_E157AA1A6E232799 FOREIGN KEY (niveau04_id) REFERENCES niveau04 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
|
||||||
$this->addSql('ALTER TABLE usergroupe ADD CONSTRAINT FK_6C439BE5A76ED395 FOREIGN KEY (user_id) REFERENCES useraccount (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
|
||||||
$this->addSql('ALTER TABLE usergroupe ADD CONSTRAINT FK_6C439BE5FE54D947 FOREIGN KEY (group_id) REFERENCES groupe (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
|
||||||
$this->addSql('ALTER TABLE usermodo ADD CONSTRAINT FK_D162D6C4A76ED395 FOREIGN KEY (user_id) REFERENCES useraccount (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
|
||||||
$this->addSql('ALTER TABLE usermodo ADD CONSTRAINT FK_D162D6C459FDD7AB FOREIGN KEY (niveau01_id) REFERENCES niveau01 (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
|
|
||||||
$this->addSql('ALTER TABLE widget ADD CONSTRAINT FK_85F91ED054B9D732 FOREIGN KEY (icon_id) REFERENCES icon (id) ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function down(Schema $schema): void
|
|
||||||
{
|
|
||||||
// this down() migration is auto-generated, please modify it to your needs
|
|
||||||
$this->addSql('CREATE SCHEMA public');
|
|
||||||
$this->addSql('DROP SEQUENCE alert_id_seq CASCADE');
|
|
||||||
$this->addSql('DROP SEQUENCE alertcategory_id_seq CASCADE');
|
|
||||||
$this->addSql('DROP SEQUENCE audit_id_seq CASCADE');
|
|
||||||
$this->addSql('DROP SEQUENCE bookmark_id_seq CASCADE');
|
|
||||||
$this->addSql('DROP SEQUENCE cron_id_seq CASCADE');
|
|
||||||
$this->addSql('DROP SEQUENCE groupe_id_seq CASCADE');
|
|
||||||
$this->addSql('DROP SEQUENCE icon_id_seq CASCADE');
|
|
||||||
$this->addSql('DROP SEQUENCE item_id_seq CASCADE');
|
|
||||||
$this->addSql('DROP SEQUENCE itemcategory_id_seq CASCADE');
|
|
||||||
$this->addSql('DROP SEQUENCE niveau01_id_seq CASCADE');
|
|
||||||
$this->addSql('DROP SEQUENCE niveau02_id_seq CASCADE');
|
|
||||||
$this->addSql('DROP SEQUENCE niveau03_id_seq CASCADE');
|
|
||||||
$this->addSql('DROP SEQUENCE niveau04_id_seq CASCADE');
|
|
||||||
$this->addSql('DROP SEQUENCE page_id_seq CASCADE');
|
|
||||||
$this->addSql('DROP SEQUENCE pagecategory_id_seq CASCADE');
|
|
||||||
$this->addSql('DROP SEQUENCE pagewidget_id_seq CASCADE');
|
|
||||||
$this->addSql('DROP SEQUENCE pagewidgetslide_id_seq CASCADE');
|
|
||||||
$this->addSql('DROP SEQUENCE registration_id_seq CASCADE');
|
|
||||||
$this->addSql('DROP SEQUENCE useraccount_id_seq CASCADE');
|
|
||||||
$this->addSql('DROP SEQUENCE usergroupe_id_seq CASCADE');
|
|
||||||
$this->addSql('DROP SEQUENCE usermodo_id_seq CASCADE');
|
|
||||||
$this->addSql('DROP SEQUENCE whitelist_id_seq CASCADE');
|
|
||||||
$this->addSql('DROP SEQUENCE widget_id_seq CASCADE');
|
|
||||||
$this->addSql('ALTER TABLE alert DROP CONSTRAINT FK_17FD46C164C19C1');
|
|
||||||
$this->addSql('ALTER TABLE alertgroupe DROP CONSTRAINT FK_64DB975617FD46C1');
|
|
||||||
$this->addSql('ALTER TABLE alertgroupe DROP CONSTRAINT FK_64DB97564B98C21');
|
|
||||||
$this->addSql('ALTER TABLE alertuserread DROP CONSTRAINT FK_D4317FA917FD46C1');
|
|
||||||
$this->addSql('ALTER TABLE alertuserread DROP CONSTRAINT FK_D4317FA9E157AA1A');
|
|
||||||
$this->addSql('ALTER TABLE alertcategory DROP CONSTRAINT FK_EC575F7E54B9D732');
|
|
||||||
$this->addSql('ALTER TABLE bookmark DROP CONSTRAINT FK_DA62921D54B9D732');
|
|
||||||
$this->addSql('ALTER TABLE bookmark DROP CONSTRAINT FK_DA62921DA76ED395');
|
|
||||||
$this->addSql('ALTER TABLE bookmark DROP CONSTRAINT FK_DA62921D55B7C7A2');
|
|
||||||
$this->addSql('ALTER TABLE bookmark DROP CONSTRAINT FK_DA62921D126F525E');
|
|
||||||
$this->addSql('ALTER TABLE groupe DROP CONSTRAINT FK_4B98C217E3C61F9');
|
|
||||||
$this->addSql('ALTER TABLE groupe DROP CONSTRAINT FK_4B98C216D71CE5E');
|
|
||||||
$this->addSql('ALTER TABLE icon DROP CONSTRAINT FK_659429DBA76ED395');
|
|
||||||
$this->addSql('ALTER TABLE item DROP CONSTRAINT FK_1F1B251E54B9D732');
|
|
||||||
$this->addSql('ALTER TABLE item DROP CONSTRAINT FK_1F1B251E64C19C1');
|
|
||||||
$this->addSql('ALTER TABLE itemgroupe DROP CONSTRAINT FK_A4267B6D1F1B251E');
|
|
||||||
$this->addSql('ALTER TABLE itemgroupe DROP CONSTRAINT FK_A4267B6D4B98C21');
|
|
||||||
$this->addSql('ALTER TABLE itemcategory DROP CONSTRAINT FK_7959DEE854B9D732');
|
|
||||||
$this->addSql('ALTER TABLE niveau02 DROP CONSTRAINT FK_F4F52F9959FDD7AB');
|
|
||||||
$this->addSql('ALTER TABLE niveau03 DROP CONSTRAINT FK_83F21F0F4B487845');
|
|
||||||
$this->addSql('ALTER TABLE niveau04 DROP CONSTRAINT FK_1D968AACF3F41F20');
|
|
||||||
$this->addSql('ALTER TABLE page DROP CONSTRAINT FK_140AB6207AED5C04');
|
|
||||||
$this->addSql('ALTER TABLE page DROP CONSTRAINT FK_140AB620A76ED395');
|
|
||||||
$this->addSql('ALTER TABLE page DROP CONSTRAINT FK_140AB620C4663E4');
|
|
||||||
$this->addSql('ALTER TABLE pagegroupe DROP CONSTRAINT FK_E8009F6B140AB620');
|
|
||||||
$this->addSql('ALTER TABLE pagegroupe DROP CONSTRAINT FK_E8009F6B4B98C21');
|
|
||||||
$this->addSql('ALTER TABLE pagewidget DROP CONSTRAINT FK_69400D9AC4663E4');
|
|
||||||
$this->addSql('ALTER TABLE pagewidget DROP CONSTRAINT FK_69400D9AFBE885E2');
|
|
||||||
$this->addSql('ALTER TABLE pagewidget DROP CONSTRAINT FK_69400D9A54B9D732');
|
|
||||||
$this->addSql('ALTER TABLE pagewidgetslide DROP CONSTRAINT FK_DF96542055B7C7A2');
|
|
||||||
$this->addSql('ALTER TABLE registration DROP CONSTRAINT FK_62A8A7A759FDD7AB');
|
|
||||||
$this->addSql('ALTER TABLE registration DROP CONSTRAINT FK_62A8A7A74B487845');
|
|
||||||
$this->addSql('ALTER TABLE registration DROP CONSTRAINT FK_62A8A7A7F3F41F20');
|
|
||||||
$this->addSql('ALTER TABLE registration DROP CONSTRAINT FK_62A8A7A76E232799');
|
|
||||||
$this->addSql('ALTER TABLE useraccount DROP CONSTRAINT FK_E157AA1A59FDD7AB');
|
|
||||||
$this->addSql('ALTER TABLE useraccount DROP CONSTRAINT FK_E157AA1A4B487845');
|
|
||||||
$this->addSql('ALTER TABLE useraccount DROP CONSTRAINT FK_E157AA1AF3F41F20');
|
|
||||||
$this->addSql('ALTER TABLE useraccount DROP CONSTRAINT FK_E157AA1A6E232799');
|
|
||||||
$this->addSql('ALTER TABLE usergroupe DROP CONSTRAINT FK_6C439BE5A76ED395');
|
|
||||||
$this->addSql('ALTER TABLE usergroupe DROP CONSTRAINT FK_6C439BE5FE54D947');
|
|
||||||
$this->addSql('ALTER TABLE usermodo DROP CONSTRAINT FK_D162D6C4A76ED395');
|
|
||||||
$this->addSql('ALTER TABLE usermodo DROP CONSTRAINT FK_D162D6C459FDD7AB');
|
|
||||||
$this->addSql('ALTER TABLE widget DROP CONSTRAINT FK_85F91ED054B9D732');
|
|
||||||
$this->addSql('DROP TABLE alert');
|
|
||||||
$this->addSql('DROP TABLE alertgroupe');
|
|
||||||
$this->addSql('DROP TABLE alertuserread');
|
|
||||||
$this->addSql('DROP TABLE alertcategory');
|
|
||||||
$this->addSql('DROP TABLE audit');
|
|
||||||
$this->addSql('DROP TABLE bookmark');
|
|
||||||
$this->addSql('DROP TABLE config');
|
|
||||||
$this->addSql('DROP TABLE cron');
|
|
||||||
$this->addSql('DROP TABLE groupe');
|
|
||||||
$this->addSql('DROP TABLE icon');
|
|
||||||
$this->addSql('DROP TABLE item');
|
|
||||||
$this->addSql('DROP TABLE itemgroupe');
|
|
||||||
$this->addSql('DROP TABLE itemcategory');
|
|
||||||
$this->addSql('DROP TABLE niveau01');
|
|
||||||
$this->addSql('DROP TABLE niveau02');
|
|
||||||
$this->addSql('DROP TABLE niveau03');
|
|
||||||
$this->addSql('DROP TABLE niveau04');
|
|
||||||
$this->addSql('DROP TABLE page');
|
|
||||||
$this->addSql('DROP TABLE pagegroupe');
|
|
||||||
$this->addSql('DROP TABLE pagecategory');
|
|
||||||
$this->addSql('DROP TABLE pagewidget');
|
|
||||||
$this->addSql('DROP TABLE pagewidgetslide');
|
|
||||||
$this->addSql('DROP TABLE registration');
|
|
||||||
$this->addSql('DROP TABLE useraccount');
|
|
||||||
$this->addSql('DROP TABLE usergroupe');
|
|
||||||
$this->addSql('DROP TABLE usermodo');
|
|
||||||
$this->addSql('DROP TABLE whitelist');
|
|
||||||
$this->addSql('DROP TABLE widget');
|
|
||||||
$this->addSql('DROP TABLE messenger_messages');
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,17 +0,0 @@
|
|||||||
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
|
|
@ -1,19 +0,0 @@
|
|||||||
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>
|
|
@ -1,17 +0,0 @@
|
|||||||
#!/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 $@
|
|
42
package.json
@ -1,42 +0,0 @@
|
|||||||
{
|
|
||||||
"devDependencies": {
|
|
||||||
"@commitlint/config-conventional": "^17.1.0",
|
|
||||||
"@hotwired/stimulus": "^3.0.0",
|
|
||||||
"@symfony/stimulus-bridge": "^3.0.0",
|
|
||||||
"@symfony/webpack-encore": "^2.0.0",
|
|
||||||
"commitlint": "^17.1.2",
|
|
||||||
"core-js": "^3.0.0",
|
|
||||||
"regenerator-runtime": "^0.13.2",
|
|
||||||
"webpack-notifier": "^1.6.0"
|
|
||||||
},
|
|
||||||
"license": "UNLICENSED",
|
|
||||||
"private": true,
|
|
||||||
"scripts": {
|
|
||||||
"dev-server": "encore dev-server",
|
|
||||||
"dev": "encore dev",
|
|
||||||
"watch": "encore dev --watch",
|
|
||||||
"build": "encore production --progress"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"@fortawesome/fontawesome-free": "^6.1.1",
|
|
||||||
"@popperjs/core": "^2.11.5",
|
|
||||||
"@ttskch/select2-bootstrap4-theme": "^1.5.2",
|
|
||||||
"bootstrap": "^5.1.3",
|
|
||||||
"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",
|
|
||||||
"imagesloaded": "^5.0.0",
|
|
||||||
"jquery": "^3.6.0",
|
|
||||||
"jquery-ui": "^1.13.1",
|
|
||||||
"jqueryui": "^1.11.1",
|
|
||||||
"masonry-layout": "^4.2.2",
|
|
||||||
"select2": "^4.1.0-rc.0",
|
|
||||||
"slick-carousel": "^1.8.1",
|
|
||||||
"spectrum-colorpicker2": "^2.0.9",
|
|
||||||
"yarn": "^1.22.19"
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,8 +0,0 @@
|
|||||||
parameters:
|
|
||||||
level: 6
|
|
||||||
paths:
|
|
||||||
- bin/
|
|
||||||
- config/
|
|
||||||
- public/
|
|
||||||
- src/
|
|
||||||
- tests/
|
|
@ -1,56 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
|
|
||||||
<!-- https://phpunit.readthedocs.io/en/latest/configuration.html -->
|
|
||||||
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd"
|
|
||||||
backupGlobals="false"
|
|
||||||
colors="true"
|
|
||||||
bootstrap="tests/bootstrap.php"
|
|
||||||
convertDeprecationsToExceptions="false"
|
|
||||||
>
|
|
||||||
<php>
|
|
||||||
<ini name="display_errors" value="1" />
|
|
||||||
<ini name="error_reporting" value="-1" />
|
|
||||||
<server name="APP_ENV" value="test" force="true" />
|
|
||||||
<server name="SHELL_VERBOSITY" value="-1" />
|
|
||||||
<server name="SYMFONY_PHPUNIT_REMOVE" value="" />
|
|
||||||
<server name="SYMFONY_PHPUNIT_VERSION" value="9.5" />
|
|
||||||
|
|
||||||
<!-- ###+ symfony/framework-bundle ### -->
|
|
||||||
<env name="APP_ENV" value="dev"/>
|
|
||||||
<env name="APP_SECRET" value="67a28b146778daeab1af223e0a901349"/>
|
|
||||||
<!-- ###- symfony/framework-bundle ### -->
|
|
||||||
|
|
||||||
<!-- ###+ doctrine/doctrine-bundle ### -->
|
|
||||||
<!-- Format described at https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url -->
|
|
||||||
<!-- IMPORTANT: You MUST configure your server version, either here or in config/packages/doctrine.yaml -->
|
|
||||||
<!-- -->
|
|
||||||
<!-- DATABASE_URL="sqlite:///%kernel.project_dir%/var/data.db" -->
|
|
||||||
<!-- DATABASE_URL="mysql://db_user:db_password@127.0.0.1:3306/db_name?serverVersion=5.7&charset=utf8mb4" -->
|
|
||||||
<env name="DATABASE_URL" value="postgresql://symfony:ChangeMe@127.0.0.1:5432/app?serverVersion=13&charset=utf8"/>
|
|
||||||
<!-- ###- doctrine/doctrine-bundle ### -->
|
|
||||||
</php>
|
|
||||||
|
|
||||||
<testsuites>
|
|
||||||
<testsuite name="Project Test Suite">
|
|
||||||
<directory>tests</directory>
|
|
||||||
</testsuite>
|
|
||||||
</testsuites>
|
|
||||||
|
|
||||||
<coverage processUncoveredFiles="true">
|
|
||||||
<include>
|
|
||||||
<directory suffix=".php">src</directory>
|
|
||||||
</include>
|
|
||||||
</coverage>
|
|
||||||
|
|
||||||
<listeners>
|
|
||||||
<listener class="Symfony\Bridge\PhpUnit\SymfonyTestsListener" />
|
|
||||||
</listeners>
|
|
||||||
|
|
||||||
<!-- Run `composer require symfony/panther` before enabling this extension -->
|
|
||||||
<!--
|
|
||||||
<extensions>
|
|
||||||
<extension class="Symfony\Component\Panther\ServerExtension" />
|
|
||||||
</extensions>
|
|
||||||
-->
|
|
||||||
</phpunit>
|
|
2
postservice/90-nineskeletor
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
CreoleRun "/var/www/html/nineskeletor/scripts/reconfigure.sh" web
|
3
pretemplate/25-nineskeletor
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
CreoleRun "/var/www/html/nineskeletor/scripts/genkey.sh" web
|
||||||
|
exit 0
|
@ -1,9 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
use App\Kernel;
|
|
||||||
|
|
||||||
require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
|
|
||||||
|
|
||||||
return function (array $context) {
|
|
||||||
return new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']);
|
|
||||||
};
|
|
Before Width: | Height: | Size: 936 B |
Before Width: | Height: | Size: 4.5 KiB |
Before Width: | Height: | Size: 81 KiB |
Before Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 7.9 KiB |
Before Width: | Height: | Size: 6.7 KiB |
Before Width: | Height: | Size: 5.8 KiB |
Before Width: | Height: | Size: 4.5 KiB |
Before Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 7.5 KiB |
Before Width: | Height: | Size: 7.5 KiB |
Before Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 3.4 KiB |