Commit b41cf2e3 authored by Anthony Gautreau's avatar Anthony Gautreau
Browse files

Merge branch 'main' of git.unicaen.fr:lib/unicaen-modern/utilisateur

parents a196d604 9a26b5f2
Loading
Loading
Loading
Loading
+12 −0
Changes for CHANGELOG.md: 12 added lines, 0 removed lines.
Original line number Diff line number Diff line
CHANGELOG
=========
0.2.6 (11/12/2025)
------------------
- Mise en place de l'HistoriqueListener pour gerer automatiquement les HistoCreation/HistoModification
- Suppression du HistoriqueStateProcessor devenue inutile
- Remplacement du trait HistoUserTrait par HistoUserRepository

0.2.5 (28/11/2025)
------------------
- Config : nouveau Paramétre unicaen.user_class et unicaen.role_class
- Config : nouveau Paramétre histo.histo_default_username pour pouvoir définir l'utilisateur par défaut lors de l'historisation
- Mise en place du HistoContextBuilder 

0.2.1 (17/10/2025)
------------------
- Ajout de RestaurerProcessor
+1 −1
Changes for api/.version: 1 added line, 1 removed line.
Original line number Diff line number Diff line
0.2.2
0.3.1
+9 −4
Changes for api/config/services.yaml: 9 added lines, 4 removed lines.
Original line number Diff line number Diff line
parameters:
  unicaen.user_class: 'Unicaen\Utilisateur\Entity\User'
  unicaen.role_class: 'Unicaen\Utilisateur\Entity\Role'
  histo.histo_default_username:  '%env(trim:HISTO_DEFAULT_USERNAME)%'

services:
  _defaults:
    autowire: true
@@ -6,7 +11,7 @@ services:
  Unicaen\Utilisateur\:
    resource: '../src/*'

parameters:
  unicaen.user_class: 'Unicaen\Utilisateur\Entity\User'
  unicaen.role_class: 'Unicaen\Privilege\Entity\Role'
  unicaen.user_role: 'Unicaen\Privilege\Entity\UserRole'
 No newline at end of file
  'Unicaen\Utilisateur\Serializer\HistoContextBuilder':
    decorates: 'api_platform.serializer.context_builder'
    arguments: [ '@Unicaen\Utilisateur\Serializer\HistoContextBuilder.inner' ]
    autoconfigure: false
+1 −1
Changes for api/src/Entity/AbstractUser.php: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -45,7 +45,7 @@ abstract class AbstractUser implements UserInterface, PasswordAuthenticatedUserI
    #[ORM\Column(length: 180, unique: true)]
    protected string $email;

    #[Groups(['user:read', 'user:create', 'user:update'])]
    #[Groups(['user:read', 'user:create', 'user:update', 'histoUser:read'])]
    #[ORM\Column(length: 180, nullable: true)]
    protected ?string $displayName = null;

+56 −0
Changes for api/src/Event/HistoriqueListener.php: 56 added lines, 0 removed lines.
Original line number Diff line number Diff line
<?php

namespace Unicaen\Utilisateur\Event;

use DateTime;
use Doctrine\Bundle\DoctrineBundle\Attribute\AsDoctrineListener;
use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\Events;
use Doctrine\Persistence\Event\LifecycleEventArgs;
use Symfony\Bundle\SecurityBundle\Security;
use Symfony\Component\DependencyInjection\ParameterBag\ContainerBagInterface;
use Unicaen\Utilisateur\Model\HistoriqueAwareInterface;
use Unicaen\Utilisateur\Repository\HistoUserRepository;

#[AsDoctrineListener(event: Events::prePersist, connection: 'default')]
#[AsDoctrineListener(event: Events::preUpdate, connection: 'default')]
class HistoriqueListener
{
    protected HistoUserRepository $histoUserRepository;
    public function __construct
    (
        HistoUserRepository $histoUserRepository
    ) {
        $this->histoUserRepository = $histoUserRepository;
    }

    /**
     * @throws \Exception
     */
    public function prePersist(LifecycleEventArgs $args)
    {
        $entity = $args->getObject();
        if (! $entity instanceof HistoriqueAwareInterface) {
            return;
        }
        $now = new DateTime();
        $user = $this->histoUserRepository->getHistoUser();
        $entity->setHistoCreation($now);
        $entity->setHistoCreateur($user);
    }

    /**
     * @throws \Exception
     */
    public function preUpdate(LifecycleEventArgs $args)
    {
        $entity = $args->getObject();
        if (! $entity instanceof HistoriqueAwareInterface) {
            return;
        }
        $now = new DateTime();
        $user = $this->histoUserRepository->getHistoUser();
        $entity->setHistoModification($now);
        $entity->setHistoModificateur($user);
    }
}
 No newline at end of file
Loading