Commit 30e12155 authored by Thomas Hamel's avatar Thomas Hamel
Browse files

ajout d'un privilège pour l'ajout de domaines HAL

parent 5b016912
Loading
Loading
Loading
Loading
+30 −0
Changes for doc/release-notes/8.1.0/03_domaine_hal.sql: 30 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -111,3 +111,33 @@ CREATE TABLE IF NOT EXISTS public.domaine_hal_these
    these_id   bigint NOT NULL,
    domaine_id bigint NOT NULL
);

insert into PRIVILEGE(ID, CATEGORIE_ID, CODE, LIBELLE, ORDRE)
with d(ordre, code, lib) as (
    select 3100, 'modification-domaines-hal-these', 'Modifier les domaines HAL de sa thèse'
)
select nextval('privilege_id_seq'), cp.id, d.code, d.lib, d.ordre
from d join CATEGORIE_PRIVILEGE cp on cp.CODE = 'these';

INSERT INTO PROFIL_PRIVILEGE (PRIVILEGE_ID, PROFIL_ID)
with data(categ, priv) as (select 'these', 'modification-domaines-hal-these')
select p.id as PRIVILEGE_ID, profil.id as PROFIL_ID
from data
         join PROFIL on profil.ROLE_ID in (
                                           'ADMIN_TECH',
                                           'BDD',
                                           'GEST_ED',
                                           'DOCTORANT'

    )
         join CATEGORIE_PRIVILEGE cp on cp.CODE = data.categ
         join 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
+15 −7
Changes for module/Depot/view/depot/depot/partial/description.phtml: 15 added lines, 7 removed lines.
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@

use Application\Entity\Db\DomaineHal;
use Depot\Entity\Db\MetadonneeThese;
use Doctrine\ORM\PersistentCollection;
use These\Entity\Db\These;
use Depot\Filter\MotsClesFormatter;

@@ -39,14 +40,21 @@ $langueAutreTitre = function () use ($metadonnee) {
            <dd><?php echo $motsClesFormatter->filter($metadonnee->getMotsClesLibresAnglais()) ?: "(Non renseignés)" ?></dd>
            <dt>Domaine(s) HAL</dt>
            <dd><?php
                $domaines = [];
                foreach ($these->getDomainesHal() as $domaineHal) {
                    /** @var DomaineHal $domaineHal */
                    $domaines[] = $domaineHal->getFrDomainS() . " (<i>" . $domaineHal->getEnDomainS() . "</i>)";
                }
                echo implode(' <br> ', $domaines);
                echo empty($domaines) ? "(Non renseignés)" : null;
                if ($these->getDomainesHal() instanceof PersistentCollection && $these->getDomainesHal()->isEmpty()){ ?>
                    <em> Aucun domaine HAL de renseigné </em><br>
                <?php }else{ ?>
                <ul>
                    <?php foreach($these->getDomainesHal() as $domaine){ ?>
                        <li>
                            <?php
                                /** @var DomaineHal $domaine */
                                echo $domaine->getFrDomainS();
                            ?>
                            (<i><?= $domaine->getEnDomainS() ?>)</i>
                        </li>
                    <?php } ?>
                </ul>
                <?php } ?>
            </dd>
        </dl>
    </div>
+1 −1
Changes for module/Formation/src/Formation/Controller/EnqueteQuestionController.php: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -308,7 +308,7 @@ class EnqueteQuestionController extends AbstractController {
        foreach ($reponses as $reponse) $dictionnaireReponse[$reponse->getQuestion()->getId()] = $reponse;
        $enquete = new ArrayCollection();
        foreach ($dictionnaireQuestion as $id => $question) {
            $reponse = $dictionnaireReponse[$id];
            $reponse = $dictionnaireReponse[$id] ?? null;
            if ($reponse === null) {
                $reponse = new EnqueteReponse();
                $reponse->setInscription($inscription);
+4 −3
Changes for module/These/config/others/domaine-hal.config.php: 4 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -11,6 +11,7 @@ use These\Form\DomaineHalSaisie\Fieldset\DomaineHalFieldset;
use These\Form\DomaineHalSaisie\Fieldset\DomaineHalFieldsetFactory;
use These\Form\DomaineHalSaisie\Fieldset\DomaineHalHydrator;
use These\Form\DomaineHalSaisie\Fieldset\DomaineHalHydratorFactory;
use These\Provider\Privilege\ThesePrivileges;
use UnicaenAuth\Guard\PrivilegeController;
use UnicaenAuth\Provider\Rule\PrivilegeRuleProvider;

@@ -23,9 +24,9 @@ return [
                    'action' => [
                        'saisie-domaine-hal',
                    ],
//                    'privileges' => [
//                        AdmissionPrivileges::ADMISSION_CONVENTION_FORMATION_MODIFIER,
//                    ],
                    'privileges' => [
                        ThesePrivileges::THESE_MODIFICATION_DOMAINES_HAL_THESE,
                    ],
                ]
            ],
        ],
+1 −0
Changes for module/These/src/These/Provider/Privilege/ThesePrivileges.php: 1 added line, 0 removed lines.
Original line number Diff line number Diff line
@@ -36,4 +36,5 @@ class ThesePrivileges extends Privileges
    const THESE_CONSULTATION_SES_THESES             = 'these-consultation-de-ses-theses';
    const THESE_MODIFICATION_TOUTES_THESES          = 'these-modification-de-toutes-les-theses';
    const THESE_MODIFICATION_SES_THESES             = 'these-modification-de-ses-theses';
    const THESE_MODIFICATION_DOMAINES_HAL_THESE     = 'these-modification-domaines-hal-these';
}
 No newline at end of file
Loading