Commit fa756948 authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Premier commit.

parents
This diff is collapsed.
--
-- Avec ou sans COMUE ?
--
--
-- Pour faire simple, si le logo de votre COMUE doit figurer sur la page de couverture des thèses
-- (page générée par l'appli), alors personnalisez puis lancez les 2 inserts ci-dessous pour créer
-- un établissement "COMUE" dans la base de données, sinon passez votre chemin.
--
INSERT INTO STRUCTURE (ID, SOURCE_CODE, SIGLE, LIBELLE, TYPE_STRUCTURE_ID, SOURCE_ID, CODE, HISTO_CREATEUR_ID, HISTO_MODIFICATEUR_ID)
select
STRUCTURE_ID_SEQ.nextval, 'COMUE',
'NU', --> sigle ou abbréviation à personnaliser
'Normandie Université', --> libellé à personnaliser
null, 1, 'COMUE', 1, 1
from dual;
INSERT INTO ETABLISSEMENT (ID, STRUCTURE_ID, DOMAINE, SOURCE_ID, SOURCE_CODE, EST_COMUE, EST_MEMBRE, HISTO_CREATEUR_ID, HISTO_MODIFICATEUR_ID)
select
ETABLISSEMENT_ID_SEQ.nextval, s.ID,
'normandie-univ.fr', --> domaine à personnaliser
1, 'COMUE', 1, 0, 1, 1
from STRUCTURE s
where s.SOURCE_CODE = 'COMUE';
--
-- INIT
--
-- ATTENTION, ce sript doit être personnalisé :
--
-- Remplacez "UCN" par le code SyGAL de votre établissement (ex: "UTLN").
-- Remplacez "Unicaen" par l'intitulé court de votre établissement (ex: "UTLN").
-- Remplacez "Université de Caen Normandie" par l'intitulé long de votre établissement (ex: "Université de Toulon").
--
-- Faites-le avec sed !
-- cat 05-init.sql | sed "s/'UCN/\'UTLN\'/g" | sed "s/Unicaen/UTLN/g" | sed "s/Caen Normandie/Toulon/g" > 04-init-utln.sql
--
--
-- Etablissements
--
INSERT INTO STRUCTURE (ID, SOURCE_CODE, SIGLE, LIBELLE, TYPE_STRUCTURE_ID, SOURCE_ID, CODE, HISTO_CREATEUR_ID, HISTO_MODIFICATEUR_ID)
select
STRUCTURE_ID_SEQ.nextval,
'UCN', --> à remplacer par le code choisi *entre apostrophe*, ex: 'UCN'
'Unicaen', --> sigle ou abbréviation à personnaliser
'Université de Caen Normandie', --> libellé à personnaliser
1, 1,
'UCN', --> à remplacer par le code choisi *entre apostrophe*, ex: 'UCN'
1, 1
from dual;
INSERT INTO ETABLISSEMENT (ID, STRUCTURE_ID, DOMAINE, SOURCE_ID, SOURCE_CODE, EST_COMUE, EST_MEMBRE, HISTO_CREATEUR_ID, HISTO_MODIFICATEUR_ID)
select
ETABLISSEMENT_ID_SEQ.nextval, s.ID,
'unicaen.fr', --> domaine à personnaliser
1,
'UCN', --> à remplacer par le code choisi *entre apostrophe*, ex: 'UCN'
0, 1, 1, 1
from STRUCTURE s
where s.SOURCE_CODE = 'UCN'; --> à remplacer par le code choisi *entre apostrophe*, ex: 'UCN'
--
-- Sources de données importables, ex: Apogée.
--
INSERT INTO SOURCE (ID, CODE, LIBELLE, IMPORTABLE, ETABLISSEMENT_ID)
SELECT 2, SOURCE_CODE||'::apogee', 'Apogée '||SOURCE_CODE, 1, ID
from STRUCTURE where SOURCE_CODE = 'UCN'; --> à remplacer par le code choisi *entre apostrophe*, ex: 'UCN'
--
-- Rôles par établissement.
--
INSERT INTO ROLE (
ID,
CODE,
LIBELLE,
SOURCE_CODE,
SOURCE_ID,
ROLE_ID,
THESE_DEP,
HISTO_CREATEUR_ID,
HISTO_MODIFICATEUR_ID,
STRUCTURE_ID,
TYPE_STRUCTURE_DEPENDANT_ID
)
WITH tmp(CODE, LIBELLE, THESE_DEP) as (
select 'ADMIN', 'Administrateur', 0 from dual union
select 'BDD', 'Bureau des doctorats', 0 from dual union
select 'BU', 'Bibliothèque universitaire', 0 from dual union
select 'DOCTORANT', 'Doctorant', 1 from dual
)
SELECT
ROLE_ID_SEQ.nextval,
tmp.CODE,
tmp.LIBELLE,
s.SOURCE_CODE || '::' || tmp.CODE,
1,
tmp.LIBELLE || ' ' || s.SOURCE_CODE,
tmp.THESE_DEP,
1,
1,
s.ID,
1
FROM tmp, STRUCTURE s
WHERE s.SOURCE_CODE = 'UCN'; --> à remplacer par le code choisi *entre apostrophe*, ex: 'UCN'
--
-- Création de l'individu/utilisateur de test
--
INSERT INTO INDIVIDU (ID, CIVILITE, NOM_USUEL, NOM_PATRONYMIQUE, PRENOM1, EMAIL, SOURCE_CODE, SOURCE_ID, HISTO_CREATEUR_ID, HISTO_MODIFICATEUR_ID, SUPANN_ID)
select INDIVIDU_ID_SEQ.nextval, 'M.', 'Premier', 'Premier', 'François', 'francois.premier@univ.fr', 'INCONNU::00012345', 1, 1, 1, '00012345' from dual;
INSERT INTO UTILISATEUR (ID, USERNAME, EMAIL, DISPLAY_NAME, PASSWORD, INDIVIDU_ID)
select UTILISATEUR_ID_SEQ.nextval,
'premierf@univ.fr', -- EPPN (si shibboleth activé) ou supannAliasLogin (si LDAP activé)
'francois.premier@univ.fr',
'François PREMIER',
'shib', -- 'shib' (auth shibboleth), ou 'ldap' (auth LDAP), ou mdp bcrypté (auth locale)
i.ID
from INDIVIDU i where i.SOURCE_CODE = 'INCONNU::00012345';
--
-- /!\ Attribution du rôle Admin tech à l'utilisateur de test !!
--
INSERT INTO INDIVIDU_ROLE(ID, INDIVIDU_ID, ROLE_ID)
select INDIVIDU_ROLE_ID_SEQ.nextval, i.ID, r.ID from INDIVIDU i, ROLE r
where i.SOURCE_CODE = 'INCONNU::00012345'
and r.SOURCE_CODE = 'ADMIN_TECH';
--
-- Accord des privilèges de gestion des privilèges au rôle ADMIN_TECH.
-- NB: cela débloque l'accès au menu "Droits d'accès" dans l'appli.
--
insert into ROLE_PRIVILEGE(ROLE_ID, PRIVILEGE_ID)
select r.id, p.id
from role r, privilege p, CATEGORIE_PRIVILEGE cp
where r.SOURCE_CODE = 'ADMIN_TECH'
and cp.CODE = 'droit' -- gestion des droits
and p.CATEGORIE_ID = cp.id;
# Création de la base de données
Au préalable, charge à vous de créer une base de données Oracle vide quelque part.
Ou pourquoi pas 2 bases de données : une base de PROD (ex: `SYGAL_PROD`) et une base de TEST (ex: `SYGAL_TEST`).
Voire même une 3e si vous envisagez de collaborer au développement (ex: `SYGAL_DEV`) !
## Script SQL [`00-oracle-generate-schema-SYGAL.sql`](00-oracle-generate-schema-SYGAL.sql)
Vous pouvez lancer ce script sans modifier quoi que ce soit.
Si l'erreur Oracle `ORA-00922: option erronée ou absente` est rencontrée,
c'est que `SET SQLBLANKLINES ON;` n'est pas compris par le client SQL que vous utilisez.
Supprimez cette première ligne et relancez le script.
## Script SQL [`01-bootstrap.sql`](01-bootstrap.sql)
Vous pouvez lancer ce script sans modifier quoi que ce soit.
## Scripts SQL dans le répertoire [`02-inserts`](02-inserts)
Vous pouvez lancer ces scripts sans les modifier et dans l'ordre que vous voulez puisque les contraintes de références
entre tables ne sont pas encore créées.
Si l'erreur Oracle `ORA-00922: option erronée ou absente` est rencontrée à la première ligne d'un script,
c'est que `set define off ;` n'est pas supporté par le client SQL que vous utilisez.
Si cette erreur a bloqué les INSERT situés après, supprimez cette ligne et relancez le script.
## Script SQL [`03-oracle-generate-ref-constraints-SYGAL.sql`](03-oracle-generate-ref-constraints-SYGAL.sql)
Vous pouvez lancer ce script sans modifier quoi que ce soit.
## Script SQL [`04-crea-comue.sql`](04-crea-comue.sql)
Lisez ce script pour décider si vous devez l'utiliser.
## Script SQL [`05-init.sql`](05-init.sql)
Vous devez adapter ce script avant de le lancer :
- Remplacez `'Unicaen'` par le sigle ou raccourci de votre établissement,
ex 'URN', 'Unilim'.
- Remplacez `'Université de Caen Normandie'` par le nom complet de votre étblissement,
ex: 'Université de Rouen Normandie', 'Université de Limoges'
- Décidez d'un code identifiant votre établissement dans l'application, ex: 'UCN', 'UNILIM'.
Si vous préférez ou si votre client SQL ne supporte pas l'utilisation de paramètre du genre :codeEtablissement,
remplacez dans ce script toutes les occurences de ":codeEtablissement" par le code choisi *entre apostrophe*,
ex: `'UCN'`. Si votre client SQL supporte les motifs du genre :codeEtablissement, il vous demandera de saisir
une valeur pour ce paramètre lorsque vous lancerez le script : entrez le code choisi *entre apostrophe*.
Une fois ces adaptations faites, vous pouvez lancer le script.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment