Commit c922cac1 authored by THEO GUILLON's avatar THEO GUILLON
Browse files

Merge branch '2.1.0' into 'master'

2.1.0

See merge request libriciel/pole-citoyens/web-DPO/web-DPO!641
parents df3fc311 a1c736e6
Pipeline #17350 passed with stage
in 2 minutes
#DATABASE
DB_HOST=web-dpo-db
DB_USERNAME=webdpo
DB_PASSWORD=webdpo
......
#DATABASE
DB_HOST=web-dpo-db
DB_USERNAME=webdpo
DB_PASSWORD=webdpo
......
#DATABASE
DB_HOST=web-dpo-db
DB_USERNAME=webdpo
DB_PASSWORD=webdpo
......
# User specific & automatically generated files #
#################################################
/vendors
/vendors/*
/composer.lock
/composer.phar
/app/Config/core.php
/app/Config/email.php
/app/Config/database.php
/app/Config/webdpo.inc
/app/Config/core.php
/app/tmp
/app/Plugin/AuthManager
/app/Plugin/Cakeflow
/app/Plugin/Database
/app/Plugin/FusionConv
/app/Plugin/LdapManager
......@@ -18,27 +14,18 @@
/app/Plugin/Postgres
/app/Plugin/Translator
/app/webroot/img/logos/logo_organisation
/app/webroot/js/bootstrap
/app/webroot/js/bootstrap-filestyle
/app/webroot/js/chosen
/app/webroot/js/components-font-awesome
/app/webroot/js/jquery
/app/webroot/js/jquery-mask-plugin
/app/webroot/js/jquery-ui
/app/webroot/js/node_modules
/app/webroot/js/seiyria-bootstrap-slider
/app/webroot/js/select2
/app/webroot/js/smalot-bootstrap-datetimepicker
/app/webroot/js/tinymce
/app/webroot/js/tinymce-i18n
/vendors
/vendors/*
/composer.phar
/build
/dist
/tags
/app/files
/app/files/modeles
/app/files/piece_joint_traitement
/app/files/registre
/app/files/connecteurs
/app/files/export
/package.json
/package-lock.json
/sonar-project.properties
/sonar-scanner-3.3.0.1492-linux
......
stages:
- static_tests
- quality
- deploy
include:
- remote: 'https://jobs.r2devops.io/0.1.0/php_security_checker.yml'
- remote: 'https://jobs.r2devops.io/0.1.1/sls_scan.yml'
- remote: 'https://jobs.r2devops.io/0.1.0/trivy_dependency.yml'
sls_scan:
before_script:
- rm -R $PWD/app/Plugin
- rm -R $PWD/app/Test
- rm -R $PWD/app/Vendor
- rm -R $PWD/docker
- rm $PWD/composer.json
- rm $PWD/composer.lock
sonarqube:
stage: quality
only:
- master
image : gitlab.libriciel.fr:4567/docker/sonar-scanner:latest
variables:
PROJECT_NAME: web-DPO
script:
- mkdir -p /var/www/${PROJECT_NAME}
- cp -rf $CI_PROJECT_DIR/* /var/www/${PROJECT_NAME}
- cd /var/www/${PROJECT_NAME}
- /sonar-scanner -Dsonar.login=$SONAR_LOGIN -Dsonar.host.url=$SONAR_HOST_URL
deploy_ftp:
stage: deploy
only:
- tags
- tags
image: ubuntu:20.04
variables:
TARBALL_NAME: web-dpo-${CI_COMMIT_REF_NAME}.tar.gz
TZ: Europe/Paris
PAYLOAD: "payload={\"text\": \"[web-DPO] Création de la version [$CI_COMMIT_REF_NAME](https://ressources.libriciel.fr/web-dpo/Package_web-dpo-${CI_COMMIT_REF_NAME}.tar.gz)\"}"
before_script:
# Install ssh-agent if not already installed
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
......@@ -45,6 +78,20 @@ deploy_ftp:
- rm composer.json
- rm composer.lock
- rm composer.phar
- rm -R docker/
- rm docker-compose.sh
- rm docker-compose.yml
- rm README-docker.md
- rm -R sls_scan_report/
- rm .env
- rm .env-dev
- cp -ra .env-dist .env
- rm .env-dist
- rm phpunit.xml
- rm sonar-project.properties
- rm -R app/Config/Schema/CreationBase/data-dev
- rm app/webroot/js/package.json
- rm app/webroot/js/package-lock.json
- mkdir /web-dpo-${CI_COMMIT_REF_NAME}
- cp -R ${PWD}/. /web-dpo-${CI_COMMIT_REF_NAME}
- tar cvzf /tmp/${TARBALL_NAME} /web-dpo-${CI_COMMIT_REF_NAME}
......@@ -58,10 +105,7 @@ deploy_ftp:
- tar cvzf /tmp/Package_${TARBALL_NAME} Package_web-dpo-${CI_COMMIT_REF_NAME}
- lftp -p 2222 -u "${RESSOURCE_LIBRICIEL_FTP_USER}","${RESSOURCE_LIBRICIEL_FTP_PASSWD}" "sftp://ressources.libriciel.fr/web-dpo" -e "put /tmp/Package_${TARBALL_NAME}; bye"
- curl -i -X POST -d "$PAYLOAD" $MATTERMOST_WEBHOOK
artifacts:
paths:
- ${TARBALL_NAME}
......@@ -3,6 +3,172 @@
Toutes les modifications apportées au projet seront documentées dans ce fichier.
Le format est basé sur le modèle [Keep a Changelog](http://keepachangelog.com/) et adhère aux principes du [Semantic Versioning](http://semver.org/).
[2.1.0] - 18-06-2021
=====
### Ajouts
- [#453](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/453)
Mise en place d'un paramètre pour savoir si l'application est en mode SAAS pour adapter l'hébergeur dans le menu "Politique de confidentialité" (RGPD)
- [#454](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/454)
Lors de la rédaction d'un traitement, il est possible à tout moment de générer le projet de traitement.
- [#454](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/454)
Mise en place d'une variable sur l'état du traitement afin de pouvoir faire une condition sur le filigrane dans le modèle.
- Ajout d'un droit permettant la génération d'un traitement en cours de rédaction
- Ajout des filtres sur les formulaires
- [#522](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/522)
Ajout d'un droit permettant l'initialisation d'un traitement par un autre profil que le DPO.
- [#477](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/477)
Sauvegarde automatique d'un formulaire toute les 10 secondes
- [#508](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/508)
Archivage d'un formulaire
- [#522](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/522)
Ajout d'un droit permettant l'initialisation d'un traitement
- [#541](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/541)
Partage d'un traitement avec les utilisateurs du même service
- [#481](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/481)
Association en masse d'un ou plusieurs services à un ou plusieurs utilisateurs.
- [#481](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/481)
Ajout de l'import d'une liste de service via un fichier CSV
- [#481](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/481)
Filtrer les services par nom
- [#481](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/481)
Dissocier un service de tous les utilisateurs
- [#528](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/528)
Masquage des informations du rédacteur dans un traitement via un paramétre dans l'entité
- [#489](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/489)
Mise en place du fil d'ariane (breadcrumb)
- [#534](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/534)
Ajout aux menus d'administration d'une entité la gestion des articles de la FAQ en tant que superadmin.
- [#480](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/480)
Ajout d'une option au registre pour la génération de l'extrait de registre au format HTML
- [#510](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/510)
Ajout de la possibilité de faire des conditions sur les champs concernant le transfert hors UE, les données sensibles,
la réalisation de l'AIPD et le dépôt de l'AIPD en annexe lors de la création d'un formulaire
- [#473](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/473)
Duplication d'un traitement, depuis le menu "Toutes les déclaration de l'entité
- Ajout d'un droit permettant la duplication d'un traitement
- [#478](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/478)
Enregistrement d'un traitement en mode "brouillon"
### Evolutions
- [#322](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/322)
Modification des mails envoyés en notification.
- [#302](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/302)
Le numéro d'enregistrement défini manuellement lors de l'insertion au registre, ne peut plus être identique au préfixe du registre.
- [#447](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/447)
Lors de la déclaration d'un sous-traitant seul la "Raison sociale" est obligatoire, pour pouvoir intégrer les sous-traitants non Français.
- [#447](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/447)
Lors de la déclaration d'un co-responsable seul la "Raison sociale" est obligatoire, pour pouvoir intégrer les co-responsables non Français.
- [#459](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/459)
Mise à jour de TinyMCE en version 5.5.1
- [#457](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/457)
Mise en place du moteur TinyMCE pour le formatage des champs "Champ d'information" et "Label" sur le formulaire.
- [#449](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/449)
Mise en place du moteur TinyMCE pour le formatage de la réponse lors d'une demande de consultation.
- [#474](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/474)
Gestion des formulaires pour toutes les entitées
- [#542](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/542)
Gestion des modèlès d'extrait de registre pour les entitées
- [#543](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/543)
Gestion des modèles de formulaire pour les entitées
- [#516](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/516)
Gestion des modèlès présentation
- [#501](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/501)
Migration de boostrap en version 4.5
- [#500](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/500)
Migration Font awesome 5
- [#519](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/519)
Modification du texte de la page de politique de confidentialité (RGPD), prise en compte du mode SAAS et installation par le client
- Lors de l'initialisation d'un traitement, le rédacteur n'est plus afficher.
- [#524](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/524)
Modification de l'e-mail pour le DPO dans l'entité. Il ne correspond plus à l'e-mail de l'utilisateur DPO
- Modification de la variable "dpo_email" par "dpo_emaildpo"
- Modification de la variable "valeur_rt_organisation_email_dpo" par "valeur_rt_organisation_emaildpo"
- [#492](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/492)
Modififcation de la police d'écriture (Ubuntu)
- Amélioration de la navigation en tant que superadmin
- [#484](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/484)
Modification de l'affichage des messages
- [#458](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/458)
Mise en place des filtres pour rechercher un traitement dans l'entité
- [#547](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/547)
Mise en place d'un paramètre pour l'identification d'un utilisateur en mode sensible à la case ou non
### Corrections
- [#302](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/302)
Système de génération du numéro d'enregistrement du traitement au registre.
- [#459](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/459)
Traduction du moteur (TinyMCE) de mise en forme du texte lors de l'ajout ou modification d'un article.
- Correction de l'espacement entre le champ de sélection et les boutons dans la modal lors de l'envoi en consultation.
- [#533](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/533)
Classement par ordre alphabétique des organisations
- [#463](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/463)
Amélioration (lenteur) lors de la sélection d'une organisation en mode multi-collectivité après la connexion lorsqu'il y a beaucoup de structure
- [#530](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/530)
Modification menu superadmin
- [#529](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/529)
Correction des conditions sur les champs radio pour le masquage du champ
- [#514](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/514)
Factorisation de la sauvegarder des fichiers sur le disque
- [#461](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/461)
Afficher dans la synthèse d'un traitement le transfert hors UE, co-responsable, sous-traitance, realisation AIPD, obligation AIPD, depot AIPD, RT externe, partage au service
- [#460](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/460)
Masquage de l'onglet "Informations complémentaires", lorsqu'il n'y a aucune information
- Mise à jour de sécurité. (salt + chiffrement)
### Suppressions
- [#515](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/515)
Suppression du paramétrage concernant l'utilisation du modèle de présentation
- [#470](https://gitlab.libriciel.fr/libriciel/pole-citoyens/web-DPO/web-DPO/-/issues/470)
Suppression du mode CAS dans le connecteur LDAP
[2.0.3] - 18-03-2021
=====
......@@ -26,6 +192,7 @@ co-responsabilité et la sous-traitance.
### Corrections
- Correction de la mise en place des conditions sur les champs radio, lors de la déclaration d'un traitement
[2.0.1] - 21-10-2020
=====
......@@ -37,6 +204,7 @@ co-responsabilité et la sous-traitance.
- Correction des droits obligatoire pour le profil "DPO" (patch sql)
- Correction sur l'erreur lors du changement d'entité via la pop-up
[2.0.0] - 18-09-2020
=====
......
# Application web-DPO v2.0.2
# Application web-DPO v2.1.0
[![Minimum PHP Version](https://img.shields.io/badge/php-7.4-8892BF.svg)](https://php.net/)
[![License](https://img.shields.io/badge/licence-AGPL%20v3-blue.svg)](http://www.cecill.info/licences/Licence_CeCILL_V2-fr.html)
[![Requires](https://img.shields.io/badge/requires-CakePHP%202.10-navy.svg)](http://book.cakephp.org/3.0/fr/index.html)
## Présentation
Vous êtes en présence des sources de l'application **web-DPO** version 2.0.2
Vous êtes en présence des sources de l'application **web-DPO** version 2.1.0
Avant toute nouvelle installation, veuillez faire une sauvegarde de la base de données ainsi que la version actuelle des
sources.
......
BEGIN;
--
-- Insertion de valeur dans la table users
--
INSERT INTO users(civilite, nom, prenom, username, password, email, createdby, created, modified) VALUES(
'M.',
'Admin',
'Super',
'superadmin',
'b89e933ad5926b14346d323e4cd17237385007ce',
'admin@test.fr',
NULL,
NOW(),
NOW()
);
--
-- Insertion de valeur dans la table liste_droits
--
......@@ -50,11 +35,6 @@ INSERT INTO etats (libelle, value, created, modified) VALUES
('Modification du traitement inséré au registre', 9, NOW(), NOW()),
('Réponse à la demande d avis', 10, NOW(), NOW());
--
-- Insertion de valeur dans la table admins
--
INSERT INTO admins (user_id, created, modified) values(1, NOW(), NOW());
--
-- Insertion des normes
--
......@@ -201,4 +181,4 @@ INSERT INTO normes (norme, numero, libelle, description, name_fichier, fichier,
('DI', '019', 'Tachygraphes embarqués dans les véhicules de transport routier', 'La dispense n° 19 concerne la mise en œuvre des traitements de données personnelles issues des tachygraphes. La réglementation européenne, qui impose l’installation de ces appareils de contrôle dans certains véhicules de transport routier, définit très précisément les conditions de leur mise en œuvre.', 'DI-019.pdf', '1513610283.pdf', NOW(), NOW()),
('DI', '020', 'Fiches individuelles de police des établissements de tourisme', 'En application d’une convention internationale et de l’article R. 611-42 du code de l''entrée et du séjour des étrangers et du droit d''asile (CESEDA), toutes les personnes louant un bien à des fins touristiques doivent faire remplir et signer par toute personne étrangère, dès son arrivée, une fiche individuelle de police, aux fins de prévention des troubles à l''ordre public, d''enquêtes judiciaires et de recherche dans l''intérêt des personnes.<br /><br />Il s’agit des hôteliers, des exploitants de villages et de maisons familiales de vacances, de résidences et villages résidentiels de tourisme, des loueurs de meublés de tourisme et de chambres d''hôtes et des exploitants de terrains de camping, de caravanage et d’autres terrains aménagés, ainsi que les particuliers, loueurs de meublé de tourisme. Toutes les personnes louant un bien à des fins touristiques, même à titre non professionnel, sont donc assujetties à cette obligation. S’agissant des personnes qui verront leurs données collectées, il s’agit de tous les étrangers au sens du CESEDA, soit toutes les personnes qui n’ont pas la nationalité française, majeures comme mineures.', 'DI-020.pdf', '1513610318.pdf', NOW(), NOW());
COMMIT;
\ No newline at end of file
COMMIT;
......@@ -21,7 +21,7 @@ BEGIN;
-- Data for Name: users; Type: TABLE DATA; Schema: public; Owner: -
--
-- INSERT INTO public.users (id, civilite, nom, prenom, username, password, password_force, email, telephonefixe, telephoneportable, notification, createdby, created, modified, ldap) VALUES (1, 'M.', 'ADMIN', 'Super', 'superadmin', 'b89e933ad5926b14346d323e4cd17237385007ce', NULL, 'admin@test.fr', NULL, NULL, false, NULL, '2020-03-02 15:06:34.039381', '2020-03-02 15:06:34.039381', false);
INSERT INTO public.users (id, civilite, nom, prenom, username, password, password_force, email, telephonefixe, telephoneportable, notification, createdby, created, modified, ldap) VALUES (1, 'M.', 'ADMIN', 'Super', 'superadmin', 'b89e933ad5926b14346d323e4cd17237385007ce', NULL, 'admin@test.fr', NULL, NULL, false, NULL, '2020-03-02 15:06:34.039381', '2020-03-02 15:06:34.039381', false);
INSERT INTO public.users (id, civilite, nom, prenom, username, password, password_force, email, telephonefixe, telephoneportable, notification, createdby, created, modified, ldap) VALUES (2, 'M.', 'GUILLON', 'Théo', 't.guillon', '8fd5df111e037a02e87dfb367e22d5f0cc387768', 4, 'theo.guillon@test.fr', NULL, NULL, false, NULL, '2020-03-02 15:18:04', '2020-03-02 15:18:04', false);
INSERT INTO public.users (id, civilite, nom, prenom, username, password, password_force, email, telephonefixe, telephoneportable, notification, createdby, created, modified, ldap) VALUES (3, 'M.', 'MASSE', 'Aurélien', 'a.masse', '8fd5df111e037a02e87dfb367e22d5f0cc387768', 4, 'a.m@test.fr', NULL, NULL, false, NULL, '2020-03-02 15:18:54', '2020-03-02 15:18:54', false);
INSERT INTO public.users (id, civilite, nom, prenom, username, password, password_force, email, telephonefixe, telephoneportable, notification, createdby, created, modified, ldap) VALUES (4, 'M.', 'MONT', 'Amélie', 'a.mont', '8fd5df111e037a02e87dfb367e22d5f0cc387768', 4, 'amelie.mont@test.fr', NULL, NULL, false, NULL, '2020-03-02 15:19:27', '2020-03-02 15:19:27', false);
......@@ -32,7 +32,7 @@ INSERT INTO public.users (id, civilite, nom, prenom, username, password, passwor
-- Data for Name: admins; Type: TABLE DATA; Schema: public; Owner: -
--
--INSERT INTO public.admins (id, user_id, created, modified) VALUES (1, 1, '2020-03-02 15:06:34.039381', '2020-03-02 15:06:34.039381');
INSERT INTO public.admins (id, user_id, created, modified) VALUES (1, 1, '2020-03-02 15:06:34.039381', '2020-03-02 15:06:34.039381');
--
......
......@@ -10,7 +10,7 @@ SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
-- SELECT pg_catalog.set_config('search_path', '', false);
SELECT pg_catalog.set_config('search_path', '', false);
SET check_function_bodies = false;
SET xmloption = content;
SET client_min_messages = warning;
......@@ -20,7 +20,7 @@ SET row_security = off;
-- Data for Name: users; Type: TABLE DATA; Schema: public; Owner: -
--
-- INSERT INTO public.users (id, civilite, nom, prenom, username, password, password_force, email, telephonefixe, telephoneportable, notification, created, modified, ldap) VALUES (1, 'M.', 'ADMIN', 'Super', 'superadmin', 'b89e933ad5926b14346d323e4cd17237385007ce', NULL, 'admin@test.fr', NULL, NULL, false, '2020-10-12 10:40:21.647086', '2020-10-12 10:40:21.647086', false);
INSERT INTO public.users (id, civilite, nom, prenom, username, password, password_force, email, telephonefixe, telephoneportable, notification, created, modified, ldap) VALUES (1, 'M.', 'ADMIN', 'Super', 'superadmin', 'b89e933ad5926b14346d323e4cd17237385007ce', NULL, 'admin@test.fr', NULL, NULL, false, '2020-10-12 10:40:21.647086', '2020-10-12 10:40:21.647086', false);
INSERT INTO public.users (id, civilite, nom, prenom, username, password, password_force, email, telephonefixe, telephoneportable, notification, created, modified, ldap) VALUES (2, 'M.', 'GUILLON', 'Théo', 't.guillon', '8fd5df111e037a02e87dfb367e22d5f0cc387768', 4, 'theo.guillon@test.fr', NULL, NULL, false, '2020-03-02 15:18:04', '2020-03-02 15:18:04', false);
INSERT INTO public.users (id, civilite, nom, prenom, username, password, password_force, email, telephonefixe, telephoneportable, notification, created, modified, ldap) VALUES (3, 'M.', 'MASSE', 'Aurélien', 'a.masse', '8fd5df111e037a02e87dfb367e22d5f0cc387768', 4, 'a.m@test.fr', NULL, NULL, false, '2020-03-02 15:18:54', '2020-03-02 15:18:54', false);
INSERT INTO public.users (id, civilite, nom, prenom, username, password, password_force, email, telephonefixe, telephoneportable, notification, created, modified, ldap) VALUES (4, 'M.', 'MONT', 'Amélie', 'a.mont', '8fd5df111e037a02e87dfb367e22d5f0cc387768', 4, 'amelie.mont@test.fr', NULL, NULL, false, '2020-03-02 15:19:27', '2020-03-02 15:19:27', false);
......@@ -31,7 +31,7 @@ INSERT INTO public.users (id, civilite, nom, prenom, username, password, passwor
-- Data for Name: admins; Type: TABLE DATA; Schema: public; Owner: -
--
-- INSERT INTO public.admins (id, user_id, created, modified) VALUES (1, 1, '2020-10-12 10:40:21.647086', '2020-10-12 10:40:21.647086');
INSERT INTO public.admins (id, user_id, created, modified) VALUES (1, 1, '2020-10-12 10:40:21.647086', '2020-10-12 10:40:21.647086');
--
......
BEGIN;
ALTER TABLE responsables ALTER COLUMN siretstructure DROP NOT NULL;
DROP INDEX IF EXISTS responsables_raisonsocialestructure_siretstructure_idx;
CREATE UNIQUE INDEX responsables_emailstructure_idx ON responsables (emailstructure);
CREATE UNIQUE INDEX responsables_numerocnil_dpo_idx ON responsables (numerocnil_dpo);
ALTER TABLE soustraitants ALTER COLUMN siretstructure DROP NOT NULL;
DROP INDEX IF EXISTS soustraitants_raisonsocialestructure_siretstructure_idx;
DROP INDEX IF EXISTS soustraitants_siret_idx;
CREATE UNIQUE INDEX soustraitants_siretstructure_idx ON soustraitants (siretstructure);
CREATE TABLE formulaires_organisations (
id SERIAL PRIMARY KEY NOT NULL,
formulaire_id INTEGER NOT NULL REFERENCES formulaires(id) ON DELETE CASCADE ON UPDATE CASCADE,
organisation_id INTEGER NOT NULL REFERENCES organisations(id) ON DELETE CASCADE ON UPDATE CASCADE,
active BOOL NOT NULL DEFAULT FALSE
);
CREATE UNIQUE INDEX formulaires_organisations_formulaire_id_organisation_id_idx ON formulaires_organisations (formulaire_id, organisation_id);
INSERT INTO formulaires_organisations (
formulaire_id,
organisation_id
)
SELECT
formulaires.id,
formulaires.organisations_id
FROM formulaires;
ALTER TABLE formulaires ADD COLUMN createdbyorganisation INT DEFAULT NULL;
UPDATE formulaires SET createdbyorganisation = organisations_id;
ALTER TABLE formulaires DROP COLUMN organisations_id ;
CREATE TABLE formulaires_modeles_organisations (
id SERIAL PRIMARY KEY NOT NULL,
formulaire_id INTEGER NOT NULL REFERENCES formulaires(id) ON DELETE CASCADE ON UPDATE CASCADE,
modele_id INTEGER NOT NULL REFERENCES modeles(id) ON DELETE CASCADE ON UPDATE CASCADE,
organisation_id INTEGER NOT NULL REFERENCES organisations(id) ON DELETE CASCADE ON UPDATE CASCADE
);
CREATE UNIQUE INDEX formulaires_modeles_organisations_formulaire_id_modele_id_organisation_id_idx ON formulaires_modeles_organisations (formulaire_id, modele_id, organisation_id);
CREATE UNIQUE INDEX formulaires_modeles_organisations_formulaire_id_organisation_id_idx ON formulaires_modeles_organisations (formulaire_id, organisation_id);
ALTER TABLE modeles RENAME COLUMN formulaires_id TO formulaire_id ;
CREATE UNIQUE INDEX modeles_name_modele_idx ON modeles (name_modele);
CREATE UNIQUE INDEX modeles_fichier_idx ON modeles (fichier);
CREATE UNIQUE INDEX modeles_name_modele_fichier_idx ON modeles (name_modele, fichier);
CREATE TABLE modele_extrait_registres_organisations (
id SERIAL PRIMARY KEY NOT NULL,
modele_extrait_registre_id INTEGER NOT NULL REFERENCES modele_extrait_registres(id) ON DELETE CASCADE ON UPDATE CASCADE,
organisation_id INTEGER NOT NULL REFERENCES organisations(id) ON DELETE CASCADE ON UPDATE CASCADE
);
CREATE UNIQUE INDEX modele_extrait_registres_organisations_modele_extrait_registre_id_organisation_id_idx ON modele_extrait_registres_organisations (modele_extrait_registre_id, organisation_id);
CREATE UNIQUE INDEX modele_extrait_registres_organisations_organisation_id_idx ON modele_extrait_registres_organisations (organisation_id);
INSERT INTO modele_extrait_registres_organisations (
modele_extrait_registre_id,
organisation_id
)
SELECT
modele_extrait_registres.id,
modele_extrait_registres.organisations_id
FROM modele_extrait_registres;
ALTER TABLE modele_extrait_registres DROP COLUMN organisations_id ;
CREATE UNIQUE INDEX modele_extrait_registres_name_modele_fichier_idx ON modele_extrait_registres (name_modele, fichier);
CREATE UNIQUE INDEX modele_extrait_registres_name_modele_idx ON modele_extrait_registres (name_modele);
CREATE UNIQUE INDEX modele_extrait_registres_fichier_idx ON modele_extrait_registres (fichier);
ALTER TABLE organisations ALTER COLUMN usemodelepresentation SET DEFAULT TRUE;
UPDATE organisations SET usemodelepresentation = true;
ALTER TABLE formulaires ADD COLUMN archive BOOLEAN DEFAULT FALSE;
INSERT INTO liste_droits (libelle, value, created, modified) VALUES
('Dupliquer un traitement', 36, NOW(), NOW()),
('Initialisation d''un traitement', 37, NOW(), NOW()),
('Générer un traitement en cours de rédaction', 38, NOW(), NOW()),
('Modifier un traitement reçu en consultation', 39, NOW(), NOW());
INSERT INTO role_droits (role_id, liste_droit_id)
SELECT roles.id, liste_droits.id
FROM roles
INNER JOIN liste_droits ON (1 = 1)
WHERE
roles.libelle = 'DPO'
AND liste_droits.libelle IN (
'Dupliquer un traitement',
'Initialisation d''un traitement',
'Générer un traitement en cours de rédaction',
'Modifier un traitement reçu en consultation'
)
AND liste_droits.id NOT IN (
SELECT existing_roles_droits.liste_droit_id
FROM role_droits AS existing_roles_droits
WHERE existing_roles_droits.role_id = roles.id
)
ORDER BY roles.id, liste_droits.id;
INSERT INTO droits (organisation_user_id, liste_droit_id, created, modified)
SELECT organisations_users.id, liste_droits.id, NOW(), NOW()
FROM organisations_users
INNER JOIN liste_droits ON (1 = 1)
WHERE (organisations_users.organisation_id, organisations_users.user_id) IN (
SELECT organisations.id, organisations.dpo
FROM organisations
WHERE organisations.dpo IS NOT NULL
)
AND liste_droits.libelle IN (
'Dupliquer un traitement',
'Initialisation d''un traitement',
'Générer un traitement en cours de rédaction',
'Modifier un traitement reçu en consultation'
)
AND liste_droits.id NOT IN (
SELECT existing_droits.liste_droit_id
FROM droits AS existing_droits
WHERE existing_droits.organisation_user_id = organisations_users.id
)
ORDER BY organisations_users.id, liste_droits.id;
ALTER TABLE fiches ADD COLUMN valide BOOLEAN DEFAULT TRUE;
UPDATE etats SET libelle = 'Initialisation du traitement' WHERE value = 11;
ALTER TABLE fiches ADD COLUMN service_id INT DEFAULT NULL REFERENCES services(id) ON DELETE SET NULL ON UPDATE CASCADE;
ALTER TABLE fiches ADD COLUMN partage BOOLEAN;
UPDATE fiches SET partage = false;
INSERT INTO services (libelle, organisation_id, created, modified)
SELECT valeurs.valeur, fiches.organisation_id, NOW(), NOW()
FROM valeurs, fiches
WHERE
valeurs.fiche_id = fiches.id
AND valeurs.champ_name = 'declarantservice'
AND valeurs.valeur != 'Aucun service'
AND valeurs.valeur NOT IN (SELECT srv.libelle FROM services AS srv WHERE srv.organisation_id = fiches.organisation_id)
GROUP BY valeurs.valeur, fiches.organisation_id
;
UPDATE fiches
SET service_id = services.id
FROM valeurs, services
WHERE
valeurs.fiche_id = fiches.id
AND valeurs.champ_name = 'declarantservice'
AND valeurs.valeur != 'Aucun service'
AND services.libelle = valeurs.valeur
;
DELETE FROM valeurs WHERE champ_name = 'declarantservice';
CREATE TABLE jetons (
id SERIAL NOT NULL PRIMARY KEY,
user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE ON UPDATE CASCADE,
php_sid VARCHAR NOT NULL,
controller VARCHAR NOT NULL,
action VARCHAR NOT NULL,
params VARCHAR NOT NULL,
created timestamp without time zone NOT NULL,
modified timestamp without time zone NOT NULL
);
ALTER TABLE organisations ADD COLUMN usefieldsredacteur BOOLEAN DEFAULT FALSE;
ALTER TABLE organisations ADD COLUMN emaildpo VARCHAR(100);