Commit fd36ad29 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 3592829c
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -2,15 +2,15 @@

namespace UnicaenPrivilege\Assertion\Perimetre;

use Laminas\Permissions\Acl\Exception\InvalidArgumentException;
use Laminas\Permissions\Acl\Resource\ResourceInterface;
use Laminas\Router\RouteMatch;
use UnicaenApp\Service\EntityManagerAwareTrait;
use UnicaenPrivilege\Assertion\AbstractAssertion;
use UnicaenPrivilege\Entity\Db\PerimetreInterface;
use UnicaenPrivilege\Entity\Db\PerimetreUserRoleInterface;
use UnicaenPrivilege\Provider\Perimetre\PerimetreProviderAwareTrait;
use UnicaenUtilisateur\Entity\Db\UserInterface;
use UnicaenUtilisateur\Entity\Db\UserRolePerimetreInterface;
use Laminas\Permissions\Acl\Exception\InvalidArgumentException;
use Laminas\Permissions\Acl\Resource\ResourceInterface;
use Laminas\Router\RouteMatch;

abstract class AbstractPerimetreAssertion extends AbstractAssertion
{
@@ -85,11 +85,11 @@ abstract class AbstractPerimetreAssertion extends AbstractAssertion
            foreach ($this->perimetres as $perimetre) {
                // récupération des droits de l'utilisateur pour le rôle et le périmètre
                $userRights = $fullRole->getPerimetres()->filter(function ($p) use ($perimetre) {
                    /** @var UserRolePerimetreInterface $p */
                    /** @var PerimetreUserRoleInterface $p */
                    return $p->getPerimetre()->getCategorie()->getCode() == $perimetre;
                });

                /** @var UserRolePerimetreInterface $right */
                /** @var PerimetreUserRoleInterface $right */
                foreach($userRights as $right) {
                    // vérification de la règle
                    switch($type) {
+4 −5
Original line number Diff line number Diff line
@@ -4,7 +4,6 @@ namespace UnicaenPrivilege\Entity\Db;

use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use UnicaenUtilisateur\Entity\Db\UserRolePerimetreInterface;

abstract class AbstractPerimetre implements PerimetreInterface
{
@@ -198,10 +197,10 @@ abstract class AbstractPerimetre implements PerimetreInterface
    /**
     * Add roleUser.
     *
     * @param UserRolePerimetreInterface $roleUser
     * @param PerimetreUserRoleInterface $roleUser
     * @return PerimetreInterface
     */
    public function addRoleUser(UserRolePerimetreInterface $roleUser)
    public function addRoleUser(PerimetreUserRoleInterface $roleUser)
    {
        $this->roleUsers->add($perimetre);

@@ -211,10 +210,10 @@ abstract class AbstractPerimetre implements PerimetreInterface
    /**
     * Remove roleUser.
     *
     * @param UserRolePerimetreInterface $roleUser
     * @param PerimetreUserRoleInterface $roleUser
     * @return PerimetreInterface
     */
    public function removeRoleUser(UserRolePerimetreInterface $roleUser)
    public function removeRoleUser(PerimetreUserRoleInterface $roleUser)
    {
        $this->roleUsers->removeElement($roleUser);

+80 −0
Original line number Diff line number Diff line
<?php

namespace UnicaenPrivilege\Entity\Db;

use UnicaenUtilisateur\Entity\Db\UserRoleInterface;

abstract class AbstractPerimetreUserRole implements PerimetreUserRoleInterface
{
    /**
     * @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 PerimetreUserRoleInterface
     */
    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 PerimetreUserRoleInterface
     */
    public function setPerimetre(PerimetreInterface $perimetre)
    {
        $this->perimetre = $perimetre;

        return $this;
    }

    /**
     * Get perimetre.
     *
     * @return PerimetreInterface
     */
    public function getPerimetre()
    {
        return $this->perimetre;
    }
}
+1 −1
Original line number Diff line number Diff line
@@ -22,7 +22,7 @@
        <field name="description" type="string" column="DESCRIPTION" length="1024" nullable="true"/>
        <field name="ordre" type="integer" column="ORDRE" nullable="false"/>

        <one-to-many field="roleUsers" target-entity="UnicaenUtilisateur\Entity\Db\UserRolePerimetre" mapped-by="perimetre">
        <one-to-many field="roleUsers" target-entity="UnicaenPrivilege\Entity\Db\PerimetreUserRole" mapped-by="perimetre">
            <cascade>
                <cascade-persist/>
                <cascade-remove/>
+35 −0
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="UnicaenPrivilege\Entity\Db\PerimetreUserRole" table="UNICAEN_PRIVILEGE_PERIMETRE_USER_ROLE_LINKER">

        <indexes>
            <index name="ix_privilege_perimetre_user_role_linker_perimetre" columns="PERIMETRE_ID"/>
            <index name="ix_privilege_perimetre_user_role_linker_user_role" columns="USER_ROLE_ID"/>
        </indexes>

        <unique-constraints>
            <unique-constraint name="un_privilege_perimetre_user_role_linker" columns="PERIMETRE_ID,USER_ROLE_ID"/>
        </unique-constraints>

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

        <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>

        <many-to-one field="userRole" target-entity="UnicaenUtilisateur\Entity\Db\UserRole" inversed-by="perimetres">
            <join-columns>
                <join-column name="USER_ROLE_ID" referenced-column-name="ID"/>
            </join-columns>
        </many-to-one>


    </entity>
</doctrine-mapping>
Loading