AccountDeletionService
in package
Service responsable de l'anonymisation et de la suppression logique des comptes utilisateurs.
Stratégie : anonymiser les données PII (email, password, nom, téléphone, etc.), conserver les données de commandes/paiements/subscriptions pour audit, logger l'action et notifier les ROLE_ROOT.
Table of Contents
Properties
- $apiBaseUrl : string
- $entityManager : EntityManagerInterface
- $httpClient : HttpClientInterface
- $logger : LoggerInterface
- $mailerService : MailerService
- $tokenService : TokenService
- $userRepository : UserRepository
Methods
- __construct() : mixed
- deleteAccount() : void
- Anonymise le compte utilisateur et log la suppression.
- anonymizeBusinesses() : void
- Anonymise les données des Business liés à l'utilisateur.
- anonymizeBusinessUsers() : void
- anonymizePosUsers() : void
- Anonymise les utilisateurs POS via l'API b-connect-pos.
- anonymizeUser() : void
- Anonymise les données PII de l'utilisateur.
- collectPointOfSaleIds() : array<string|int, int>
- findRootUsers() : array<string|int, User>
- Recherche tous les utilisateurs avec le rôle ROLE_ROOT.
- sendDeletionEmails() : void
- Envoie les emails de notification de suppression.
Properties
$apiBaseUrl read-only
private
string
$apiBaseUrl
$entityManager read-only
private
EntityManagerInterface
$entityManager
$httpClient read-only
private
HttpClientInterface
$httpClient
$logger read-only
private
LoggerInterface
$logger
$mailerService read-only
private
MailerService
$mailerService
$tokenService read-only
private
TokenService
$tokenService
$userRepository read-only
private
UserRepository
$userRepository
Methods
__construct()
public
__construct(EntityManagerInterface $entityManager, MailerService $mailerService, UserRepository $userRepository, LoggerInterface $logger, TokenService $tokenService, HttpClientInterface $httpClient, string $apiBaseUrl) : mixed
Parameters
- $entityManager : EntityManagerInterface
- $mailerService : MailerService
- $userRepository : UserRepository
- $logger : LoggerInterface
- $tokenService : TokenService
- $httpClient : HttpClientInterface
- $apiBaseUrl : string
deleteAccount()
Anonymise le compte utilisateur et log la suppression.
public
deleteAccount(User $user[, string $deletedBy = 'self' ][, string|null $reason = null ]) : void
Parameters
- $user : User
-
L'utilisateur à supprimer/anonymiser
- $deletedBy : string = 'self'
-
Qui a initié la suppression ("self" ou email admin)
- $reason : string|null = null
-
Raison optionnelle
anonymizeBusinesses()
Anonymise les données des Business liés à l'utilisateur.
private
anonymizeBusinesses(User $user) : void
Parameters
- $user : User
anonymizeBusinessUsers()
private
anonymizeBusinessUsers(User $owner) : void
Parameters
- $owner : User
anonymizePosUsers()
Anonymise les utilisateurs POS via l'API b-connect-pos.
private
anonymizePosUsers(array<string|int, int> $pointOfSaleIds) : void
Parameters
- $pointOfSaleIds : array<string|int, int>
-
IDs des points de vente
anonymizeUser()
Anonymise les données PII de l'utilisateur.
private
anonymizeUser(User $user) : void
Parameters
- $user : User
collectPointOfSaleIds()
private
collectPointOfSaleIds(User $user) : array<string|int, int>
Parameters
- $user : User
Return values
array<string|int, int>findRootUsers()
Recherche tous les utilisateurs avec le rôle ROLE_ROOT.
private
findRootUsers() : array<string|int, User>
Return values
array<string|int, User>sendDeletionEmails()
Envoie les emails de notification de suppression.
private
sendDeletionEmails(string $userEmail, string|null $userName, string|null $businessName) : void
- Un email à l'utilisateur
- Un email à chaque utilisateur ROLE_ROOT
Parameters
- $userEmail : string
- $userName : string|null
- $businessName : string|null