]> Raphaël G. Git Repositories - airbundle/blobdiff - Resources/config/packages/rapsys_air.yaml
Adapt template to new context tree
[airbundle] / Resources / config / packages / rapsys_air.yaml
index 9b0ada5f37a15497f623557e4e14181ddc306dca..8b28a5ef7d60a8485c80f4399573774d14045b14 100644 (file)
@@ -4,22 +4,28 @@ rapsys_air:
     contact:
         name: 'Raphaël Gertz'
         mail: 'airlibre@rapsys.eu'
-    #Copyright
-    copy:
-        long: 'Raphaël Gertz all rights reserved'
-        short: 'Copyright 2019'
 
 #RapsysUser configuration
 rapsys_user:
     #Class replacement
     class:
         group: 'Rapsys\AirBundle\Entity\Group'
-        title: 'Rapsys\AirBundle\Entity\Title'
+        civility: 'Rapsys\AirBundle\Entity\Civility'
         user: 'Rapsys\AirBundle\Entity\User'
+    #Default replacement
+    default:
+        group: [ 'User' ]
+        civility: 'Mister'
     #Route replacement
     route:
         index:
-            name: 'rapsys_air_index'
+            name: 'rapsys_air'
+    #Translate replacement
+    translate: [ 'title', 'site.title', 'copy.by', 'copy.long', 'copy.short' ]
+    #Languages replacement
+    languages:
+        en: 'English'
+        fr: 'French'
     #Contact replacement
     contact:
         name: '%rapsys_air.contact.name%'
@@ -27,100 +33,128 @@ rapsys_user:
     #Login replacement
     login:
         route:
-            index: 'site_url'
+            index: 'site.url'
         view:
             name: '@RapsysAir/form/login.html.twig'
             context:
                 title: 'Login'
-                copy_long: '%rapsys_air.copy.long%'
-                copy_short: '%rapsys_air.copy.short%'
-                site_ico: '%rapsys_air.site.ico%'
-                site_logo: '%rapsys_air.site.logo%'
-                site_png: '%rapsys_air.site.png%'
-                site_svg: '%rapsys_air.site.svg%'
-                site_title: '%rapsys_air.site.title%'
+                copy:
+                    by: '%rapsys_air.copy.by%'
+                    link: '%rapsys_air.copy.link%'
+                    long: '%rapsys_air.copy.long%'
+                    short: '%rapsys_air.copy.short%'
+                    title: '%rapsys_air.copy.title%'
+                site:
+                    ico: '%rapsys_air.site.ico%'
+                    logo: '%rapsys_air.site.logo%'
+                    png: '%rapsys_air.site.png%'
+                    svg: '%rapsys_air.site.svg%'
+                    title: '%rapsys_air.site.title%'
+                    url: '%rapsys_air.site.url%'
     #Recover replacement
     recover:
         route:
-            index: 'site_url'
+            index: 'site.url'
             recover_mail: 'recover_url'
         view:
             name: '@RapsysAir/form/recover.html.twig'
             context:
                 title: 'Recover'
-                copy_long: '%rapsys_air.copy.long%'
-                copy_short: '%rapsys_air.copy.short%'
-                site_ico: '%rapsys_air.site.ico%'
-                site_logo: '%rapsys_air.site.logo%'
-                site_png: '%rapsys_air.site.png%'
-                site_svg: '%rapsys_air.site.svg%'
-                site_title: '%rapsys_air.site.title%'
+                copy:
+                    by: '%rapsys_air.copy.by%'
+                    link: '%rapsys_air.copy.link%'
+                    long: '%rapsys_air.copy.long%'
+                    short: '%rapsys_air.copy.short%'
+                    title: '%rapsys_air.copy.title%'
+                site:
+                    ico: '%rapsys_air.site.ico%'
+                    logo: '%rapsys_air.site.logo%'
+                    png: '%rapsys_air.site.png%'
+                    svg: '%rapsys_air.site.svg%'
+                    title: '%rapsys_air.site.title%'
+                    url: '%rapsys_air.site.url%'
         mail:
-            subject: '%%recipient_name%% welcome back to %%site_title%%'
+            subject: 'Welcome back %%recipient_name%% to %%site.title%%'
             html: '@RapsysAir/mail/recover.html.twig'
             text: '@RapsysAir/mail/recover.text.twig'
             context:
     #Mail recover replacement
     recover_mail:
         route:
-            index: 'site_url'
+            index: 'site.url'
             recover_mail: 'recover_url'
         view:
             name: '@RapsysAir/form/recover_mail.html.twig'
             context:
                 title: 'Mail recover'
-                copy_long: '%rapsys_air.copy.long%'
-                copy_short: '%rapsys_air.copy.short%'
-                site_ico: '%rapsys_air.site.ico%'
-                site_logo: '%rapsys_air.site.logo%'
-                site_png: '%rapsys_air.site.png%'
-                site_svg: '%rapsys_air.site.svg%'
-                site_title: '%rapsys_air.site.title%'
+                copy:
+                    by: '%rapsys_air.copy.by%'
+                    link: '%rapsys_air.copy.link%'
+                    long: '%rapsys_air.copy.long%'
+                    short: '%rapsys_air.copy.short%'
+                    title: '%rapsys_air.copy.title%'
+                site:
+                    ico: '%rapsys_air.site.ico%'
+                    logo: '%rapsys_air.site.logo%'
+                    png: '%rapsys_air.site.png%'
+                    svg: '%rapsys_air.site.svg%'
+                    title: '%rapsys_air.site.title%'
+                    url: '%rapsys_air.site.url%'
         mail:
-            subject: '%%recipient_name%% welcome back to %%site_title%%'
+            subject: 'Welcome back %%recipient_name%% to %%site.title%%'
             html: '@RapsysAir/mail/recover_mail.html.twig'
             text: '@RapsysAir/mail/recover_mail.text.twig'
             context:
     #Register replacement
     register:
         route:
-            index: 'site_url'
+            index: 'site.url'
         view:
             form: 'Rapsys\AirBundle\Form\RegisterType'
             name: '@RapsysAir/form/register.html.twig'
             context:
                 title: 'Register'
-                copy_long: '%rapsys_air.copy.long%'
-                copy_short: '%rapsys_air.copy.short%'
-                site_ico: '%rapsys_air.site.ico%'
-                site_logo: '%rapsys_air.site.logo%'
-                site_png: '%rapsys_air.site.png%'
-                site_svg: '%rapsys_air.site.svg%'
-                site_title: '%rapsys_air.site.title%'
+                copy:
+                    by: '%rapsys_air.copy.by%'
+                    link: '%rapsys_air.copy.link%'
+                    long: '%rapsys_air.copy.long%'
+                    short: '%rapsys_air.copy.short%'
+                    title: '%rapsys_air.copy.title%'
+                site:
+                    ico: '%rapsys_air.site.ico%'
+                    logo: '%rapsys_air.site.logo%'
+                    png: '%rapsys_air.site.png%'
+                    svg: '%rapsys_air.site.svg%'
+                    title: '%rapsys_air.site.title%'
+                    url: '%rapsys_air.site.url%'
         mail:
-            subject: '%%recipient_name%% welcome to %%site_title%%'
+            subject: 'Welcome %%recipient_name%% to %%site.title%%'
             html: '@RapsysAir/mail/register.html.twig'
             text: '@RapsysAir/mail/register.text.twig'
             context:
 
 #Doctrine configuration
 doctrine:
+    #Dbal configuration
+    dbal:
+        mapping_types:
+            enum: string
     #Orm configuration
     orm:
         #Force resolution of UserBundle entities to AirBundle one
         #XXX: without these lines, relations are lookup in parent namespace ignoring AirBundle extension
         resolve_target_entities:
             Rapsys\UserBundle\Entity\Group: Rapsys\AirBundle\Entity\Group
-            Rapsys\UserBundle\Entity\Title: Rapsys\AirBundle\Entity\Title
+            Rapsys\UserBundle\Entity\Civility: Rapsys\AirBundle\Entity\Civility
             Rapsys\UserBundle\Entity\User: Rapsys\AirBundle\Entity\User
 
 #Security configuration
 security:
     #Set encoders
     encoders:
-        Rapsys\AirBundle\Entity\User: plaintext
-        #Rapsys\AirBundle\Entity\User:
-        #    algorithm: 'bcrypt'
+        #Rapsys\AirBundle\Entity\User: plaintext
+        Rapsys\AirBundle\Entity\User:
+            algorithm: 'bcrypt'
 
     #Set providers
     providers:
@@ -151,8 +185,9 @@ security:
 
             #Set form login
             #XXX: https://symfony.com/doc/current/security/form_login_setup.html
+            #TODO: https://symfony.com/doc/current/security/guard_authentication.html
             form_login:
-                use_referer: false
+                use_referer: true
                 login_path: rapsys_user_login
                 check_path: rapsys_user_login
                 username_parameter: 'login[mail]'
@@ -160,8 +195,10 @@ security:
 
             #Set logout route
             logout:
-                path: /logout
-                target: /
+                path: rapsys_user_logout
+                #XXX: see https://symfony.com/doc/current/security.html#logging-out
+                success_handler: Rapsys\AirBundle\Security\LogoutSuccessHandler
+                #target: /
 
             #Set custom access denied handler
             access_denied_handler: Rapsys\AirBundle\Security\AccessDeniedHandler
@@ -173,10 +210,23 @@ security:
         ROLE_SENIOR: [ 'ROLE_USER', 'ROLE_GUEST', 'ROLE_REGULAR' ]
         ROLE_ADMIN: [ 'ROLE_USER', 'ROLE_GUEST', 'ROLE_REGULAR', 'ROLE_SENIOR' ]
 
-##Framework configuration
-#XXX: don't use that shit, it breaks assets._default_package url generation
+#Framework configuration
+framework:
+    default_locale: 'fr'
+    #error_controller: 'Rapsys\AirBundle\Controller\ErrorController::show'
+    translator:
+        fallbacks: [ 'fr', 'en' ]
+    session:
+        enabled: true
+        handler_id: ~
+        cookie_secure: 'auto'
+        cookie_samesite: 'lax'
+    disallow_search_engine_index: false
 #framework:
+#    error_controller: Rapsys\AirBundle\Controller\ErrorController::show
+#
 #    #Assets configuration
+#    XXX: don't use that shit, it breaks assets._default_package url generation
 #    assets:
 #        #Set default base path
 #        #base_path: '/bundles/%%s'
@@ -186,7 +236,7 @@ security:
 #        version_format: '%%s?v=%%s'
 #
 #        packages:
-#            pack_package:
+#            pack:
 #                base_path: '/bundles/%%s'
 
 #Service configuration
@@ -204,37 +254,102 @@ services:
     rapsys_air.twig.bb2html:
         class: 'Rapsys\AirBundle\Twig\Bb2htmlExtension'
         tags: [ 'twig.extension' ]
+    #Register twig intl extension
+    #XXX: https://www.php.net/manual/en/class.intldateformatter.php
+    #XXX: https://stackoverflow.com/questions/25948853/how-to-install-the-intl-extension-for-twig
+    rapsys_air.twig.intl:
+        class: 'Twig\Extensions\IntlExtension'
+        tags: [ 'twig.extension' ]
+    #new TwigFilter('markdown_to_html', ['Twig\\Extra\\Markdown\\MarkdownRuntime', 'convert'], ['is_safe' => ['all']]),
+    #new TwigFilter('html_to_markdown', 'Twig\\Extra\\Markdown\\twig_html_to_markdown', ['is_safe' => ['all']]),
+    #Register twig markdown_to_html extension
+    #    #class: 'Twig\Extra\Markdown\DefaultMarkdown'
+    #rapsys_air.twig.markdown_eruse:
+    #    class: 'Twig\Extra\Markdown\DefaultMarkdown'
+    #rapsys_air.twig.markdown_runtime:
+    #    class: 'Twig\Extra\Markdown\MarkdownRuntime'
+    #    arguments: [ '@rapsys_air.twig.markdown_eruse' ]
+    #rapsys_air.markdown:
+    #    class: 'Twig\Extra\Markdown\MarkdownExtension'
+    #    tags: [ 'twig.extension' ]
+    #Register twig pack extension
+    #rapsys_pack.pack_extension:
+    #    class: 'Rapsys\PackBundle\Twig\PackExtension'
+    #    arguments: [ '@file_locator', '@service_container', '@rapsys_pack.path_package' ]
+    #    tags: [ 'twig.extension' ]
+    #Register application controller
+    Rapsys\AirBundle\Controller\ApplicationController:
+        arguments: [ '@service_container', '@router', '@request_stack', '@translator' ]
+        tags: [ 'controller.service_arguments' ]
     #Register default controller
     Rapsys\AirBundle\Controller\DefaultController:
-        arguments: [ '@service_container', '@translator', '@router' ]
+        arguments: [ '@service_container', '@router', '@request_stack', '@translator' ]
         tags: [ 'controller.service_arguments' ]
     #Register location controller
     Rapsys\AirBundle\Controller\LocationController:
-        arguments: [ '@service_container', '@translator', '@router' ]
+        arguments: [ '@service_container', '@router', '@request_stack', '@translator' ]
+        tags: [ 'controller.service_arguments' ]
+    #Register user controller
+    Rapsys\AirBundle\Controller\UserController:
+        arguments: [ '@service_container', '@router', '@request_stack', '@translator' ]
+        tags: [ 'controller.service_arguments' ]
+    #Register session controller
+    Rapsys\AirBundle\Controller\SessionController:
+        arguments: [ '@service_container', '@router', '@request_stack', '@translator' ]
+        tags: [ 'controller.service_arguments' ]
+    #Register snippet controller
+    Rapsys\AirBundle\Controller\SnippetController:
+        arguments: [ '@service_container', '@router', '@request_stack', '@translator' ]
+        tags: [ 'controller.service_arguments' ]
+    #Register error controller
+    Rapsys\AirBundle\Controller\ErrorController:
+        arguments: [ '@service_container', '@router', '@request_stack', '@translator' ]
         tags: [ 'controller.service_arguments' ]
+    #Register locale event subscriber
+    Rapsys\AirBundle\EventSubscriber\LocaleSubscriber:
+        arguments: [ '@router', '%rapsys_air.locales%' ]
+        tags: [ 'kernel.event_subscriber' ]
     #Register access denied handler
     Rapsys\AirBundle\Security\AccessDeniedHandler:
-        arguments: [ '@service_container', '@translator', '@twig' ]
+        arguments: [ '@service_container', '@twig', '@router', '@request_stack', '@translator' ]
+    #Register logout success handler
+    Rapsys\AirBundle\Security\LogoutSuccessHandler:
+        arguments: [ '@router' ]
     #Register air fixtures
     Rapsys\AirBundle\DataFixtures\AirFixtures:
         tags: [ 'doctrine.fixture.orm' ]
-    #Replace default package
-    #XXX: set base path to /bundles/<bundlealias> and disable versioning
-    assets._default_package:
-        class: 'Rapsys\PackBundle\Asset\PathPackage'
-        arguments: [ '/bundles/%%s', '@assets.empty_version_strategy', '@assets.context' ]
-#       arguments: [ '/', '@assets.static_version_strategy', '@assets.context' ]
+    #Replace assets packages
+    assets.packages:
+        class: 'Symfony\Component\Asset\Packages'
+        arguments: [ '@rapsys_pack.path_package' ]
 #   #Set version strategy
 #   assets.static_version_strategy:
 #       class: Symfony\Component\Asset\VersionStrategy\StaticVersionStrategy
 #       arguments: [ 'x', '%%s?v=%%s' ]
+    Rapsys\AirBundle\Form\ApplicationType:
+        arguments: [ '@doctrine', '@translator' ]
+        tags: [ 'form.type' ]
+    Rapsys\AirBundle\Form\LocationType:
+        tags: [ 'form.type' ]
+    Rapsys\AirBundle\Form\SessionType:
+        arguments: [ '@doctrine' ]
+        tags: [ 'form.type' ]
+    Rapsys\AirBundle\Form\Extension\Type\HiddenEntityType:
+        arguments: [ '@doctrine' ]
+        tags: [ 'form.type' ]
+    Rapsys\AirBundle\Command\AttributeCommand:
+        arguments: [ '@doctrine' ]
+        tags: [ 'console.command' ]
+    Rapsys\AirBundle\Command\WeatherCommand:
+        arguments: [ '@doctrine' ]
+        tags: [ 'console.command' ]
 
 #Twig Configuration
 twig:
-#   #Enforce debug
-#   debug: true
-#   auto_reload: ~
-#   cache: false
+    #Enforce debug
+    #debug: true
+    #auto_reload: ~
+    cache: false
     #Fix form layout for css
     #XXX: @RapsysAir is a shortcut to vendor/rapsys/airbundle/Resources/views directory here
     form_theme: [ '@RapsysAir/form/form_div_layout.html.twig' ]
@@ -243,3 +358,5 @@ twig:
         #Required by email.image(site_logo) directive
         #XXX: Allow twig to resolve @RapsysAir/png/logo.png in vendor/rapsys/airbundle/Resources/public/png/logo.png
         '%kernel.project_dir%/vendor/rapsys/airbundle/Resources/public': 'RapsysAir'
+    #Override default exception controller
+    #exception_controller: Rapsys\AirBundle\Controller\ErrorController::preview