Commit 454dc4c7 authored by Antony Le Courtes's avatar Antony Le Courtes
Browse files

Ajout d'un privilège d'edition avancées des missions, pour avoir le droit de...

Ajout d'un privilège d'edition avancées des missions, pour avoir le droit de changer le taux et le taux majoré.
parent 4b92e810
Loading
Loading
Loading
Loading
+1 −0
Changes for data/privileges.php: 1 added line, 0 removed lines.
Original line number Diff line number Diff line
@@ -152,6 +152,7 @@ return [
            'visualisation'          => 'Visualisation',
            'visualisation-realise'  => 'Visualisation des heures réalisées',
            'edition'                => 'Edition',
            'edition-avancee'        => 'Edition avancée',
            'validation'             => 'Validation',
            'devalidation'           => 'Dévalidation',
            'autovalidation'         => 'Autovalidation',
+3 −1
Changes for module/Application/src/Provider/Privilege/Privileges.php: 3 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -9,7 +9,8 @@ namespace Application\Provider\Privilege;
 *
 * @author UnicaenCode
 */
class Privileges extends \UnicaenPrivilege\Provider\Privilege\Privileges {
class Privileges extends \UnicaenPrivilege\Provider\Privilege\Privileges
{

    const AGREMENT_CONSEIL_ACADEMIQUE_EDITION                  = 'agrement-conseil-academique-edition';
    const AGREMENT_CONSEIL_ACADEMIQUE_SUPPRESSION              = 'agrement-conseil-academique-suppression';
@@ -181,6 +182,7 @@ class Privileges extends \UnicaenPrivilege\Provider\Privilege\Privileges {
    const MISSION_DEVALIDATION                                 = 'mission-devalidation';
    const MISSION_DEVALIDATION_REALISE                         = 'mission-devalidation-realise';
    const MISSION_EDITION                                      = 'mission-edition';
    const MISSION_EDITION_AVANCEE                              = 'mission-edition-avancee';
    const MISSION_EDITION_CENTRE_COUT_TYPE                     = 'mission-edition-centre-cout-type';
    const MISSION_EDITION_REALISE                              = 'mission-edition-realise';
    const MISSION_EDITION_TYPE                                 = 'mission-edition-type';
+21 −0
Changes for module/Mission/src/Controller/SaisieController.php: 21 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -11,6 +11,7 @@ use Intervenant\Entity\Db\Intervenant;
use Laminas\View\Model\JsonModel;
use Laminas\View\Model\ViewModel;
use Mission\Entity\Db\Mission;
use Mission\Entity\Db\TypeMission;
use Mission\Entity\Db\VolumeHoraireMission;
use Mission\Form\MissionFormAwareTrait;
use Mission\Form\MissionSuiviFormAwareTrait;
@@ -145,10 +146,30 @@ class SaisieController extends AbstractController

        $form = $this->getFormMission();

        $canEditAvancee = $this->isAllowed(Privileges::getResourceId(Privileges::MISSION_EDITION_AVANCEE));

        if ($mission->isValide()){
            $form->editValide();
        }

        if (!$canEditAvancee) {
            $form->editSimple();
            // Lors d'un ajout, les champs désactivés ne sont pas transmis par le navigateur.
            // On impose donc côté serveur les taux définis par le type de mission sélectionné.
            if ($this->getRequest()->isPost() && !$mission->getId()) {
                $typeMissionId = $this->getRequest()->getPost('typeMission');
                $typeMission   = $typeMissionId
                    ? $this->em()->find(TypeMission::class, $typeMissionId)
                    : null;

                if ($typeMission) {
                    $mission->setTauxRemu($typeMission->getTauxRemu());
                }
            }
        }



        if ($this->getServiceContext()->getStructure()) {
            if (!$mission->getStructure()){
                $mission->setStructure($this->getServiceContext()->getStructure());
+10 −0
Changes for module/Mission/src/Form/MissionForm.php: 10 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -151,6 +151,16 @@ class MissionForm extends AbstractForm
        return $this;
    }

    public function editSimple(): self
    {
        $elementsAvances = ['tauxRemu', 'tauxRemuMajore'];

        // On met en lecture seule la gestion des taux si on a pas le privilege d'édition avancee
        $this->readOnly(true, $elementsAvances);

        return $this;
    }



    public function isValide(): bool