X-Git-Url: https://git.rapsys.eu/blogbundle/blobdiff_plain/72b2b258054300622ac6c02592586cfd8878e4fb..e48b11ea8391b563a55fb322950aeb87d963b828:/Resources/config/packages/rapsys_blog.yaml?ds=sidebyside diff --git a/Resources/config/packages/rapsys_blog.yaml b/Resources/config/packages/rapsys_blog.yaml index d7c12ee..3dfa5db 100644 --- a/Resources/config/packages/rapsys_blog.yaml +++ b/Resources/config/packages/rapsys_blog.yaml @@ -1,15 +1,15 @@ # Dev log configuration #TODO: set mail, calendar and facebook app id as env variables ??? -rapsys_blog: +rapsysblog: contact: + address: 'blog@rapsys.eu' name: 'Raphaël Gertz' - mail: 'blog@rapsys.eu' copy: by: 'Rapsys' link: 'https://rapsys.eu' long: 'All rights reserved' short: 'Copyright 2019-2023' - title: 'Rapsys' + title: 'By Raphaël' donate: 'https://paypal.me/milongaraphael' facebook: #TODO: set this as env variables ??? @@ -58,16 +58,124 @@ rapsys_blog: locale: 'fr_fr' locales: [ 'fr_fr', 'en_gb' ] logo: + alt: 'Rapsys'' dev log logo' png: '@RapsysBlog/png/logo.png' svg: '@RapsysBlog/svg/logo.svg' - alt: 'Rapsys'' dev log logo' - root: 'rapsys_blog' + root: 'rapsysblog' title: 'Rapsys'' dev log' +#RapsysUser configuration +rapsysuser: + #Class replacement + class: + group: 'Rapsys\BlogBundle\Entity\Group' + civility: 'Rapsys\BlogBundle\Entity\Civility' + user: 'Rapsys\BlogBundle\Entity\User' + #Default replacement + default: + admin: 'ROLE_ADMIN' + civility: 'Mister' + group: [ 'User' ] + languages: '%rapsysblog.languages%' + #Route replacement + route: + index: + name: 'rapsysblog' + register: + name: 'rapsysuser_register' + #Translate replacement + translate: [ 'title.page', 'title.section', 'title.site', 'password', 'copy.by', 'copy.long', 'copy.short', 'copy.title', 'logo.alt' ] + #Contact replacement + contact: '%rapsysblog.contact%' + #Context replacement + context: + copy: '%rapsysblog.copy%' + icon: '%rapsysblog.icon%' + logo: '%rapsysblog.logo%' + root: '%rapsysblog.root%' + title: + section: 'User' + site: '%rapsysblog.title%' + #Edit replacement + edit: + admin: + mail: true + slug: true + route: + index: 'root' + view: + edit: 'Rapsys\BlogBundle\Form\EditType' + name: '@RapsysBlog/form/edit.html.twig' + context: + title: + page: 'Modify account' + password: 'Modify password' + #Index replacement + index: + route: + index: 'root' + view: + name: '@RapsysBlog/user/index.html.twig' + context: + title: + page: 'User list' + #Login replacement + login: + route: + index: 'root' + view: + name: '@RapsysBlog/form/login.html.twig' + context: + title: + page: 'Login' + #Recover replacement + recover: + route: + index: 'root' + recover: 'recover_url' + view: + name: '@RapsysBlog/form/recover.html.twig' + context: + title: + page: 'Recover' + mail: + subject: 'Welcome back %%recipient_name%% to %%head.site%%' + html: '@RapsysBlog/mail/recover.html.twig' + text: '@RapsysBlog/mail/recover.text.twig' + context: + #Register replacement + register: + field: + pseudonym: false + slug: false + route: + index: 'root' + confirm: 'confirm_url' + view: + form: 'Rapsys\BlogBundle\Form\RegisterType' + name: '@RapsysBlog/form/register.html.twig' + context: + title: + page: 'Register' + mail: + subject: 'Welcome %%recipient_name%% to %%head.site%%' + html: '@RapsysBlog/mail/register.html.twig' + text: '@RapsysBlog/mail/register.text.twig' + context: + # Doctrine configuration doctrine: + # Dbal configuration + dbal: + charset: 'utf8mb4' + default_table_options: + charset: 'utf8mb4' + collate: 'utf8mb4_unicode_ci' # Orm configuration orm: + # Controler resolver + controller_resolver: + auto_mapping: false # Replace repository factory repository_factory: 'Rapsys\BlogBundle\Factory\RepositoryFactory' @@ -80,14 +188,14 @@ doctrine: # Framework configuration framework: - #TODO: replace in the dependency injection ??? - default_locale: '%rapsys_blog.locale%' + default_locale: '%rapsysblog.locale%' disallow_search_engine_index: false #error_controller: 'Rapsys\BlogBundle\Controller\ErrorController::show' mailer: headers: X-Originating-IP: '%env(REMOTE_ADDR)%' secret: '%env(APP_SECRET)%' + csrf_protection: true session: enabled: true handler_id: ~ @@ -95,28 +203,33 @@ framework: cookie_secure: 'auto' cookie_samesite: 'lax' translator: - fallbacks: '%rapsys_blog.locales%' + fallbacks: '%rapsysblog.locales%' # Security configuration security: # Set password hashers password_hashers: - #Rapsys\BlogBundle\Entity\User: plaintext - Rapsys\BlogBundle\Entity\User: - algorithm: 'bcrypt' + #XXX: comment this key in config/security.yaml to prevent users_in_memory induced failures + #TODO: see https://symfony.com/doc/current/security/passwords.html (sodium ? + upgrade) + Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface: + #Rapsys\BlogBundle\Entity\User: + algorithm: 'sodium' + migrate_from: + - 'bcrypt' + - 'plaintext' # Set providers providers: database: entity: - class: Rapsys\BlogBundle\Entity\User - property: mail + class: 'Rapsys\BlogBundle\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: @@ -125,8 +238,12 @@ security: #lazy: true # Activate database provider + #XXX: comment this key in config/security.yaml to prevent users_in_memory induced failures provider: database + # Activate user checker + user_checker: 'security.user_checker' + #XXX: https://symfony.com/doc/current/security.html#a-configuring-how-your-users-will-authenticate #http_basic: ~ @@ -137,20 +254,26 @@ security: # Redirect to referer if different from login route use_referer: true # Login path - login_path: rapsys_user_login + login_path: 'rapsysuser_login' # Check path - check_path: rapsys_user_login + check_path: 'rapsysuser_login' # Username parameter username_parameter: 'login[mail]' # Password parameter password_parameter: 'login[password]' + # Enable login csrf protection + enable_csrf: false + # Csrf parameter + csrf_parameter: 'login[_token]' + # Csrf id + csrf_token_id: 'login' # Set logout route logout: # Logout route - path: rapsys_user_logout + path: 'rapsysuser_logout' # Logout default target - target: rapsys_blog + target: 'rapsysblog' # Set custom access denied handler #access_denied_handler: Rapsys\BlogBundle\Handler\AccessDeniedHandler @@ -172,41 +295,51 @@ security: services: #Register abstract controller Rapsys\BlogBundle\Controller\AbstractController: - arguments: [ '@security.authorization_checker', '@service_container', '@rapsys_user.access_decision_manager', '@doctrine', '@rapsys_pack.facebook_util', '@form.factory', '@rapsys_pack.image_util', '@mailer.mailer', '@doctrine.orm.default_entity_manager', '@rapsys_pack.path_package', '@router', '@rapsys_pack.slugger_util', '@request_stack', '@translator', '@twig' ] + arguments: [ '@security.authorization_checker', '@service_container', '@rapsysuser.access_decision_manager', '@doctrine', '@rapsysblog.facebook_util', '@form.factory', '@rapsyspack.image_util', '@mailer.mailer', '@doctrine.orm.default_entity_manager', '@rapsyspack.path_package', '@router', '@rapsyspack.slugger_util', '@security.helper', '@request_stack', '@translator', '@twig' ] tags: [ 'controller.service_arguments' ] #Register article controller Rapsys\BlogBundle\Controller\ArticleController: - arguments: [ '@security.authorization_checker', '@service_container', '@rapsys_user.access_decision_manager', '@doctrine', '@rapsys_pack.facebook_util', '@form.factory', '@rapsys_pack.image_util', '@mailer.mailer', '@doctrine.orm.default_entity_manager', '@rapsys_pack.path_package', '@router', '@rapsys_pack.slugger_util', '@request_stack', '@translator', '@twig' ] + arguments: [ '@security.authorization_checker', '@service_container', '@rapsysuser.access_decision_manager', '@doctrine', '@rapsysblog.facebook_util', '@form.factory', '@rapsyspack.image_util', '@mailer.mailer', '@doctrine.orm.default_entity_manager', '@rapsyspack.path_package', '@router', '@rapsyspack.slugger_util', '@security.helper', '@request_stack', '@translator', '@twig' ] tags: [ 'controller.service_arguments' ] #Register default controller Rapsys\BlogBundle\Controller\DefaultController: - arguments: [ '@security.authorization_checker', '@service_container', '@rapsys_user.access_decision_manager', '@doctrine', '@rapsys_pack.facebook_util', '@form.factory', '@rapsys_pack.image_util', '@mailer.mailer', '@doctrine.orm.default_entity_manager', '@rapsys_pack.path_package', '@router', '@rapsys_pack.slugger_util', '@request_stack', '@translator', '@twig' ] + arguments: [ '@security.authorization_checker', '@service_container', '@rapsysuser.access_decision_manager', '@doctrine', '@rapsysblog.facebook_util', '@form.factory', '@rapsyspack.image_util', '@mailer.mailer', '@doctrine.orm.default_entity_manager', '@rapsyspack.path_package', '@router', '@rapsyspack.slugger_util', '@security.helper', '@request_stack', '@translator', '@twig' ] tags: [ 'controller.service_arguments' ] #Register keyword controller Rapsys\BlogBundle\Controller\KeywordController: - arguments: [ '@security.authorization_checker', '@service_container', '@rapsys_user.access_decision_manager', '@doctrine', '@rapsys_pack.facebook_util', '@form.factory', '@rapsys_pack.image_util', '@mailer.mailer', '@doctrine.orm.default_entity_manager', '@rapsys_pack.path_package', '@router', '@rapsys_pack.slugger_util', '@request_stack', '@translator', '@twig' ] + arguments: [ '@security.authorization_checker', '@service_container', '@rapsysuser.access_decision_manager', '@doctrine', '@rapsysblog.facebook_util', '@form.factory', '@rapsyspack.image_util', '@mailer.mailer', '@doctrine.orm.default_entity_manager', '@rapsyspack.path_package', '@router', '@rapsyspack.slugger_util', '@security.helper', '@request_stack', '@translator', '@twig' ] + tags: [ 'controller.service_arguments' ] + #Register user controller + Rapsys\BlogBundle\Controller\UserController: + arguments: [ '@security.authorization_checker', '@service_container', '@rapsysuser.access_decision_manager', '@doctrine', '@rapsysblog.facebook_util', '@form.factory', '@rapsyspack.image_util', '@mailer.mailer', '@doctrine.orm.default_entity_manager', '@rapsyspack.path_package', '@router', '@rapsyspack.slugger_util', '@security.helper', '@request_stack', '@translator', '@twig' ] tags: [ 'controller.service_arguments' ] Rapsys\BlogBundle\Factory\RepositoryFactory: - arguments: [ '@request_stack', '@router', '@rapsys_pack.slugger_util', '@translator', '%rapsys_blog.languages%', '%rapsys_blog.locale%' ] + arguments: [ '@request_stack', '@router', '@rapsyspack.slugger_util', '@translator', '%rapsysblog.languages%', '%rapsysblog.locale%' ] #Register blog fixture Rapsys\BlogBundle\Fixture\BlogFixture: + arguments: [ '@rapsyspack.slugger_util' ] tags: [ 'doctrine.fixture.orm' ] - #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\BlogBundle\Entity\User': { class: 'Symfony\Component\PasswordHasher\Hasher\NativePasswordHasher', arguments: [ ~, ~, ~, '2y'] } } ] + #Register form factory as public + form.factory: + class: 'Symfony\Component\Form\FormFactory' + arguments: [ '@form.registry' ] public: true #Register facebook event subscriber Rapsys\PackBundle\Subscriber\FacebookSubscriber: - arguments: [ '@router', '%rapsys_blog.locales%' ] + arguments: [ '@router', '%rapsysblog.locales%' ] tags: [ 'kernel.event_subscriber' ] #Register facebook util service - rapsys_blog.facebook_util: + rapsysblog.facebook_util: class: 'Rapsys\PackBundle\Util\FacebookUtil' #TODO: create the facebook.png file and add the fonts - arguments: [ '@router', '%kernel.project_dir%/var/cache', '%rapsys_pack.path%', 'facebook', '%rapsys_blog.path%/png/facebook.png', { irishgrover: '%rapsys_blog.path%/ttf/irishgrover.v10.ttf', labelleaurore: '%rapsys_blog.path%/ttf/labelleaurore.v10.ttf', dejavusans: '%rapsys_blog.path%/ttf/dejavusans.2.37.ttf', droidsans: '%rapsys_blog.path%/ttf/droidsans.regular.ttf' } ] + #TODO: add a default font + arguments: [ '@service_container', '@router', '@rapsyspack.slugger_util' ] + #arguments: [ '@service_container', '@router', '%kernel.project_dir%/var/cache', '%rapsyspack.path%', 'facebook', '%rapsysblog.path%/png/facebook.png', { irishgrover: '%rapsysblog.path%/ttf/irishgrover.v10.ttf', labelleaurore: '%rapsysblog.path%/ttf/labelleaurore.v10.ttf', dejavusans: '%rapsysblog.path%/ttf/dejavusans.2.37.ttf', droidsans: '%rapsysblog.path%/ttf/droidsans.regular.ttf' } ] public: true + #Register contact form type + Rapsys\BlogBundle\Form\ContactType: + arguments: [ '@rapsyspack.image_util', '@rapsyspack.slugger_util', '@translator' ] + tags: [ 'form.type' ] # Twig configuration twig: @@ -216,8 +349,11 @@ twig: #Disable cache #XXX: enable forced regeneration of css and js at each page load cache: false + #Fix form layout for css + #XXX: @RapsysBlog is a shortcut to vendor/rapsys/blogbundle/templates directory here + form_theme: [ '@RapsysBlog/form/form_div_layout.html.twig' ] #Set twig paths paths: #Required by email.image(site_logo) directive - #XXX: Allow twig to resolve @RapsysBlog/png/logo.png in vendor/rapsys/blogbundle/Resources/public/png/logo.png - '%kernel.project_dir%/vendor/rapsys/blogbundle/Resources/public': 'RapsysBlog' + #XXX: Allow twig to resolve @RapsysBlog/png/logo.png in vendor/rapsys/blogbundle/public/png/logo.png + '%kernel.project_dir%/vendor/rapsys/blogbundle/public': 'RapsysBlog'