Commit 7d74101d authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

FIX] Procédure privilege__update_role_privilege() en bdd : abandon des...

FIX] Procédure privilege__update_role_privilege() en bdd : abandon des retraits de privilèges en fonction des profils car des rôles ne sont associés à aucun profil.
parent d48912fd
Loading
Loading
Loading
Loading
+1 −0
Changes for CHANGELOG.md: 1 added line, 0 removed lines.
Original line number Diff line number Diff line
@@ -12,6 +12,7 @@ Journal des modifications
- Module Admission : Export vers Pégase -> export seulement des thèses dont l'individu n'est pas encore doctorant
- Possibilité pour le futur doctorant de se créer un compte utilisateur local pour saisir un dossier d'admission.
- Etablissements : 3 saisies dédiées selon le type d'étab (d'inscription, CED, autre) ; amélioration du listing des établissements.
- [FIX] Procédure privilege__update_role_privilege() en bdd : abandon des retraits de privilèges en fonction des profils car des rôles ne sont associés à aucun profil.
- [FIX] Recherche textuelle d'individu : la prise en compte de chacun des termes avait été sabotée !
- [FIX] Le bouton de recherche/liaison de notice IdRef ne fonctionnait pas dans une modale (unicaen/idref 1.0.0 requis).
- [FIX] Synchro : plantage lors de la génération du diff (unicaen/db-import 6.1.3 nécessaire car nouvelle plateforme Doctrine\DBAL\Platforms\PostgreSQL120Platform).
+20 −0
Changes for doc/release-notes/v8.6.0.md: 20 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -24,4 +24,24 @@ alter table individu add column apatride boolean default false not null;
-- module admission
ALTER TABLE admission_etudiant
  ALTER COLUMN adresse_cp_ville_etrangere TYPE VARCHAR(38)


CREATE or replace FUNCTION privilege__update_role_privilege() RETURNS void
  LANGUAGE plpgsql
AS $$
BEGIN
  -- création des 'role_privilege' manquants d'après le contenu de 'profil_to_role' et de 'profil_privilege'
  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
  );

  -- ATTENTION : ne pas faire de suppression des 'role_privilege' en trop d'après le contenu de 'profil_to_role' et de 'profil_privilege'
  -- parce que des rôles ne sont associés à aucun profil (ex: "Authentifié") et ces derniers se verraient retirer tous leurs privilèges !
END;
$$;
```