first commit symfony 6

This commit is contained in:
2022-07-21 16:15:47 +02:00
parent d9bfbb6b3c
commit 5c4961748b
282 changed files with 37482 additions and 0 deletions

24
config/bundles.php Normal file
View File

@ -0,0 +1,24 @@
<?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],
];

View File

@ -0,0 +1,19 @@
framework:
cache:
# Unique name of your app: used to compute stable namespaces for cache keys.
#prefix_seed: your_vendor_name/app_name
# The "app" cache stores to the filesystem by default.
# The data in this cache should persist between deploys.
# Other options include:
# Redis
#app: cache.adapter.redis
#default_redis_provider: redis://localhost
# APCu (not recommended with heavy random-write workloads as memory fragmentation can cause perf issues)
#app: cache.adapter.apcu
# Namespaced pools use the above "app" backend by default
#pools:
#my.dedicated.cache: null

View File

@ -0,0 +1,5 @@
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)%"

View File

@ -0,0 +1,42 @@
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

View File

@ -0,0 +1,6 @@
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%'

View File

@ -0,0 +1,37 @@
# 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' ]

View File

@ -0,0 +1,11 @@
# 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' }

View File

@ -0,0 +1,26 @@
# 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: null
name: '%env(APP_ALIAS)%'
gc_probability: null
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

View File

@ -0,0 +1,2 @@
framework:
lock: '%env(LOCK_DSN)%'

View File

@ -0,0 +1,3 @@
framework:
mailer:
dsn: '%env(MAILER_DSN)%'

View File

@ -0,0 +1,8 @@
mercure:
hubs:
default:
url: '%env(MERCURE_URL)%'
public_url: '%env(MERCURE_PUBLIC_URL)%'
jwt:
secret: '%env(MERCURE_JWT_SECRET)%'
publish: '*'

View File

@ -0,0 +1,24 @@
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

View File

@ -0,0 +1,61 @@
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

View File

@ -0,0 +1,9 @@
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

View File

@ -0,0 +1,16 @@
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 }

View File

@ -0,0 +1,17 @@
oneup_uploader:
mappings:
avatar:
frontend: dropzone
logo:
frontend: dropzone
header:
frontend: dropzone
niveau01:
frontend: dropzone
icon:
frontend: dropzone
file:
frontend: dropzone
namer: app.upload.samename
storage:
directory: "%kernel.project_dir%/uploads/file"

View File

@ -0,0 +1,12 @@
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

View File

@ -0,0 +1,50 @@
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
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: ^/user, roles: [ROLE_ADMIN, ROLE_MODO, ROLE_ANIM, ROLE_USER] }
- { path: ^/modo, roles: [ROLE_ADMIN, 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

View File

@ -0,0 +1,3 @@
sensio_framework_extra:
router:
annotations: false

View File

@ -0,0 +1,20 @@
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

View File

@ -0,0 +1,13 @@
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)%'

21
config/packages/twig.yaml Normal file
View File

@ -0,0 +1,21 @@
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%'
appNiveau02label: '%appNiveau02label%'
sondeUse: '%sondeUse%'
sondeUrl: '%sondeUrl%'
when@test:
twig:
strict_variables: true

View File

@ -0,0 +1,13 @@
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

View File

@ -0,0 +1,15 @@
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 }

View File

@ -0,0 +1,49 @@
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

5
config/preload.php Normal file
View File

@ -0,0 +1,5 @@
<?php
if (file_exists(dirname(__DIR__).'/var/cache/prod/App_KernelProdContainer.preload.php')) {
require dirname(__DIR__).'/var/cache/prod/App_KernelProdContainer.preload.php';
}

575
config/routes.yaml Normal file
View File

@ -0,0 +1,575 @@
#== Home ========================================================================================================
app_home:
path: /
controller: App\Controller\HomeController::home
app_user_home:
path: /user
controller: App\Controller\HomeController::homeuser
defaults: { access: admin }
app_admin_home:
path: /admin
controller: App\Controller\HomeController::homeadmin
defaults: { access: admin }
app_modo_home:
path: /modo
controller: App\Controller\HomeController::homemodo
defaults: { access: modo }
app_ckeditor_upload:
path: /user/upload
controller: App\Controller\HomeController::upload
defaults: { access: user }
oneup_uploader:
resource: .
type: uploader
#== Security ====================================================================================================
app_login:
path: /login
controller: App\Controller\SecurityController::login
app_loginldapcheck:
path: /loginldapcheck
controller: App\Controller\SecurityController::loginldapcheck
app_loginopenidcallback:
path: /loginopenidcallback
controller: App\Controller\SecurityController::loginopenidcallback
app_logout:
path: /logout
controller: App\Controller\SecurityController::logout
app_redirect:
path: /user/redirect/{route}/{id}
controller: App\Controller\SecurityController:Security::redirecturl
defaults: { access: user }
#== Websocket====================================================================================================
#-- Access user
app_publish:
path: /user/publish/{channel}/{id}
controller: App\Controller\PublishController::publish
defaults: { access: user }
#== Config ======================================================================================================
#-- Access admin
app_admin_config:
path: /admin/config
controller: App\Controller\ConfigController::list
defaults: { access: admin }
app_admin_config_render:
path: /admin/config/render/{category}
controller: App\Controller\ConfigController::listrender
defaults: { access: admin }
app_admin_config_submit:
path: /admin/config/submit
controller: App\Controller\ConfigController::submit
defaults: { access: admin }
app_admin_config_update:
path: /admin/config/update/{id}
controller: App\Controller\ConfigController::update
defaults: { access: admin }
app_admin_config_delete:
path: /admin/config/delete/{id}
controller: App\Controller\ConfigController::delete
defaults: { access: admin }
app_admin_config_logo:
path: /admin/config/logo
controller: App\Controller\ConfigController::logo
defaults: { access: admin }
#== API ==================================================================================================================
#-- Access visiteur
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 user
app_user_crop01:
path: /user/crop01/{type}/{reportinput}
controller: App\Controller\CropController::crop01
app_user_crop02:
path: /user/crop02/{type}/{reportinput}
controller: App\Controller\CropController::crop02
#== 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_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 visiteur
app_niveau02_selectlist:
path: /niveau02/selectlist
controller: App\Controller\Niveau02Controller::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_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_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 user
app_user_group:
path: /user/group
controller: App\Controller\GroupController::list
defaults: { access: user }
app_user_group_tablelist:
path: /user/group/tablelist
controller: App\Controller\GroupController::tablelist
defaults: { access: user }
app_user_group_submit:
path: /user/group/submit
controller: App\Controller\GroupController::submit
defaults: { access: user }
app_user_group_update:
path: /user/group/update/{id}
controller: App\Controller\GroupController::update
defaults: { access: user }
app_user_group_delete:
path: /user/group/delete/{id}
controller: App\Controller\GroupController::delete
defaults: { access: user }
app_user_group_users:
path: /user/group/users/{id}
controller: App\Controller\GroupController::users
defaults: { access: user }
app_user_group_usersnotin:
path: /user/group/usersnotin/{id}
controller: App\Controller\GroupController::usersnotin
defaults: { access: user }
app_user_group_usersin:
path: /user/group/usersin/{id}
controller: App\Controller\GroupController::usersin
defaults: { access: user }
app_user_group_usergroup_add:
path: /user/group/usergroup/add/{groupid}/{userid}
controller: App\Controller\GroupController::useradd
defaults: { access: user }
app_user_group_usergroup_del:
path: /user/group/usergroup/del/{groupid}/{userid}
controller: App\Controller\GroupController::userdel
defaults: { access: user }
app_user_group_usergroup_changerole:
path: /user/group/usergroup/changerole/{groupid}/{userid}/{roleid}
controller: App\Controller\GroupController::userchangerole
defaults: { access: user }
app_user_group_userout:
path: /user/group/userout/{id}
controller: App\Controller\GroupController::userout
defaults: { access: user }
#== 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 }
#-- Acces visiteur
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 visiteur
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 user
app_user_user:
path: /user/update
controller: App\Controller\UserController::profil
defaults: { access: user }
app_user_users:
path: /user/users
controller: App\Controller\UserController::list
defaults: { access: user }
app_user_user_tablelist:
path: /user/user/tablelist
controller: App\Controller\UserController::tablelist
defaults: { access: user }
app_user_user_selectlist:
path: /user/user/selectlist
controller: App\Controller\UserController::selectlist
defaults: { access: user }
app_user_view:
path: /user/view/{id}
controller: App\Controller\UserController::view
defaults: { access: user }
app_user_preference:
path: /user/preference
controller: App\Controller\UserController::preference
defaults: { access: user }

View File

@ -0,0 +1,4 @@
controllers:
resource: ../../src/Controller/RestController.php
type: annotation

View File

@ -0,0 +1,4 @@
when@dev:
_errors:
resource: '@FrameworkBundle/Resources/config/routing/errors.xml'
prefix: /_error

View File

@ -0,0 +1,7 @@
# Expose your documentation as JSON swagger compliant
app_swagger_ui:
path: /rest
methods: GET
defaults: { _controller: nelmio_api_doc.controller.swagger_ui }

View File

@ -0,0 +1,3 @@
oneup_uploader:
resource: .
type: uploader

View File

@ -0,0 +1,8 @@
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

201
config/services.yaml Normal file
View File

@ -0,0 +1,201 @@
parameters:
appEnv: '%env(resolve:APP_ENV)%'
appSecret: '%env(resolve:APP_SECRET)%'
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)%'
appMasterurl: '%env(resolve:APP_MASTERURL)%'
appMasterkey: '%env(resolve:APP_MASTERKEY)%'
appModeregistration: '%env(resolve:APP_MODEREGISTRATION)%'
appAdmins: '%env(json:APP_ADMINS)%'
appNiveau01label: '%env(resolve:APP_NIVEAU01LABEL)%'
appNiveau02label: '%env(resolve:APP_NIVEAU02LABEL)%'
appSynchro: '%env(resolve:APP_SYNCHRO)%'
appSynchroPurgeNiveau01: '%env(resolve:APP_SYNDCHROPURGENIVEAU01)%'
appSynchroPurgeNiveau02: '%env(resolve:APP_SYNDCHROPURGENIVEAU02)%'
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)%'
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)%'
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)%'
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)%'
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)%'
sondeUse: '%env(resolve:SONDE_USE)%'
sondeUrl: '%env(resolve:SONDE_URL)%'
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']
App\EventListener\AllSubscriber:
public: true
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\LdapService:
public: true
arguments: ["@service_container"]
App\Service\MailService:
public: true
arguments: ["@mailer", "@twig"]
App\Service\ApiService:
public: true
App\Controller\RestController:
public: true