Commit 2fd9325a authored by David Surville's avatar David Surville
Browse files

Déplacement de l'ajout de périmètre à un utilisateur et un rôle dans la librairie unicaen-privilege

parent 3a783208
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -254,12 +254,13 @@ class UtilisateurController extends AbstractActionController
        $utilisateur = $this->userService->getRequestedUser($this);
        $roleId = $this->params()->fromRoute('role');
        $role = $this->roleService->find($roleId);
        $userRole = $this->userService->findUserRole($utilisateur, $role) ?: $this->userService->addRole($utilisateur, $role);
        $perimetreId = $this->params()->fromRoute('perimetre');
        $perimetre = $this->perimetreService->find($perimetreId);

        if ($utilisateur !== null && $role !== null && $perimetre !== null) {
        if ($userRole !== null && $perimetre !== null) {
            try {
                $this->userService->addPerimetre($utilisateur, $role, $perimetre);
                $this->perimetreService->addUserRole($perimetre, $userRole);
                $result = true;
            } catch (RuntimeException $e) {
                $result = false;
@@ -494,12 +495,13 @@ class UtilisateurController extends AbstractActionController
        $utilisateur = $this->userService->getRequestedUser($this);
        $roleId = $this->params()->fromRoute('role');
        $role = $this->roleService->find($roleId);
        $userRole = $this->userService->findUserRole($utilisateur, $role);
        $perimetreId = $this->params()->fromRoute('perimetre');
        $perimetre = $this->perimetreService->find($perimetreId);

        if ($utilisateur !== null && $role !== null && $perimetre !== null) {
        if ($userRole !== null && $perimetre !== null) {
            try {
                $this->userService->removePerimetre($utilisateur, $role, $perimetre);
                $this->perimetreService->removeUserRole($perimetre, $userRole);
                $result = true;
            } catch (RuntimeException $e) {
                $result = false;
+5 −4
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@ use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use UnicaenPrivilege\Entity\Db\PerimetreCategorieInterface;
use UnicaenPrivilege\Entity\Db\PerimetreInterface;
use UnicaenPrivilege\Entity\Db\PerimetreUserRoleInterface;

abstract class AbstractUserRole implements UserRoleInterface
{
@@ -97,10 +98,10 @@ abstract class AbstractUserRole implements UserRoleInterface
    /**
     * Add role.
     *
     * @param UserRolePerimetreInterface $perimetre
     * @param PerimetreUserRoleInterface $perimetre
     * @return UserRoleInterface
     */
    public function addPerimetre(UserRolePerimetreInterface $perimetre)
    public function addPerimetre(PerimetreUserRoleInterface $perimetre)
    {
        $this->perimetres->add($perimetre);
        $perimetre->setUserRole($this);
@@ -111,10 +112,10 @@ abstract class AbstractUserRole implements UserRoleInterface
    /**
     * Remove role.
     *
     * @param UserRolePerimetreInterface $perimetre
     * @param PerimetreUserRoleInterface $perimetre
     * @return UserRoleInterface
     */
    public function removePerimetre(UserRolePerimetreInterface $perimetre)
    public function removePerimetre(PerimetreUserRoleInterface $perimetre)
    {
        $this->perimetres->removeElement($role);
        $perimetre->setUserRole(null);
+0 −80
Original line number Diff line number Diff line
<?php

namespace UnicaenUtilisateur\Entity\Db;

use UnicaenPrivilege\Entity\Db\PerimetreInterface;

abstract class AbstractUserRolePerimetre implements UserRolePerimetreInterface
{
    /**
     * @var int
     */
    protected $id;

    /**
     * @var UserRoleInterface
     */
    protected $userRole;

    /**
     * @var PerimetreInterface
     */
    protected $perimetre;


    /**
     * Get id.
     *
     * @return int
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set userRole.
     *
     * @param UserRoleInterface $userRole
     * @return UserRolePerimetreInterface
     */
    public function setUserRole(UserRoleInterface $userRole)
    {
        $this->userRole = $userRole;

        return $this;
    }

    /**
     * Get userRole.
     *
     * @return UserRoleInterface
     */
    public function getUserRole()
    {
        return $this->userRole;
    }

    /**
     * Set perimetre.
     *
     * @param PerimetreInterface $perimetre
     * @return UserRolePerimetreInterface
     */
    public function setPerimetre(PerimetreInterface $perimetre)
    {
        $this->perimetre = $perimetre;

        return $this;
    }

    /**
     * Get perimetre.
     *
     * @return PerimetreInterface
     */
    public function getPerimetre()
    {
        return $this->perimetre;
    }
}
+7 −7
Original line number Diff line number Diff line
@@ -2,25 +2,25 @@
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
    <entity name="UnicaenUtilisateur\Entity\Db\UserRole" table="UNICAEN_UTILISATEUR_ROLE_LINKER">
    <entity name="UnicaenUtilisateur\Entity\Db\UserRole" table="UNICAEN_UTILISATEUR_USER_ROLE_LINKER">

        <indexes>
            <index name="ix_unicaen_utilisateur_role_linker_utilisateur" columns="UTILISATEUR_ID"/>
            <index name="ix_unicaen_utilisateur_role_linker_role" columns="ROLE_ID"/>
            <index name="ix_utilisateur_user_role_linker_user" columns="USER_ID"/>
            <index name="ix_utilisateur_user_role_linker_role" columns="ROLE_ID"/>
        </indexes>

        <unique-constraints>
            <unique-constraint name="un_unicaen_utilisateur_role_linker" columns="UTILISATEUR_ID,ROLE_ID"/>
            <unique-constraint name="un_utilisateur_user_role_linker" columns="USER_ID,ROLE_ID"/>
        </unique-constraints>

        <id name="id" type="integer" column="ID">
            <generator strategy="AUTO"/>
            <sequence-generator sequence-name="UNICAEN_UTILISATEUR_ROLE_LINKER_ID_seq" allocation-size="1" initial-value="1"/>
            <sequence-generator sequence-name="UNICAEN_UTILISATEUR_USER_ROLE_LINKER_ID_seq" allocation-size="1" initial-value="1"/>
        </id>

        <many-to-one field="user" target-entity="UnicaenUtilisateur\Entity\Db\User">
            <join-columns>
                <join-column name="UTILISATEUR_ID" referenced-column-name="ID"/>
                <join-column name="USER_ID" referenced-column-name="ID"/>
            </join-columns>
        </many-to-one>
        <many-to-one field="role" target-entity="UnicaenUtilisateur\Entity\Db\Role">
@@ -29,7 +29,7 @@
            </join-columns>
        </many-to-one>

        <one-to-many field="perimetres" target-entity="UnicaenUtilisateur\Entity\Db\UserRolePerimetre" mapped-by="userRole">
        <one-to-many field="perimetres" target-entity="UnicaenPrivilege\Entity\Db\PerimetreUserRole" mapped-by="userRole">
            <cascade>
                <cascade-persist/>
                <cascade-remove/>
+0 −34
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
    <entity name="UnicaenUtilisateur\Entity\Db\UserRolePerimetre" table="UNICAEN_UTILISATEUR_ROLE_PERIMETRE_LINKER">

        <indexes>
            <index name="ix_unicaen_utilisateur_role_perimetre_linker_role" columns="UTILISATEUR_ROLE_ID"/>
            <index name="ix_unicaen_utilisateur_role_perimetre_linker_perimetre_categ" columns="PERIMETRE_CATEGORIE_ID"/>
            <index name="ix_unicaen_utilisateur_role_perimetre_linker_perimetre" columns="PERIMETRE_ID"/>
        </indexes>

        <unique-constraints>
            <unique-constraint name="un_unicaen_utilisateur_role_perimetre_linker" columns="UTILISATEUR_ROLE_ID,PERIMETRE_CATEGORIE_ID,PERIMETRE_ID"/>
        </unique-constraints>

        <id name="id" type="integer" column="ID">
            <generator strategy="AUTO"/>
            <sequence-generator sequence-name="UNICAEN_UTILISATEUR_ROLE_PERIMETRE_LINKER_ID_seq" allocation-size="1" initial-value="1"/>
        </id>

        <many-to-one field="userRole" target-entity="UnicaenUtilisateur\Entity\Db\UserRole">
            <join-columns>
                <join-column name="UTILISATEUR_ROLE_ID" referenced-column-name="ID"/>
            </join-columns>
        </many-to-one>
        <many-to-one field="perimetre" target-entity="UnicaenPrivilege\Entity\Db\Perimetre" inversed-by="roleUsers">
            <join-columns>
                <join-column name="PERIMETRE_ID" referenced-column-name="ID"/>
            </join-columns>
        </many-to-one>

    </entity>
</doctrine-mapping>
Loading