BCard - Documentation technique

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

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 ; null pour 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 ; null pour 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 null pour 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.


        
On this page

Search results