Loading data/deploy/03-init.sql 0 → 100644 +82 −0 Original line number Diff line number Diff line -- -- INIT -- -- -- COMUE éventuelle -- ---------------- -- -- Contraintes : -- SOURCE_CODE: Utiliser 'COMUE'. -- INSERT INTO STRUCTURE (ID, SOURCE_CODE, SIGLE, LIBELLE, TYPE_STRUCTURE_ID, SOURCE_ID, CODE, HISTO_CREATEUR_ID, HISTO_MODIFICATEUR_ID) VALUES (1, 'COMUE', 'NU', 'Normandie Université', null, 1, 'COMUE', 1, 1); INSERT INTO ETABLISSEMENT (ID, STRUCTURE_ID, DOMAINE, SOURCE_ID, SOURCE_CODE, EST_COMUE, EST_MEMBRE, HISTO_CREATEUR_ID, HISTO_MODIFICATEUR_ID) VALUES (1, 1, 'normandie-univ.fr', 1, 'COMUE', 1, 0, 1, 1); -- -- Etablissements -- -------------- -- -- :codeEtablissement: choisir un code court et unique, ex: 'UCN', 'UNILIM'. -- INSERT INTO STRUCTURE (ID, SOURCE_CODE, SIGLE, LIBELLE, TYPE_STRUCTURE_ID, SOURCE_ID, CODE, HISTO_CREATEUR_ID, HISTO_MODIFICATEUR_ID) VALUES (2, :codeEtablissement, 'Unicaen', 'Université de Caen Normandie', 1, 1, :codeEtablissement, 1, 1); INSERT INTO ETABLISSEMENT (ID, STRUCTURE_ID, DOMAINE, SOURCE_ID, SOURCE_CODE, EST_COMUE, EST_MEMBRE, HISTO_CREATEUR_ID, HISTO_MODIFICATEUR_ID) VALUES (2, 2, 'unicaen.fr', 1, :codeEtablissement, 0, 1, 1, 1); -- -- Sources de données importables. -- 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 = :codeEtablissement; -- CODE : SOURCE_CODE de l'établissement + '::' + 'apogee' -- -- Premier utilisateur. -- INSERT INTO UTILISATEUR (ID, USERNAME, EMAIL, DISPLAY_NAME, PASSWORD) VALUES (2, 'premierf@sygal.fr', -- EPPN (si shibboleth activé) ou supannAliasLogin (si LDAP activé) 'francois.premier@sygal.fr', 'François PREMIER', 'shib' -- 'shib' (auth shibboleth), ou 'ldap' (auth LDAP), ou mdp bcrypté (auth locale) ); -- -- 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 = :codeEtablissement; data/deploy/premier.sqldeleted 100644 → 0 +0 −337 Original line number Diff line number Diff line set define off; -- -- Pré-requis : -- -- - avoir choisi un code pour son établissement, ex: 'UCN'. -- - avoir choisi un code pour sa COMUE éventuelle, ex: 'COMUE'. -- -- -- Sources de données. -- --INSERT INTO SOURCE (ID, CODE, LIBELLE, IMPORTABLE) VALUES (1, 'SYGAL::sygal', 'SyGAL', 0); INSERT INTO SOURCE (ID, CODE, LIBELLE, IMPORTABLE) VALUES (2, 'UCN::apogee', 'Apogée UCN', 1); -- -- Etablissements/Structures. -- INSERT INTO STRUCTURE (ID, SIGLE, LIBELLE, TYPE_STRUCTURE_ID, HISTO_CREATEUR_ID, HISTO_MODIFICATEUR_ID, SOURCE_ID, SOURCE_CODE, CODE) VALUES (1, 'NU', 'Normandie Université', null, 1, 1, 1, 'COMUE', 'COMUE'); INSERT INTO STRUCTURE (ID, SIGLE, LIBELLE, TYPE_STRUCTURE_ID, HISTO_CREATEUR_ID, HISTO_MODIFICATEUR_ID, SOURCE_ID, SOURCE_CODE, CODE) VALUES (2, 'UCN', 'Université de Caen Normandie', null, 1, 1, 1, 'UCN', 'UCN'); INSERT INTO ETABLISSEMENT (ID, STRUCTURE_ID, HISTO_CREATEUR_ID, HISTO_MODIFICATEUR_ID, DOMAINE, SOURCE_ID, SOURCE_CODE, EST_COMUE, EST_MEMBRE) VALUES (1, 1, 1, 1, 'normandie-univ.fr', 1, 'COMUE', 1, 0); INSERT INTO ETABLISSEMENT (ID, STRUCTURE_ID, HISTO_CREATEUR_ID, HISTO_MODIFICATEUR_ID, DOMAINE, SOURCE_ID, SOURCE_CODE, EST_COMUE, EST_MEMBRE) VALUES (2, 2, 1, 1, 'unicaen.fr', 1, 'UCN', 0, 1); -- -- Sources de données : compléments. -- update SOURCE set ETABLISSEMENT_ID = (select id from etablissement where SOURCE_CODE = 'UNILIM') where CODE like 'UNILIM'||'::%'; -- -- Pseudo-utilisateur Application. -- INSERT INTO UTILISATEUR (ID, USERNAME, EMAIL, DISPLAY_NAME, PASSWORD) VALUES (1, 'sygal-app', 'noreply@mail.fr', 'Application SyGAL', 'ldap'); -- -- Premier utilisateur. -- INSERT INTO UTILISATEUR (ID, USERNAME, EMAIL, DISPLAY_NAME, PASSWORD, STATE, LAST_ROLE_ID, INDIVIDU_ID, PASSWORD_RESET_TOKEN) VALUES (2, 'francois.premier@sygal.fr', 'francois.premier@sygal.fr', 'François PREMIER', 'ldap', 1, 1, null, null); -- -- Rôles. -- INSERT INTO ROLE (ID, CODE, LIBELLE, SOURCE_CODE, SOURCE_ID, ROLE_ID, IS_DEFAULT, LDAP_FILTER, ATTRIB_AUTO, THESE_DEP, HISTO_CREATEUR_ID, HISTO_CREATION, HISTO_MODIFICATEUR_ID, HISTO_MODIFICATION, HISTO_DESTRUCTEUR_ID, HISTO_DESTRUCTION, STRUCTURE_ID, TYPE_STRUCTURE_DEPENDANT_ID, ORDRE_AFFICHAGE) VALUES (1, 'ADMIN_TECH', 'Administrateur technique', '$prefixEtab' || '::ADMIN_TECH', 1, 'Administrateur technique', 0, NULL, 0, 0, 1, sysdate, 1, sysdate, NULL, NULL, NULL, NULL, 'zzz'); INSERT INTO ROLE (ID, CODE, LIBELLE, SOURCE_CODE, SOURCE_ID, ROLE_ID, IS_DEFAULT, LDAP_FILTER, ATTRIB_AUTO, THESE_DEP, HISTO_CREATEUR_ID, HISTO_CREATION, HISTO_MODIFICATEUR_ID, HISTO_MODIFICATION, HISTO_DESTRUCTEUR_ID, HISTO_DESTRUCTION, STRUCTURE_ID, TYPE_STRUCTURE_DEPENDANT_ID, ORDRE_AFFICHAGE) VALUES (241, 'OBSERV', 'Observateur', 'OBSERV', 1, 'Observateur multi-établissement', 0, NULL, 0, 0, 1, sysdate, 1, sysdate, NULL, NULL, NULL, NULL, 'yy'); INSERT INTO ROLE (ID, CODE, LIBELLE, SOURCE_CODE, SOURCE_ID, ROLE_ID, IS_DEFAULT, LDAP_FILTER, ATTRIB_AUTO, THESE_DEP, HISTO_CREATEUR_ID, HISTO_CREATION, HISTO_MODIFICATEUR_ID, HISTO_MODIFICATION, HISTO_DESTRUCTEUR_ID, HISTO_DESTRUCTION, STRUCTURE_ID, TYPE_STRUCTURE_DEPENDANT_ID, ORDRE_AFFICHAGE) VALUES (2, 'ADMIN', 'Administrateur', '$prefixEtab' || '::ADMIN', 1, 'Administrateur UCN', 0, NULL, 0, 0, 1, sysdate, 1, sysdate, NULL, NULL, 2, 1, 'zz'); INSERT INTO ROLE (ID, CODE, LIBELLE, SOURCE_CODE, SOURCE_ID, ROLE_ID, IS_DEFAULT, LDAP_FILTER, ATTRIB_AUTO, THESE_DEP, HISTO_CREATEUR_ID, HISTO_CREATION, HISTO_MODIFICATEUR_ID, HISTO_MODIFICATION, HISTO_DESTRUCTEUR_ID, HISTO_DESTRUCTION, STRUCTURE_ID, TYPE_STRUCTURE_DEPENDANT_ID, ORDRE_AFFICHAGE) VALUES (6, 'BDD', 'Bureau des doctorats', '$prefixEtab' || '::BDD', 1, 'Bureau des doctorats UCN', 0, NULL, 0, 0, 1, sysdate, 1, sysdate, NULL, NULL, 2, 1, 'zzz'); INSERT INTO ROLE (ID, CODE, LIBELLE, SOURCE_CODE, SOURCE_ID, ROLE_ID, IS_DEFAULT, LDAP_FILTER, ATTRIB_AUTO, THESE_DEP, HISTO_CREATEUR_ID, HISTO_CREATION, HISTO_MODIFICATEUR_ID, HISTO_MODIFICATION, HISTO_DESTRUCTEUR_ID, HISTO_DESTRUCTION, STRUCTURE_ID, TYPE_STRUCTURE_DEPENDANT_ID, ORDRE_AFFICHAGE) VALUES (10, 'BU', 'Bibliothèque universitaire', '$prefixEtab' || '::BU', 1, 'Bibliothèque universitaire UCN', 0, NULL, 0, 0, 1, sysdate, 1, sysdate, NULL, NULL, 2, 1, 'zzz'); INSERT INTO ROLE (ID, CODE, LIBELLE, SOURCE_CODE, SOURCE_ID, ROLE_ID, IS_DEFAULT, LDAP_FILTER, ATTRIB_AUTO, THESE_DEP, HISTO_CREATEUR_ID, HISTO_CREATION, HISTO_MODIFICATEUR_ID, HISTO_MODIFICATION, HISTO_DESTRUCTEUR_ID, HISTO_DESTRUCTION, STRUCTURE_ID, TYPE_STRUCTURE_DEPENDANT_ID, ORDRE_AFFICHAGE) VALUES (14, 'DOCTORANT', 'Doctorant', '$prefixEtab' || '::DOCTORANT', 1, 'Doctorant UCN', 0, NULL, 1, 1, 1, sysdate, 1, sysdate, NULL, NULL, 2, NULL, 'zzz'); -- -- Structure/Etablissement inconnu. -- insert into STRUCTURE( ID, LIBELLE, TYPE_STRUCTURE_ID, HISTO_CREATEUR_ID, HISTO_MODIFICATEUR_ID, SOURCE_ID, SOURCE_CODE, CODE ) select STRUCTURE_ID_SEQ.nextval, 'Établissement inconnu', 1, -- type etab 1, 1, 1, -- src sygal 'ETAB_INCONNU', -- source code 'INCONNU' -- code from dual; insert into ETABLISSEMENT( ID, STRUCTURE_ID, HISTO_CREATEUR_ID, HISTO_MODIFICATEUR_ID, DOMAINE, SOURCE_ID, SOURCE_CODE ) select ETABLISSEMENT_ID_SEQ.nextval, STRUCTURE_ID_SEQ.currval, 1, 1, null, -- domaine 1, -- src sygal 'ETAB_INCONNU' -- source code, idem structure from dual; module/Application/src/Application/Exception/StructureNotFoundException.php 0 → 100644 +8 −0 Original line number Diff line number Diff line <?php namespace Application\Exception; class StructureNotFoundException extends \Exception { } No newline at end of file module/Import/src/Import/Controller/ImportController.php +9 −7 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ namespace Import\Controller; use Application\Entity\Db\Etablissement; use Application\Entity\Db\These; use Application\Exception\StructureNotFoundException; use Application\Service\Etablissement\EtablissementServiceAwareTrait; use Application\Service\These\TheseServiceAwareTrait; use Application\SourceCodeStringHelperAwareTrait; Loading Loading @@ -60,11 +61,13 @@ class ImportController extends AbstractActionController { $codeStructure = $this->params()->fromRoute("etablissement"); // ex: 'UCN' $etablissement = $this->fetchEtablissementByCodeStructure($codeStructure); try { $etablissement = $this->fetchEtablissementByCodeStructure($codeStructure); $version = $this->importService->getApiVersion($etablissement); $error = null; } catch (StructureNotFoundException $e) { $version = "Inconnue"; $error = $e->getMessage(); } catch (ImportCallException $e) { $version = "Inconnue"; $error = $e->getMessage() . " : " . $e->getPrevious()->getMessage(); Loading @@ -77,16 +80,15 @@ class ImportController extends AbstractActionController } /** * @param string $codeStructure Code structure de l'établissement, ex: 'UCN' * @param string $sourceCode SOURCE_CODE de l'établissement, ex: 'UCN' * @return Etablissement * @throws StructureNotFoundException */ private function fetchEtablissementByCodeStructure($codeStructure) private function fetchEtablissementByCodeStructure($sourceCode) { $sourceCode = $this->sourceCodeStringHelper->addDefaultPrefixTo($codeStructure); $etablissement = $this->etablissementService->getRepository()->findOneBySourceCode($sourceCode); if ($etablissement === null) { throw new RuntimeException("Aucun établissement trouvé avec le code structure " . $sourceCode); throw new StructureNotFoundException("Aucun établissement trouvé avec le code structure " . $sourceCode); } return $etablissement; Loading Loading
data/deploy/03-init.sql 0 → 100644 +82 −0 Original line number Diff line number Diff line -- -- INIT -- -- -- COMUE éventuelle -- ---------------- -- -- Contraintes : -- SOURCE_CODE: Utiliser 'COMUE'. -- INSERT INTO STRUCTURE (ID, SOURCE_CODE, SIGLE, LIBELLE, TYPE_STRUCTURE_ID, SOURCE_ID, CODE, HISTO_CREATEUR_ID, HISTO_MODIFICATEUR_ID) VALUES (1, 'COMUE', 'NU', 'Normandie Université', null, 1, 'COMUE', 1, 1); INSERT INTO ETABLISSEMENT (ID, STRUCTURE_ID, DOMAINE, SOURCE_ID, SOURCE_CODE, EST_COMUE, EST_MEMBRE, HISTO_CREATEUR_ID, HISTO_MODIFICATEUR_ID) VALUES (1, 1, 'normandie-univ.fr', 1, 'COMUE', 1, 0, 1, 1); -- -- Etablissements -- -------------- -- -- :codeEtablissement: choisir un code court et unique, ex: 'UCN', 'UNILIM'. -- INSERT INTO STRUCTURE (ID, SOURCE_CODE, SIGLE, LIBELLE, TYPE_STRUCTURE_ID, SOURCE_ID, CODE, HISTO_CREATEUR_ID, HISTO_MODIFICATEUR_ID) VALUES (2, :codeEtablissement, 'Unicaen', 'Université de Caen Normandie', 1, 1, :codeEtablissement, 1, 1); INSERT INTO ETABLISSEMENT (ID, STRUCTURE_ID, DOMAINE, SOURCE_ID, SOURCE_CODE, EST_COMUE, EST_MEMBRE, HISTO_CREATEUR_ID, HISTO_MODIFICATEUR_ID) VALUES (2, 2, 'unicaen.fr', 1, :codeEtablissement, 0, 1, 1, 1); -- -- Sources de données importables. -- 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 = :codeEtablissement; -- CODE : SOURCE_CODE de l'établissement + '::' + 'apogee' -- -- Premier utilisateur. -- INSERT INTO UTILISATEUR (ID, USERNAME, EMAIL, DISPLAY_NAME, PASSWORD) VALUES (2, 'premierf@sygal.fr', -- EPPN (si shibboleth activé) ou supannAliasLogin (si LDAP activé) 'francois.premier@sygal.fr', 'François PREMIER', 'shib' -- 'shib' (auth shibboleth), ou 'ldap' (auth LDAP), ou mdp bcrypté (auth locale) ); -- -- 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 = :codeEtablissement;
data/deploy/premier.sqldeleted 100644 → 0 +0 −337 Original line number Diff line number Diff line set define off; -- -- Pré-requis : -- -- - avoir choisi un code pour son établissement, ex: 'UCN'. -- - avoir choisi un code pour sa COMUE éventuelle, ex: 'COMUE'. -- -- -- Sources de données. -- --INSERT INTO SOURCE (ID, CODE, LIBELLE, IMPORTABLE) VALUES (1, 'SYGAL::sygal', 'SyGAL', 0); INSERT INTO SOURCE (ID, CODE, LIBELLE, IMPORTABLE) VALUES (2, 'UCN::apogee', 'Apogée UCN', 1); -- -- Etablissements/Structures. -- INSERT INTO STRUCTURE (ID, SIGLE, LIBELLE, TYPE_STRUCTURE_ID, HISTO_CREATEUR_ID, HISTO_MODIFICATEUR_ID, SOURCE_ID, SOURCE_CODE, CODE) VALUES (1, 'NU', 'Normandie Université', null, 1, 1, 1, 'COMUE', 'COMUE'); INSERT INTO STRUCTURE (ID, SIGLE, LIBELLE, TYPE_STRUCTURE_ID, HISTO_CREATEUR_ID, HISTO_MODIFICATEUR_ID, SOURCE_ID, SOURCE_CODE, CODE) VALUES (2, 'UCN', 'Université de Caen Normandie', null, 1, 1, 1, 'UCN', 'UCN'); INSERT INTO ETABLISSEMENT (ID, STRUCTURE_ID, HISTO_CREATEUR_ID, HISTO_MODIFICATEUR_ID, DOMAINE, SOURCE_ID, SOURCE_CODE, EST_COMUE, EST_MEMBRE) VALUES (1, 1, 1, 1, 'normandie-univ.fr', 1, 'COMUE', 1, 0); INSERT INTO ETABLISSEMENT (ID, STRUCTURE_ID, HISTO_CREATEUR_ID, HISTO_MODIFICATEUR_ID, DOMAINE, SOURCE_ID, SOURCE_CODE, EST_COMUE, EST_MEMBRE) VALUES (2, 2, 1, 1, 'unicaen.fr', 1, 'UCN', 0, 1); -- -- Sources de données : compléments. -- update SOURCE set ETABLISSEMENT_ID = (select id from etablissement where SOURCE_CODE = 'UNILIM') where CODE like 'UNILIM'||'::%'; -- -- Pseudo-utilisateur Application. -- INSERT INTO UTILISATEUR (ID, USERNAME, EMAIL, DISPLAY_NAME, PASSWORD) VALUES (1, 'sygal-app', 'noreply@mail.fr', 'Application SyGAL', 'ldap'); -- -- Premier utilisateur. -- INSERT INTO UTILISATEUR (ID, USERNAME, EMAIL, DISPLAY_NAME, PASSWORD, STATE, LAST_ROLE_ID, INDIVIDU_ID, PASSWORD_RESET_TOKEN) VALUES (2, 'francois.premier@sygal.fr', 'francois.premier@sygal.fr', 'François PREMIER', 'ldap', 1, 1, null, null); -- -- Rôles. -- INSERT INTO ROLE (ID, CODE, LIBELLE, SOURCE_CODE, SOURCE_ID, ROLE_ID, IS_DEFAULT, LDAP_FILTER, ATTRIB_AUTO, THESE_DEP, HISTO_CREATEUR_ID, HISTO_CREATION, HISTO_MODIFICATEUR_ID, HISTO_MODIFICATION, HISTO_DESTRUCTEUR_ID, HISTO_DESTRUCTION, STRUCTURE_ID, TYPE_STRUCTURE_DEPENDANT_ID, ORDRE_AFFICHAGE) VALUES (1, 'ADMIN_TECH', 'Administrateur technique', '$prefixEtab' || '::ADMIN_TECH', 1, 'Administrateur technique', 0, NULL, 0, 0, 1, sysdate, 1, sysdate, NULL, NULL, NULL, NULL, 'zzz'); INSERT INTO ROLE (ID, CODE, LIBELLE, SOURCE_CODE, SOURCE_ID, ROLE_ID, IS_DEFAULT, LDAP_FILTER, ATTRIB_AUTO, THESE_DEP, HISTO_CREATEUR_ID, HISTO_CREATION, HISTO_MODIFICATEUR_ID, HISTO_MODIFICATION, HISTO_DESTRUCTEUR_ID, HISTO_DESTRUCTION, STRUCTURE_ID, TYPE_STRUCTURE_DEPENDANT_ID, ORDRE_AFFICHAGE) VALUES (241, 'OBSERV', 'Observateur', 'OBSERV', 1, 'Observateur multi-établissement', 0, NULL, 0, 0, 1, sysdate, 1, sysdate, NULL, NULL, NULL, NULL, 'yy'); INSERT INTO ROLE (ID, CODE, LIBELLE, SOURCE_CODE, SOURCE_ID, ROLE_ID, IS_DEFAULT, LDAP_FILTER, ATTRIB_AUTO, THESE_DEP, HISTO_CREATEUR_ID, HISTO_CREATION, HISTO_MODIFICATEUR_ID, HISTO_MODIFICATION, HISTO_DESTRUCTEUR_ID, HISTO_DESTRUCTION, STRUCTURE_ID, TYPE_STRUCTURE_DEPENDANT_ID, ORDRE_AFFICHAGE) VALUES (2, 'ADMIN', 'Administrateur', '$prefixEtab' || '::ADMIN', 1, 'Administrateur UCN', 0, NULL, 0, 0, 1, sysdate, 1, sysdate, NULL, NULL, 2, 1, 'zz'); INSERT INTO ROLE (ID, CODE, LIBELLE, SOURCE_CODE, SOURCE_ID, ROLE_ID, IS_DEFAULT, LDAP_FILTER, ATTRIB_AUTO, THESE_DEP, HISTO_CREATEUR_ID, HISTO_CREATION, HISTO_MODIFICATEUR_ID, HISTO_MODIFICATION, HISTO_DESTRUCTEUR_ID, HISTO_DESTRUCTION, STRUCTURE_ID, TYPE_STRUCTURE_DEPENDANT_ID, ORDRE_AFFICHAGE) VALUES (6, 'BDD', 'Bureau des doctorats', '$prefixEtab' || '::BDD', 1, 'Bureau des doctorats UCN', 0, NULL, 0, 0, 1, sysdate, 1, sysdate, NULL, NULL, 2, 1, 'zzz'); INSERT INTO ROLE (ID, CODE, LIBELLE, SOURCE_CODE, SOURCE_ID, ROLE_ID, IS_DEFAULT, LDAP_FILTER, ATTRIB_AUTO, THESE_DEP, HISTO_CREATEUR_ID, HISTO_CREATION, HISTO_MODIFICATEUR_ID, HISTO_MODIFICATION, HISTO_DESTRUCTEUR_ID, HISTO_DESTRUCTION, STRUCTURE_ID, TYPE_STRUCTURE_DEPENDANT_ID, ORDRE_AFFICHAGE) VALUES (10, 'BU', 'Bibliothèque universitaire', '$prefixEtab' || '::BU', 1, 'Bibliothèque universitaire UCN', 0, NULL, 0, 0, 1, sysdate, 1, sysdate, NULL, NULL, 2, 1, 'zzz'); INSERT INTO ROLE (ID, CODE, LIBELLE, SOURCE_CODE, SOURCE_ID, ROLE_ID, IS_DEFAULT, LDAP_FILTER, ATTRIB_AUTO, THESE_DEP, HISTO_CREATEUR_ID, HISTO_CREATION, HISTO_MODIFICATEUR_ID, HISTO_MODIFICATION, HISTO_DESTRUCTEUR_ID, HISTO_DESTRUCTION, STRUCTURE_ID, TYPE_STRUCTURE_DEPENDANT_ID, ORDRE_AFFICHAGE) VALUES (14, 'DOCTORANT', 'Doctorant', '$prefixEtab' || '::DOCTORANT', 1, 'Doctorant UCN', 0, NULL, 1, 1, 1, sysdate, 1, sysdate, NULL, NULL, 2, NULL, 'zzz'); -- -- Structure/Etablissement inconnu. -- insert into STRUCTURE( ID, LIBELLE, TYPE_STRUCTURE_ID, HISTO_CREATEUR_ID, HISTO_MODIFICATEUR_ID, SOURCE_ID, SOURCE_CODE, CODE ) select STRUCTURE_ID_SEQ.nextval, 'Établissement inconnu', 1, -- type etab 1, 1, 1, -- src sygal 'ETAB_INCONNU', -- source code 'INCONNU' -- code from dual; insert into ETABLISSEMENT( ID, STRUCTURE_ID, HISTO_CREATEUR_ID, HISTO_MODIFICATEUR_ID, DOMAINE, SOURCE_ID, SOURCE_CODE ) select ETABLISSEMENT_ID_SEQ.nextval, STRUCTURE_ID_SEQ.currval, 1, 1, null, -- domaine 1, -- src sygal 'ETAB_INCONNU' -- source code, idem structure from dual;
module/Application/src/Application/Exception/StructureNotFoundException.php 0 → 100644 +8 −0 Original line number Diff line number Diff line <?php namespace Application\Exception; class StructureNotFoundException extends \Exception { } No newline at end of file
module/Import/src/Import/Controller/ImportController.php +9 −7 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ namespace Import\Controller; use Application\Entity\Db\Etablissement; use Application\Entity\Db\These; use Application\Exception\StructureNotFoundException; use Application\Service\Etablissement\EtablissementServiceAwareTrait; use Application\Service\These\TheseServiceAwareTrait; use Application\SourceCodeStringHelperAwareTrait; Loading Loading @@ -60,11 +61,13 @@ class ImportController extends AbstractActionController { $codeStructure = $this->params()->fromRoute("etablissement"); // ex: 'UCN' $etablissement = $this->fetchEtablissementByCodeStructure($codeStructure); try { $etablissement = $this->fetchEtablissementByCodeStructure($codeStructure); $version = $this->importService->getApiVersion($etablissement); $error = null; } catch (StructureNotFoundException $e) { $version = "Inconnue"; $error = $e->getMessage(); } catch (ImportCallException $e) { $version = "Inconnue"; $error = $e->getMessage() . " : " . $e->getPrevious()->getMessage(); Loading @@ -77,16 +80,15 @@ class ImportController extends AbstractActionController } /** * @param string $codeStructure Code structure de l'établissement, ex: 'UCN' * @param string $sourceCode SOURCE_CODE de l'établissement, ex: 'UCN' * @return Etablissement * @throws StructureNotFoundException */ private function fetchEtablissementByCodeStructure($codeStructure) private function fetchEtablissementByCodeStructure($sourceCode) { $sourceCode = $this->sourceCodeStringHelper->addDefaultPrefixTo($codeStructure); $etablissement = $this->etablissementService->getRepository()->findOneBySourceCode($sourceCode); if ($etablissement === null) { throw new RuntimeException("Aucun établissement trouvé avec le code structure " . $sourceCode); throw new StructureNotFoundException("Aucun établissement trouvé avec le code structure " . $sourceCode); } return $etablissement; Loading