Commit e99e617b authored by Laurent Lecluse's avatar Laurent Lecluse
Browse files

VHM prév Ok

parent fc6d146a
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -136,6 +136,15 @@ return [
            'resources' => 'Mission',
            'assertion' => Assertion\SaisieAssertion::class,
        ],
        [
            'privileges' => [
                Privileges::MISSION_EDITION,
                Privileges::MISSION_VALIDATION,
                Privileges::MISSION_DEVALIDATION
            ],
            'resources' => 'VolumeHoraireMission',
            'assertion' => Assertion\SaisieAssertion::class,
        ],
    ],

    'services' => [
+51 −0
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@ use Application\Acl\Role;
use Application\Entity\Db\Structure;
use Application\Provider\Privilege\Privileges;
use Mission\Entity\Db\Mission;
use Mission\Entity\Db\VolumeHoraireMission;
use UnicaenPrivilege\Assertion\AbstractAssertion;
use Laminas\Permissions\Acl\Resource\ResourceInterface;

@@ -40,6 +41,17 @@ class SaisieAssertion extends AbstractAssertion
                        return $this->assertMissionDevalidation($role, $entity);
                }
                break;

            case $entity instanceof VolumeHoraireMission:
                switch ($privilege) {
                    case Privileges::MISSION_EDITION: // Attention à bien avoir généré le fournisseur de privilèges si vous utilisez la gestion des privilèges d'UnicaenAuth
                        return $this->assertVolumeHoraireEdition($role, $entity);
                    case Privileges::MISSION_VALIDATION:
                        return $this->assertVolumeHoraireValidation($role, $entity);
                    case Privileges::MISSION_DEVALIDATION:
                        return $this->assertVolumeHoraireDevalidation($role, $entity);
                }
                break;
        }

        return true;
@@ -77,6 +89,45 @@ class SaisieAssertion extends AbstractAssertion



    protected function assertVolumeHoraireEdition(Role $role, VolumeHoraireMission $vhm)
    {
        return $this->asserts([
            $vhm->canEdit(),
            $this->assertVolumeHoraire($role, $vhm),
        ]);
    }



    protected function assertVolumeHoraireValidation(Role $role, VolumeHoraireMission $vhm)
    {
        return $this->asserts([
            $vhm->canValider(),
            $this->assertVolumeHoraire($role, $vhm),
        ]);
    }



    protected function assertVolumeHoraireDevalidation(Role $role, VolumeHoraireMission $vhm)
    {
        return $this->asserts([
            $vhm->canDevalider(),
            $this->assertVolumeHoraire($role, $vhm),
        ]);
    }



    protected function assertVolumeHoraire(Role $role, VolumeHoraireMission $vhm)
    {
        return $this->asserts([
            $this->assertMission($role, $vhm->getMission())
        ]);
    }



    protected function assertMission(Role $role, Mission $mission)
    {
        return $this->asserts([
+4 −1
Original line number Diff line number Diff line
@@ -64,7 +64,10 @@ class SaisieController extends AbstractController
                return $extracted;
            },
            '/volumesHorairesPrevus' => function ($original, $extracted) {

                //$extracted['canSaisie'] = $this->isAllowed($original, Privileges::MISSION_EDITION);
                $extracted['canValider'] = $this->isAllowed($original, Privileges::MISSION_VALIDATION);
                $extracted['canDevalider'] = $this->isAllowed($original, Privileges::MISSION_DEVALIDATION);
                $extracted['canSupprimer'] = $this->isAllowed($original, Privileges::MISSION_EDITION);

                return $extracted;
            },
+10 −1
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@ use Application\Entity\Db\Traits\ContratAwareTrait;
use Application\Entity\Db\Validation;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Laminas\Permissions\Acl\Resource\ResourceInterface;
use Service\Entity\Db\TypeVolumeHoraireAwareTrait;
use UnicaenApp\Entity\HistoriqueAwareInterface;
use UnicaenApp\Entity\HistoriqueAwareTrait;
@@ -13,7 +14,7 @@ use UnicaenImport\Entity\Db\Interfaces\ImportAwareInterface;
use UnicaenImport\Entity\Db\Traits\ImportAwareTrait;
use UnicaenVue\Axios\AxiosExtractorInterface;

class VolumeHoraireMission implements HistoriqueAwareInterface, ImportAwareInterface, AxiosExtractorInterface
class VolumeHoraireMission implements HistoriqueAwareInterface, ImportAwareInterface, AxiosExtractorInterface, ResourceInterface
{
    use HistoriqueAwareTrait;
    use ImportAwareTrait;
@@ -47,6 +48,14 @@ class VolumeHoraireMission implements HistoriqueAwareInterface, ImportAwareInter
    }



    public function getResourceId()
    {
        return 'VolumeHoraireMission';
    }



    public function axiosDefinition(): array
    {
        if ($this->getTypeVolumeHoraire()->isPrevu()) {