AuditLogger
in package
Enregistre les traces d'audit des actions sensibles réalisées sur les comptes et les cartes.
Chaque appel crée une entité AuditLog persistée et flushée immédiatement, en résolvant automatiquement l'acteur depuis le contexte de sécurité lorsqu'il n'est pas fourni explicitement (cas des traitements exécutés par le système, par exemple en ligne de commande). Les libellés de l'acteur et de la cible sont figés au moment de l'écriture afin de rester lisibles même après anonymisation ou suppression des utilisateurs concernés.
Table of Contents
Properties
- $entityManager : EntityManagerInterface
- $security : Security
Methods
- __construct() : mixed
- logUser() : void
- Enregistre une action d'audit portant sur un utilisateur cible.
- logVirtualCard() : void
- Enregistre une action d'audit portant sur une carte de visite virtuelle.
- getActor() : User|null
- Résout l'utilisateur authentifié courant comme acteur de l'audit.
- userLabel() : string|null
- Construit un libellé lisible et figé pour identifier un utilisateur dans une trace d'audit.
Properties
$entityManager read-only
private
EntityManagerInterface
$entityManager
$security read-only
private
Security
$security
Methods
__construct()
public
__construct(EntityManagerInterface $entityManager, Security $security) : mixed
Parameters
- $entityManager : EntityManagerInterface
-
Persistance et flush immédiat des entrées d'audit.
- $security : Security
-
Résolution de l'utilisateur authentifié servant d'acteur par défaut.
logUser()
Enregistre une action d'audit portant sur un utilisateur cible.
public
logUser(User $targetUser, string $actionType[, User|null $actorUser = null ][, array<string, mixed> $metadata = [] ]) : void
L'acteur retenu est $actorUser s'il est fourni, sinon l'utilisateur authentifié résolu par
AuditLogger::getActor() (null pour une action système). Les libellés lisibles de la
cible et de l'acteur sont calculés par AuditLogger::userLabel() et stockés en dur dans
l'entrée. Les métadonnées ne sont enregistrées que si le tableau n'est pas vide, sinon null
est stocké.
Effet de bord : persist() puis flush() immédiat de l'AuditLog, ce qui valide aussi
les autres modifications en attente dans l'UnitOfWork.
Parameters
- $targetUser : User
-
Utilisateur concerné par l'action.
- $actionType : string
-
Constante d'action de AuditLog (ex.
AuditLog::ACTION_USER_CREATED). - $actorUser : User|null = null
-
Auteur explicite de l'action ;
nullpour le déduire du contexte de sécurité. - $metadata : array<string, mixed> = []
-
Contexte additionnel libre stocké tel quel avec l'entrée.
logVirtualCard()
Enregistre une action d'audit portant sur une carte de visite virtuelle.
public
logVirtualCard(BusinessCardAize $businessCard, string $actionType[, User|null $actorUser = null ][, array<string, mixed> $metadata = [] ]) : void
La cible de l'audit est le propriétaire de la carte : si celle-ci n'est rattachée à aucun
User, la méthode sort silencieusement sans rien écrire. Sinon elle délègue à
AuditLogger::logUser() en ajoutant automatiquement la métadonnée virtual_card_id
aux métadonnées fournies (les clés de $metadata écrasent celles calculées en cas de collision).
Effet de bord : écriture et flush d'un AuditLog, sauf sortie anticipée.
Parameters
- $businessCard : BusinessCardAize
-
Carte de visite concernée par l'action.
- $actionType : string
-
Constante d'action de AuditLog.
- $actorUser : User|null = null
-
Auteur explicite de l'action ;
nullpour le déduire du contexte de sécurité. - $metadata : array<string, mixed> = []
-
Contexte additionnel fusionné avec
virtual_card_id.
getActor()
Résout l'utilisateur authentifié courant comme acteur de l'audit.
private
getActor() : User|null
Interroge le composant de sécurité et ne retourne l'utilisateur que s'il s'agit bien d'une
instance de User (les autres implémentations de UserInterface sont ignorées).
Return values
User|null —Utilisateur authentifié, ou null s'il n'y en a pas — l'action est alors
considérée comme réalisée par le système.
userLabel()
Construit un libellé lisible et figé pour identifier un utilisateur dans une trace d'audit.
private
userLabel(User|null $user) : string|null
Règles appliquées : Système si aucun utilisateur n'est fourni ; sinon
Nom <email> lorsque le nom et l'e-mail sont renseignés, le nom seul si l'e-mail est vide,
l'e-mail seul si le nom est vide, et en dernier recours Utilisateur #<id> lorsque ni le nom
ni l'e-mail ne sont exploitables.
Parameters
- $user : User|null
-
Utilisateur à décrire, ou
nullpour une action système.
Return values
string|null —Libellé calculé ; en pratique jamais null, le type de retour restant
nullable pour s'aligner sur les accesseurs de AuditLog.