SyliusGDPRPlugin
SyliusGDPRPlugin copied to clipboard
Make your Sylius project GDPR compliant.
Sylius GDPR Plugin

Features
- Anonymize customer with the GDPR section in the admin customer show.
- Export customer data with the GDPR section in the admin customer show.
Click to see the anonymization configuration.
Click to see the export data configuration.
- Anonymize any entity with command for example :
php bin/console synolia:gdpr:anonymize --entity='Sylius\Component\Core\Model\Customer' --id=1
Use --help to get more informations
Requirements
| Version | |
|---|---|
| PHP | ^8.0 |
| Sylius | ^1.10 |
Installation
-
Add the bundle and dependencies in your composer.json :
composer require synolia/sylius-gdpr-plugin --no-scripts -
Import required config in your
config/packages/_sylius.yamlfile:imports: - { resource: "@SynoliaSyliusGDPRPlugin/Resources/config/app/config.yaml" } -
Import routing in your
config/routes.yamlfile:synolia_gdpr: resource: "@SynoliaSyliusGDPRPlugin/Resources/config/routes.yaml" -
Process translations
php bin/console translation:extract en SynoliaSyliusGDPRPlugin --dump-messages php bin/console translation:extract fr SynoliaSyliusGDPRPlugin --dump-messages -
Clear cache
php bin/console cache:clear
Add anonymization configuration
synolia_sylius_gdpr:
disable_default_mappings: false # False by default
anonymization:
mappings:
paths:
- # Your\Paths\To\Mappings\Directory
Example of configuration
Sylius\Component\Core\Model\Address: # Your class path
properties:
firstName:
faker: text # let's see => https://fakerphp.github.io/formatters/
args: [20] # The associated faker arguments
prefix: 'anonymized-'
lastName:
value: 'Fake lastName'
prefix: 'anonymized-'
value can be null, an array, an int, a string and an expression language
Example of configuration with dynamic value
Sylius\Component\Core\Model\Customer:
properties:
firstName:
value: '@="some-arbitrary-text..." ~ object.getId() ~ "...more-arbitrary-text"'
Note:
your expression language must starts with
@=to be evaluated properly
variable
objectis the current entity your are dealing with (eg. in that caseSylius\Component\Core\Model\Customer)
Add form in advanced actions page
There's two steps to add your custom form into the page:
- Override the controller service by setting the link of your FormType in the $formsType variable
Synolia\SyliusGDPRPlugin\Controller\AdvancedActionsController:
arguments:
$formsType:
- 'Synolia\SyliusGDPRPlugin\Form\Type\Actions\AnonymizeCustomerNotLoggedSinceType'
tags: ['controller.service_arguments']
- Then create your form processor by implementing Synolia\SyliusGDPRPlugin\Processor\AnonymizerProcessor\AdvancedActionsFormDataProcessorInterface
There a form processor example
Events
- Synolia\SyliusGDPRPlugin\Event\BeforeAnonymize
- Synolia\SyliusGDPRPlugin\Event\AfterAnonymize
- Synolia\SyliusGDPRPlugin\Event\BeforeCustomerAnonymize
- Synolia\SyliusGDPRPlugin\Event\AfterCustomerAnonymize
- Synolia\SyliusGDPRPlugin\Event\BeforeExportCustomerData
Development
See How to contribute.
License
This library is under the EUPL-1.2 license.
Credits
Developed by Synolia.