X-Git-Url: https://git.rapsys.eu/airbundle/blobdiff_plain/e176cc2c6255aac4bdd93269b42d5e96b0753d33..e9ddea0dcc150da1a160092f5bb3d9e37e8468b3:/Resources/config/packages/rapsys_air.yaml diff --git a/Resources/config/packages/rapsys_air.yaml b/Resources/config/packages/rapsys_air.yaml index 146c6bc..f520cdc 100644 --- a/Resources/config/packages/rapsys_air.yaml +++ b/Resources/config/packages/rapsys_air.yaml @@ -1,123 +1,147 @@ #RapsysAir configuration rapsys_air: - #Contact - contact: - name: 'Raphaël Gertz' - mail: 'airlibre@rapsys.eu' - #Copyright - copy: - long: 'Raphaël Gertz all rights reserved' - short: 'Copyright 2019' + languages: + en_gb: 'English' + fr_fr: 'French' + locale: 'fr_fr' + locales: [ 'fr_fr', 'en_gb' ] + logo: + alt: 'Libre Air logo' + title: 'Libre Air' #RapsysUser configuration rapsys_user: #Class replacement class: + civility: 'Rapsys\AirBundle\Entity\Civility' + country: 'Rapsys\AirBundle\Entity\Country' + dance: 'Rapsys\AirBundle\Entity\Dance' group: 'Rapsys\AirBundle\Entity\Group' - title: 'Rapsys\AirBundle\Entity\Title' user: 'Rapsys\AirBundle\Entity\User' + #Default replacement + default: + group: [ 'User' ] + civility: 'Mister' + languages: '%rapsys_air.languages%' + locales: '%rapsys_air.locales%' + country: 'France' + country_favorites: [ 'France', 'Belgium', 'Germany', 'Italy', 'Luxembourg', 'Portugal', 'Spain', 'Switzerland' ] + dance_favorites: [ 'Argentine Tango Ball', 'Argentine Tango Ball and class', 'Argentine Tango Ball and concert' ] + subscription_favorites: [ 'Milonga Raphaël' ] #Route replacement route: index: - name: 'rapsys_air_index' + name: 'rapsys_air' + #Translate replacement + translate: [ 'title.page', 'title.section', 'title.site', 'password', 'copy.by', 'copy.long', 'copy.short', 'copy.title', 'logo.alt' ] #Contact replacement contact: + address: '%rapsys_air.contact.address%' name: '%rapsys_air.contact.name%' - mail: '%rapsys_air.contact.mail%' + #Context replacement + context: + copy: '%rapsys_air.copy%' + icon: '%rapsys_air.icon%' + logo: '%rapsys_air.logo%' + root: '%rapsys_air.root%' + title: + section: 'User' + site: '%rapsys_air.title%' + #Edit replacement + edit: + field: + pseudonym: false + route: + index: 'root' + view: + edit: 'Rapsys\AirBundle\Form\RegisterType' + name: '@RapsysAir/form/edit.html.twig' + context: + title: + page: 'Modify account' + password: 'Modify password' #Login replacement login: route: - index: 'site_url' + index: 'root' 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%' + title: + page: 'Login' #Recover replacement recover: route: - index: 'site_url' - recover_mail: 'recover_url' + index: 'root' + recover: '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%' + title: + page: 'Recover' 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' - 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%' - mail: - subject: '%%recipient_name%% welcome back to %%site_title%%' - html: '@RapsysAir/mail/recover_mail.html.twig' - text: '@RapsysAir/mail/recover_mail.text.twig' - context: #Register replacement register: + field: + city: false + country: false + phone: false + pseudonym: false + zipcode: false route: - index: 'site_url' + index: 'root' + confirm: 'confirm_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%' + title: + page: 'Register' 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: + charset: 'utf8mb4' + default_table_options: + charset: 'utf8mb4' + collation: 'utf8mb4_unicode_ci' + #Orm configuration orm: + #Replace repository factory + repository_factory: 'Rapsys\AirBundle\Factory' + #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\User: Rapsys\AirBundle\Entity\User + Rapsys\UserBundle\Entity\Group: 'Rapsys\AirBundle\Entity\Group' + Rapsys\UserBundle\Entity\Civility: 'Rapsys\AirBundle\Entity\Civility' + Rapsys\UserBundle\Entity\User: 'Rapsys\AirBundle\Entity\User' + + mappings: + #Entity short syntax was removed + #XXX: see https://github.com/doctrine/orm/issues/8818 + RapsysAirBundle: + type: 'yml' + is_bundle: true + dir: 'Resources/config/doctrine' + prefix: 'Rapsys\AirBundle\Entity' + alias: 'RapsysAirBundle' #Security configuration security: - #Set encoders - encoders: + #Set password hashers + password_hashers: #Rapsys\AirBundle\Entity\User: plaintext Rapsys\AirBundle\Entity\User: algorithm: 'bcrypt' @@ -126,45 +150,59 @@ security: providers: database: entity: - class: Rapsys\AirBundle\Entity\User - property: mail + class: 'Rapsys\AirBundle\Entity\User' + property: 'mail' #Set firewall firewalls: #Disables authentication for assets and the profiler, adapt it according to your needs dev: - pattern: ^/(_(profiler|wdt)|css|images|js)/ + pattern: '^/(_(profiler|wdt)|css|images|js)/' security: false main: #Allow anonymous access - anonymous: ~ - - #Disable logout on user change - logout_on_user_change: true + #anonymous: ~ + #lazy: true #Activate database provider - provider: database + provider: 'database' #XXX: https://symfony.com/doc/current/security.html#a-configuring-how-your-users-will-authenticate #http_basic: ~ #Set form login - #XXX: https://symfony.com/doc/current/security/form_login_setup.html + #XXX: see https://symfony.com/doc/current/security/form_login_setup.html + #XXX: see https://symfony.com/doc/current/security/custom_authenticator.html form_login: - use_referer: false - login_path: rapsys_user_login - check_path: rapsys_user_login + #Redirect to referer if different from login route + use_referer: true + #Login path + login_path: 'rapsys_user_login' + #Check path + check_path: 'rapsys_user_login' + #Username parameter username_parameter: 'login[mail]' + #Password parameter password_parameter: 'login[password]' #Set logout route logout: - path: /logout - target: / + #Logout route + path: 'rapsys_user_logout' + #Logout default target + target: 'rapsys_air' #Set custom access denied handler - access_denied_handler: Rapsys\AirBundle\Security\AccessDeniedHandler + access_denied_handler: 'Rapsys\AirBundle\Handler\AccessDeniedHandler' + + #Remember me + #XXX: see https://symfony.com/doc/current/security/remember_me.html + remember_me: + #Use APP_SECRET + secret: '%kernel.secret%' + #Always remember me + always_remember_me: true #Set role hierarchy role_hierarchy: @@ -173,73 +211,150 @@ 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: -# #Assets configuration -# assets: -# #Set default base path -# #base_path: '/bundles/%%s' -# #Set default version -# version: 'x' -# #Set default format -# version_format: '%%s?v=%%s' -# -# packages: -# pack_package: -# base_path: '/bundles/%%s' +#Framework configuration +framework: + cache: + default_memcached_provider: 'memcached://localhost:11211' + pools: + air.cache: + adapter: 'cache.adapter.memcached' + user.cache: + adapter: 'cache.adapter.memcached' + default_locale: '%rapsys_air.locale%' + #error_controller: 'Rapsys\AirBundle\Controller\ErrorController::show' + translator: + fallbacks: '%rapsys_air.locales%' + session: + enabled: true + handler_id: ~ + storage_factory_id: 'session.storage.factory.native' + cookie_secure: 'auto' + cookie_samesite: 'lax' + disallow_search_engine_index: false + mailer: + headers: + X-Originating-IP: '%env(string:REMOTE_ADDR)%' + secret: '%env(string:APP_SECRET)%' + validation: + email_validation_mode: 'html5' #Service configuration services: - #Register twig file_get_contents extension - #XXX: obsolete by email.image twig filter in "twig/extensions" or "twig/html-extra" - rapsys_air.twig.file_get_contents: - class: 'Rapsys\AirBundle\Twig\FileGetContentsExtension' - tags: [ 'twig.extension' ] - #Register twig base64 extension - rapsys_air.twig.base64: - class: 'Rapsys\AirBundle\Twig\Base64Extension' - tags: [ 'twig.extension' ] - #Register twig bb2html extension - rapsys_air.twig.bb2html: - class: 'Rapsys\AirBundle\Twig\Bb2htmlExtension' - tags: [ 'twig.extension' ] + #Register application controller + Rapsys\AirBundle\Controller\ApplicationController: + arguments: [ '@security.authorization_checker', '@service_container', '@rapsys_user.access_decision_manager', '@doctrine', '@rapsys_air.facebook_util', '@form.factory', '@rapsys_pack.image_util', '@mailer.mailer', '@doctrine.orm.default_entity_manager', '@rapsys_pack.map_util', '@rapsys_pack.path_package', '@router', '@security.helper', '@rapsys_pack.slugger_util', '@request_stack', '@translator', '@twig' ] + tags: [ 'controller.service_arguments' ] + #Register calendar controller + Rapsys\AirBundle\Controller\CalendarController: + arguments: [ '@security.authorization_checker', '@service_container', '@rapsys_user.access_decision_manager', '@doctrine', '@rapsys_air.facebook_util', '@form.factory', '@rapsys_pack.image_util', '@mailer.mailer', '@doctrine.orm.default_entity_manager', '@rapsys_pack.map_util', '@rapsys_pack.path_package', '@router', '@security.helper', '@rapsys_pack.slugger_util', '@request_stack', '@translator', '@twig' ] + tags: [ 'controller.service_arguments' ] #Register default controller Rapsys\AirBundle\Controller\DefaultController: - arguments: [ '@service_container', '@translator', '@router' ] + arguments: [ '@security.authorization_checker', '@service_container', '@rapsys_user.access_decision_manager', '@doctrine', '@rapsys_air.facebook_util', '@form.factory', '@rapsys_pack.image_util', '@mailer.mailer', '@doctrine.orm.default_entity_manager', '@rapsys_pack.map_util', '@rapsys_pack.path_package', '@router', '@security.helper', '@rapsys_pack.slugger_util', '@request_stack', '@translator', '@twig' ] + tags: [ 'controller.service_arguments' ] + #Register dance controller + Rapsys\AirBundle\Controller\DanceController: + arguments: [ '@security.authorization_checker', '@service_container', '@rapsys_user.access_decision_manager', '@doctrine', '@rapsys_air.facebook_util', '@form.factory', '@rapsys_pack.image_util', '@mailer.mailer', '@doctrine.orm.default_entity_manager', '@rapsys_pack.map_util', '@rapsys_pack.path_package', '@router', '@security.helper', '@rapsys_pack.slugger_util', '@request_stack', '@translator', '@twig' ] tags: [ 'controller.service_arguments' ] #Register location controller Rapsys\AirBundle\Controller\LocationController: - arguments: [ '@service_container', '@translator', '@router' ] + arguments: [ '@security.authorization_checker', '@service_container', '@rapsys_user.access_decision_manager', '@doctrine', '@rapsys_air.facebook_util', '@form.factory', '@rapsys_pack.image_util', '@mailer.mailer', '@doctrine.orm.default_entity_manager', '@rapsys_pack.map_util', '@rapsys_pack.path_package', '@router', '@security.helper', '@rapsys_pack.slugger_util', '@request_stack', '@translator', '@twig' ] + tags: [ 'controller.service_arguments' ] + #Register user controller + Rapsys\AirBundle\Controller\UserController: + arguments: [ '@user.cache', '@security.authorization_checker', '@service_container', '@doctrine', '@form.factory', '@security.user_password_hasher', '@logger', '@mailer.mailer', '@doctrine.orm.default_entity_manager', '@router', '@security.helper', '@rapsys_pack.slugger_util', '@request_stack', '@translator', '@twig' ] + tags: [ 'controller.service_arguments' ] + #Register session controller + Rapsys\AirBundle\Controller\SessionController: + arguments: [ '@security.authorization_checker', '@service_container', '@rapsys_user.access_decision_manager', '@doctrine', '@rapsys_air.facebook_util', '@form.factory', '@rapsys_pack.image_util', '@mailer.mailer', '@doctrine.orm.default_entity_manager', '@rapsys_pack.map_util', '@rapsys_pack.path_package', '@router', '@security.helper', '@rapsys_pack.slugger_util', '@request_stack', '@translator', '@twig' ] + tags: [ 'controller.service_arguments' ] + #Register snippet controller + Rapsys\AirBundle\Controller\SnippetController: + arguments: [ '@security.authorization_checker', '@service_container', '@rapsys_user.access_decision_manager', '@doctrine', '@rapsys_air.facebook_util', '@form.factory', '@rapsys_pack.image_util', '@mailer.mailer', '@doctrine.orm.default_entity_manager', '@rapsys_pack.map_util', '@rapsys_pack.path_package', '@router', '@security.helper', '@rapsys_pack.slugger_util', '@request_stack', '@translator', '@twig' ] + tags: [ 'controller.service_arguments' ] + #Register error controller + Rapsys\AirBundle\Controller\ErrorController: + arguments: [ '@security.authorization_checker', '@service_container', '@rapsys_user.access_decision_manager', '@doctrine', '@rapsys_air.facebook_util', '@form.factory', '@rapsys_pack.image_util', '@mailer.mailer', '@doctrine.orm.default_entity_manager', '@rapsys_pack.map_util', '@rapsys_pack.path_package', '@router', '@security.helper', '@rapsys_pack.slugger_util', '@request_stack', '@translator', '@twig' ] + #arguments: [ '@service_container', '@router', '@translator' ] tags: [ 'controller.service_arguments' ] #Register access denied handler - Rapsys\AirBundle\Security\AccessDeniedHandler: - arguments: [ '@service_container', '@translator', '@twig' ] + Rapsys\AirBundle\Handler\AccessDeniedHandler: + arguments: [ '@security.authorization_checker', '@service_container', '@rapsys_user.access_decision_manager', '@doctrine', '@rapsys_air.facebook_util', '@form.factory', '@rapsys_pack.image_util', '@mailer.mailer', '@doctrine.orm.default_entity_manager', '@rapsys_pack.map_util', '@rapsys_pack.path_package', '@router', '@security.helper', '@rapsys_pack.slugger_util', '@request_stack', '@translator', '@twig' ] #Register air fixtures Rapsys\AirBundle\DataFixtures\AirFixtures: + arguments: [ '@service_container', '@security.user_password_hasher' ] tags: [ 'doctrine.fixture.orm' ] - #Replace default package - #XXX: set base path to /bundles/ 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' ] -# #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\Form\ContactType: + arguments: [ '@rapsys_pack.image_util', '@rapsys_pack.slugger_util', '@translator' ] + tags: [ 'form.type' ] + Rapsys\AirBundle\Form\RegisterType: + arguments: [ '@doctrine.orm.entity_manager' ] + tags: [ 'form.type' ] + Rapsys\AirBundle\Command\AttributeCommand: + arguments: [ '@doctrine' ] + tags: [ 'console.command' ] + Rapsys\AirBundle\Command\CalendarCommand: + arguments: [ '@doctrine', '@router', '@rapsys_pack.slugger_util', '@translator', 'airlibre', 0, '%kernel.project_dir%/var/cache', '%kernel.default_locale%' ] + tags: [ 'console.command' ] + Rapsys\AirBundle\Command\Calendar2Command: + arguments: [ '@doctrine', '@router', '@rapsys_pack.slugger_util', '@translator', '%kernel.default_locale%', '%env(string:GOOGLE_PROJECT)', '%env(string:GOOGLE_CLIENT)', '%env(string:GOOGLE_SECRET)' ] + tags: [ 'console.command' ] + Rapsys\AirBundle\Command\RekeyCommand: + arguments: [ '@doctrine' ] + tags: [ 'console.command' ] + Rapsys\AirBundle\Command\WeatherCommand: + arguments: [ '@doctrine', '@filesystem' ] + tags: [ 'console.command' ] + Rapsys\AirBundle\Factory: + arguments: [ '@request_stack', '@router', '@rapsys_pack.slugger_util', '@translator', '%kernel.default_locale%', '%rapsys_air.languages%' ] + Rapsys\UserBundle\Factory: + arguments: [ '@request_stack', '@router', '@rapsys_pack.slugger_util', '@translator', '%kernel.default_locale%', '%rapsys_air.languages%' ] + #Register facebook util service + rapsys_air.facebook_util: + class: 'Rapsys\PackBundle\Util\FacebookUtil' + arguments: [ '@router', '%kernel.project_dir%/var/cache', '%rapsys_pack.path%', 'facebook', '%rapsys_air.path%/png/facebook.png', { irishgrover: '%rapsys_air.path%/ttf/irishgrover.v10.ttf', labelleaurore: '%rapsys_air.path%/ttf/labelleaurore.v10.ttf', dejavusans: '%rapsys_air.path%/ttf/dejavusans.2.37.ttf', droidsans: '%rapsys_air.path%/ttf/droidsans.regular.ttf' } ] + public: true + #Register security password_hasher_factory as public + #XXX: required for command `php bin/console doctrine:` + security.password_hasher_factory: + class: 'Symfony\Component\PasswordHasher\Hasher\PasswordHasherFactory' + arguments: [ { 'Rapsys\AirBundle\Entity\User': { class: 'Symfony\Component\PasswordHasher\Hasher\NativePasswordHasher', arguments: [ ~, ~, ~, '2y'] } } ] + public: true + #Register facebook event subscriber + Rapsys\PackBundle\Subscriber\FacebookSubscriber: + arguments: [ '@router', '%rapsys_air.locales%' ] + tags: [ 'kernel.event_subscriber' ] #Twig Configuration twig: -# #Enforce debug -# debug: true -# auto_reload: ~ -# cache: false + #Enforce debug + #auto_reload: ~ + debug: '%kernel.debug%' + #strict_variables: '%kernel.debug%' + + #Disable cache + #XXX: enable forced regeneration of css and js at each page load + 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' ] + #Set twig paths paths: #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