Voyti
GDPR
Data export and account anonymization ship as a separate package, voyti-gdpr. Core only
ever collects mandatory personal-data-processing consent at signup and offers hard account
deletion. Export and anonymization are optional, and this package provides this. It reuses core’s
ConsentForm for password re-confirmation, and core’s User, UserProfile, and UserSessions
models to build the export. When voyti-social-auth is also installed,
connected social accounts are included in the export too.
Installation
Configuration
// config/params.php
return [
'yiirocks/voyti' => [
'gdpr' => [
'gdprAnonymizePrefix' => 'GDPR',
],
],
];['email', 'username', 'userProfile.public_email', 'userProfile.name', 'userProfile.gravatar_email', 'userProfile.location', 'userProfile.website', 'userProfile.bio', 'userProfile.birthday', 'userSessions', 'userSocialAccount']null. userSessions exports each login's ip, user_agent, created_at, updated_at; userSocialAccount exports each linked account's provider, username, email, created_at, and data (the decoded provider profile payload).'GDPR'GDPR42, GDPR42@example.com).Routes
| Route name | Method | Path | Purpose |
|---|---|---|---|
voyti/user-privacy-export |
GET |
settings/privacy/export |
Download personal data as a JSON attachment |
voyti/user-privacy-anonymize |
GET, POST |
settings/privacy/anonymize |
Anonymize account (password-confirmed). Masks email/username, blocks login, rotates the auth key; the row itself is kept |
Events
Anonymizing an account dispatches GdprEvent (carrying the now-anonymized User) after it’s
saved. Nothing consumes it by default. Attach your own listener via the event dispatcher
configuration for things like admin notification or downstream data-retention cleanup.