Commit 46f463f3 authored by Thomas Hamel's avatar Thomas Hamel
Browse files

FIX : menu intervention de soutenance était invisible, amélioration UX présoutenance

parent 08951bec
Loading
Loading
Loading
Loading
+25 −0
Changes for doc/release-notes/module_hdr/05_others.sql: 25 added lines, 0 removed lines.
Original line number Diff line number Diff line
INSERT INTO public.unicaen_privilege_privilege (categorie_id, code, libelle, ordre)
VALUES ((SELECT id FROM unicaen_privilege_categorie WHERE code = 'these'), 'donner-resultat', 'Attribution du résultat de la thèse saisie dans SyGAL suite à la soutenance', 3060);

--
-- Accord de privilèges à des profils.
--
INSERT INTO PROFIL_PRIVILEGE (PRIVILEGE_ID, PROFIL_ID)
with data(categ, priv) as (select 'these', 'donner-resultat')
select p.id as PRIVILEGE_ID, profil.id as PROFIL_ID
from data
         join PROFIL on profil.ROLE_ID in (
                                           'ADMIN_TECH',
                                           'BDD'
    )
         join unicaen_privilege_categorie cp on cp.CODE = data.categ
         join unicaen_privilege_privilege p on p.CATEGORIE_ID = cp.id and p.code = data.priv
where not exists (select * from PROFIL_PRIVILEGE where PRIVILEGE_ID = p.id and PROFIL_ID = profil.id);

insert into ROLE_PRIVILEGE (ROLE_ID, PRIVILEGE_ID)
select p2r.ROLE_ID, pp.PRIVILEGE_ID
from PROFIL_TO_ROLE p2r
         join profil pr on pr.id = p2r.PROFIL_ID
         join PROFIL_PRIVILEGE pp on pp.PROFIL_ID = pr.id
where not exists (select * from role_privilege where role_id = p2r.role_id and privilege_id = pp.privilege_id)
;
 No newline at end of file
+0 −5
Changes for module/Soutenance/config/others/intervention.config.php: 0 added lines, 5 removed lines.
Original line number Diff line number Diff line
@@ -86,13 +86,8 @@ return [
                                        'order' => 250,
                                        'resource' => InterventionPrivileges::getResourceId(InterventionPrivileges::INTERVENTION_AFFICHER),
                                        'withtarget' => true,
//                                        'paramsInject' => [
//                                            'these',
//                                        ],
                                        'paramsInject' => [
                                            'type',
                                            'these',
                                            'id',
                                        ],
                                    ],
                                ],
+5 −1
Changes for module/Soutenance/config/others/presoutenance.config.php: 5 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ use Soutenance\Provider\Privilege\EngagementImpartialitePrivileges;
use Soutenance\Provider\Privilege\PresoutenancePrivileges;
use Soutenance\Service\Adresse\AdresseService;
use Soutenance\Service\Adresse\AdresseServiceFactory;
use These\Provider\Privilege\ThesePrivileges;
use UnicaenPrivilege\Guard\PrivilegeController;

return [
@@ -67,7 +68,10 @@ return [
                    'action' => [
                        'deliberation-jury',
                    ],
                    'privileges' => HDRPrivileges::HDR_DONNER_RESULTAT,
                    'privileges' => [
                        HDRPrivileges::HDR_DONNER_RESULTAT,
                        ThesePrivileges::THESE_DONNER_RESULTAT
                    ],
                    'assertion' => PresoutenanceAssertion::class,
                ],
                [
+10 −0
Changes for module/Soutenance/config/others/presoutenanceThese.config.php: 10 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -9,6 +9,7 @@ use Soutenance\Controller\These\Presoutenance\PresoutenanceTheseControllerFactor
use Soutenance\Provider\Privilege\AvisSoutenancePrivileges;
use Soutenance\Provider\Privilege\EngagementImpartialitePrivileges;
use Soutenance\Provider\Privilege\PresoutenancePrivileges;
use These\Provider\Privilege\ThesePrivileges;
use UnicaenPrivilege\Guard\PrivilegeController;
use UnicaenPrivilege\Provider\Rule\PrivilegeRuleProvider;

@@ -27,6 +28,7 @@ return [
                            PresoutenancePrivileges::PRESOUTENANCE_ASSOCIATION_MEMBRE_INDIVIDU,
                            PresoutenancePrivileges::PRESOUTENANCE_DATE_RETOUR_MODIFICATION,
                            PresoutenancePrivileges::PRESOUTENANCE_PRESOUTENANCE_VISUALISATION,
                            ThesePrivileges::THESE_DONNER_RESULTAT
                        ],
                        'resources' => ['These'],
                        'assertion' => PresoutenanceAssertion::class,
@@ -67,6 +69,14 @@ return [
                    ],
                    'privileges' => PresoutenancePrivileges::PRESOUTENANCE_DATE_RETOUR_MODIFICATION,
                ],
                [
                    'controller' => PresoutenanceTheseController::class,
                    'action' => [
                        'deliberation-jury',
                    ],
                    'privileges' => ThesePrivileges::THESE_DONNER_RESULTAT,
                    'assertion' => PresoutenanceAssertion::class,
                ],
                [
                    'controller' => PresoutenanceTheseController::class,
                    'action' => [
+5 −2
Changes for module/Soutenance/src/Soutenance/Assertion/PresoutenanceAssertion.php: 5 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ use Soutenance\Entity\Proposition;
use Soutenance\Entity\PropositionHDR;
use Soutenance\Provider\Privilege\PresoutenancePrivileges;
use These\Entity\Db\These;
use These\Provider\Privilege\ThesePrivileges;
use These\Service\These\TheseServiceAwareTrait;
use UnicaenApp\Service\MessageCollectorAwareInterface;
use UnicaenApp\Service\MessageCollectorAwareTrait;
@@ -77,9 +78,11 @@ class PresoutenanceAssertion extends AbstractAssertion
                    $role = $this->userContextService->getSelectedIdentityRole();
                    return (($role->getCode() === Role::CODE_BDD || Role::CODE_GEST_HDR) && $role->getStructure() === $this->entity->getEtablissement()->getStructure());
                case HDRPrivileges::HDR_DONNER_RESULTAT:
                case ThesePrivileges::THESE_DONNER_RESULTAT:
                    /** @var Proposition $p */
                    $proposition = $this->entity->getCurrentProposition();
                    if($proposition instanceof PropositionHDR && $proposition->getEtat()->getCode() !== Etat::VALIDEE) return false;
                    $estSaisieDansSygal = !$proposition->getObject()->getSource()->getImportable();
                    if(!$estSaisieDansSygal || $proposition->getEtat()->getCode() !== Etat::VALIDEE) return false;
            }


@@ -127,7 +130,7 @@ class PresoutenanceAssertion extends AbstractAssertion
                case 'deliberation-jury':
                    /** @var Proposition $p */
                    $proposition = $this->entity->getCurrentProposition();
                    if($proposition instanceof PropositionHDR && $proposition->getEtat()->getCode() !== Etat::VALIDEE) return false;
                    if($proposition->getEtat()->getCode() !== Etat::VALIDEE) return false;
                    break;
            }
        } catch (FailedAssertionException $e) {
Loading