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

Version utilisable

parent 2bac3d70
Loading
Loading
Loading
Loading
Loading
+64 −0
Changes for api/src/DataFixtures/RolePrivilegeFixtures.php: 64 added lines, 0 removed lines.
Original line number Diff line number Diff line
<?php

namespace Unicaen\Utilisateur\DataFixtures;

use Doctrine\Bundle\FixturesBundle\Fixture;
use Doctrine\Bundle\FixturesBundle\FixtureGroupInterface;
use Doctrine\Common\DataFixtures\DependentFixtureInterface;
use Doctrine\Persistence\ObjectManager;
use Unicaen\Privilege\DataFixtures\System\PrivilegeCategorieFixtures;
use Unicaen\Privilege\DataFixtures\System\PrivilegeRouteFixtures;
use Unicaen\Privilege\Entity\PrivilegeCategorie;

class RolePrivilegeFixtures extends Fixture implements FixtureGroupInterface
{
    public const REFERENCE_CATEGORIE = 'unicaen_privilege_role_categorie';
    public static function getGroups(): array
    {
        return ['system', 'privilege'];
    }
    public function load(ObjectManager $manager): void
    {
        $privilegeRoleCategorie = new \Unicaen\Privilege\Entity\PrivilegeCategorie();
        $privilegeRoleCategorie->setLibelle('Unicaen Role');
        $privilegeRoleCategorie->setCode('unicaen_role');
        $manager->persist($privilegeRoleCategorie);
        $manager->flush();

        $this->addReference(self::REFERENCE_CATEGORIE, $privilegeRoleCategorie);

        $roleVoir = new \Unicaen\Privilege\Entity\Privilege();
        $roleVoir->setLibelle('Voir');
        $roleVoir->setCode('role_voir');
        $roleVoir->setCategorie($this->getReference(RolePrivilegeFixtures::REFERENCE_CATEGORIE, \Unicaen\Privilege\Entity\PrivilegeCategorie::class));

        $roleCreer = new \Unicaen\Privilege\Entity\Privilege();
        $roleCreer->setLibelle('Créer');
        $roleCreer->setCode('role_creer');
        $roleCreer->setCategorie($this->getReference(RolePrivilegeFixtures::REFERENCE_CATEGORIE, \Unicaen\Privilege\Entity\PrivilegeCategorie::class));

        $roleModifier = new \Unicaen\Privilege\Entity\Privilege();
        $roleModifier->setLibelle('Modifier');
        $roleModifier->setCode('role_modifier');
        $roleModifier->setCategorie($this->getReference(RolePrivilegeFixtures::REFERENCE_CATEGORIE, \Unicaen\Privilege\Entity\PrivilegeCategorie::class));

        $roleSupprimer = new \Unicaen\Privilege\Entity\Privilege();
        $roleSupprimer->setLibelle('Supprimer');
        $roleSupprimer->setCode('role_supprimer');
        $roleSupprimer->setCategorie($this->getReference(RolePrivilegeFixtures::REFERENCE_CATEGORIE, \Unicaen\Privilege\Entity\PrivilegeCategorie::class));

        $manager->persist($roleVoir);
        $manager->persist($roleCreer);
        $manager->persist($roleModifier);
        $manager->persist($roleSupprimer);

        $manager->flush();

    }

    public function getDependencies(): array
    {
        return [
        ];
    }
}
+35 −24
Changes for api/src/DataFixtures/UtilisateurPrivilegeFixtures.php: 35 added lines, 24 removed lines.
Original line number Diff line number Diff line
@@ -10,35 +10,48 @@ use Unicaen\Privilege\DataFixtures\System\PrivilegeCategorieFixtures;
use Unicaen\Privilege\DataFixtures\System\PrivilegeRouteFixtures;
use Unicaen\Privilege\Entity\PrivilegeCategorie;

class PrivilegeFixtures extends Fixture implements FixtureGroupInterface
class UtilisateurPrivilegeFixtures extends Fixture implements FixtureGroupInterface
{
    public const REFERENCE_CATEGORIE = 'unicaen_privilege_utilisateur_categorie';
    public static function getGroups(): array
    {
        return ['system', 'privilege'];
    }
    public function load(ObjectManager $manager): void
    {
        $privilegeVoir = new \Unicaen\Privilege\Entity\Privilege();
        $privilegeVoir->setName('Voir');
        $privilegeVoir->setCode('privilege_voir');
        $privilegeVoir->setCategory($this->getReference(PrivilegeCategorieFixtures::REFERENCE, PrivilegeCategorie::class));

        $privilegeCreer = new \Unicaen\Privilege\Entity\Privilege();
        $privilegeCreer->setName('Créer');
        $privilegeCreer->setCode('privilege_creer');
        $privilegeCreer->setCategory($this->getReference(PrivilegeCategorieFixtures::REFERENCE, PrivilegeCategorie::class));

        $privilegeModifier = new \Unicaen\Privilege\Entity\Privilege();
        $privilegeModifier->setName('Modifier');
        $privilegeModifier->setCode('privilege_modifier');
        $privilegeModifier->setCategory($this->getReference(PrivilegeCategorieFixtures::REFERENCE, PrivilegeCategorie::class));

        $privilegeSupprimer = new \Unicaen\Privilege\Entity\Privilege();
        $privilegeSupprimer->setName('Supprimer');
        $privilegeSupprimer->setCode('privilege_supprimer');
        $privilegeSupprimer->setCategory($this->getReference(PrivilegeCategorieFixtures::REFERENCE, PrivilegeCategorie::class));

        $manager->persist($privilegeVoir);
        $privilegeUtilisateurCategorie = new \Unicaen\Privilege\Entity\PrivilegeCategorie();
        $privilegeUtilisateurCategorie->setLibelle('Unicaen Utilisateur');
        $privilegeUtilisateurCategorie->setCode('unicaen_utilisateur');
        $manager->persist($privilegeUtilisateurCategorie);
        $manager->flush();

        $this->addReference(self::REFERENCE_CATEGORIE, $privilegeUtilisateurCategorie);

        $utilisateurVoir = new \Unicaen\Privilege\Entity\Privilege();
        $utilisateurVoir->setLibelle('Voir');
        $utilisateurVoir->setCode('utilisateur_voir');
        $utilisateurVoir->setCategorie($this->getReference(UtilisateurPrivilegeFixtures::REFERENCE_CATEGORIE, \Unicaen\Privilege\Entity\PrivilegeCategorie::class));

        $utilisateurCreer = new \Unicaen\Privilege\Entity\Privilege();
        $utilisateurCreer->setLibelle('Créer');
        $utilisateurCreer->setCode('utilisateur_creer');
        $utilisateurCreer->setCategorie($this->getReference(UtilisateurPrivilegeFixtures::REFERENCE_CATEGORIE, \Unicaen\Privilege\Entity\PrivilegeCategorie::class));

        $utilisateurModifier = new \Unicaen\Privilege\Entity\Privilege();
        $utilisateurModifier->setLibelle('Modifier');
        $utilisateurModifier->setCode('utilisateur_modifier');
        $utilisateurModifier->setCategorie($this->getReference(UtilisateurPrivilegeFixtures::REFERENCE_CATEGORIE, \Unicaen\Privilege\Entity\PrivilegeCategorie::class));

        $utilisateurSupprimer = new \Unicaen\Privilege\Entity\Privilege();
        $utilisateurSupprimer->setLibelle('Supprimer');
        $utilisateurSupprimer->setCode('utilisateur_supprimer');
        $utilisateurSupprimer->setCategorie($this->getReference(UtilisateurPrivilegeFixtures::REFERENCE_CATEGORIE, \Unicaen\Privilege\Entity\PrivilegeCategorie::class));

        $manager->persist($utilisateurVoir);
        $manager->persist($utilisateurCreer);
        $manager->persist($utilisateurModifier);
        $manager->persist($utilisateurSupprimer);

        $manager->flush();

    }
@@ -46,8 +59,6 @@ class PrivilegeFixtures extends Fixture implements FixtureGroupInterface
    public function getDependencies(): array
    {
        return [
            PrivilegeCategorieFixtures::class,
            PrivilegeRouteFixtures::class,
        ];
    }
}
+22 −1
Changes for api/src/DependencyInjection/UnicaenUtilisateurExtension.php: 22 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -5,10 +5,31 @@ namespace Unicaen\Utilisateur\DependencyInjection;
use Symfony\Component\Config\FileLocator;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Extension\Extension;
use Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface;
use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;

class UnicaenUtilisateurExtension extends Extension
class UnicaenUtilisateurExtension extends Extension implements PrependExtensionInterface
{
    public function prepend(ContainerBuilder $container): void
    {
        if (!$container->hasExtension('doctrine')) {
            return;
        }

        // Paramètres (avec valeurs par défaut) que l’app pourra surcharger
        $container->setParameter('unicaen.user_class', \Unicaen\Utilisateur\Entity\User::class);
        $container->setParameter('unicaen.role_class', \Unicaen\Utilisateur\Entity\Role::class);

        // Mapping par défaut (pré-ajouté)
        $container->prependExtensionConfig('doctrine', [
            'orm' => [
                'resolve_target_entities' => [
                    \Unicaen\Utilisateur\Model\UnicaenUserInterface::class => '%unicaen.user_class%',
                    \Unicaen\Utilisateur\Model\RoleInterface::class        => '%unicaen.role_class%',
                ],
            ],
        ]);
    }

    public function load(array $configs, ContainerBuilder $container): void
    {
+3 −3
Changes for api/src/Dto/UtilisateurInscriptionInput.php: 3 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -9,15 +9,15 @@ class UtilisateurInscriptionInput
{
    #[Assert\NotBlank]
    #[Assert\Email]
    #[Groups(['utilisateur:register'])]
    #[Groups(['user:register'])]
    public string $email;

    #[Assert\NotBlank]
    #[Assert\Length(min: 4)]
    #[Groups(['utilisateur:register'])]
    #[Groups(['user:register'])]
    public string $plainPassword;

    #[Assert\NotBlank]
    #[Groups(['utilisateur:register'])]
    #[Groups(['user:register'])]
    public string $typeConnexion;
}
+23 −14
Changes for api/src/Entity/AbstractRole.php: 23 added lines, 14 removed lines.
Original line number Diff line number Diff line
@@ -2,12 +2,14 @@

namespace Unicaen\Utilisateur\Entity;

use ApiPlatform\Metadata\ApiResource;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Unicaen\Utilisateur\Model\RoleInterface;
use Unicaen\Utilisateur\Model\UnicaenUserInterface;
use Unicaen\Privilege\Model\PrivilegeInterface;


#[ORM\MappedSuperclass]
abstract class AbstractRole implements RoleInterface
{
@@ -36,6 +38,8 @@ abstract class AbstractRole implements RoleInterface

    #[ORM\ManyToMany(targetEntity: PrivilegeInterface::class, inversedBy: 'roles')]
    #[ORM\JoinTable(name: 'unicaen_privilege_role_privilege')]
    #[ORM\JoinColumn(name: 'role_id', referencedColumnName: 'id', onDelete: 'CASCADE')]
    #[ORM\InverseJoinColumn(name: 'privilege_id', referencedColumnName: 'id', onDelete: 'CASCADE')]
    protected Collection $privileges;

    public function getId() : ?int
@@ -154,20 +158,25 @@ abstract class AbstractRole implements RoleInterface
        $this->users->removeElement($user);
    }

//    public function getPrivileges() : Collection
//    {
//        return $this->privileges;
//    }

//    public function addPrivilege(PrivilegeInterface $privilege) : void
//    {
//        $this->privileges->add($privilege);
//    }
//
//    public function removePrivilege(PrivilegeInterface $privilege) : void
//    {
//        $this->privileges->removeElement($privilege);
//    }
    public function getPrivileges() : Collection
    {
        return $this->privileges;
    }

    public function addPrivilege(PrivilegeInterface $privilege) : void
    {
        $this->privileges->add($privilege);
    }

    public function hasPrivilege(PrivilegeInterface $privilege) : bool
    {
        return $this->privileges->contains($privilege);
    }

    public function removePrivilege(PrivilegeInterface $privilege) : void
    {
        $this->privileges->removeElement($privilege);
    }

    /** Fonctions magiques ********************************************************************************************/

Loading