Commit 48e88ce5 authored by Laurent Lécluse's avatar Laurent Lécluse
Browse files

Nouvelles optimisations de la procédure d'install et de MAJ

Nouvelles tables ajoutées au niveau des données
parent e5540c79
<?php
/* Initialisation */
$c->println("\nInstallation de la base de données", $c::COLOR_LIGHT_CYAN);
if (!$oa->bddIsOk($msg)) {
$c->printDie("Impossible d'accéder à la base de données : $msg!"
."\nVeuillez contrôler les paramètres de configurations entrés dans le fichier confg.local.php s'il vous plaît, avant de refaire une tentative d'installation de la base de données.");
......@@ -8,25 +10,50 @@ if (!$oa->bddIsOk($msg)) {
$bdd = $oa->getBdd();
$schema = new \BddAdmin\Schema($bdd);
$c->println("\nInstallation de la base de données", $c::COLOR_LIGHT_CYAN);
/* Mise en place du schéma de la BDD */
$c->println("\n" . 'Création des définitions de la base de données', $c::COLOR_LIGHT_PURPLE);
/* Récupération du schéma de référence */
$ref = $schema->loadFromFile($oa->getOseDir() . 'data/ddl.php');
/* Mise en place du logging en mode console */
$scl = new \BddAdmin\SchemaConsoleLogger();
$scl->console = $c;
$schema->setLogger($scl);
/* Mise à jour de la BDD */
$schema->create($ref, true);
/* Insertion des données */
$c->println("\n" . 'Insertion des données', $c::COLOR_LIGHT_PURPLE);
$dataGen = new DataGen($oa);
$dataGen->update();
$c->println("\n" . 'Mise à jour du point d\'indice pour les HETD', $c::COLOR_LIGHT_PURPLE);
$bdd->exec('BEGIN OSE_FORMULE.UPDATE_ANNEE_TAUX_HETD; END;');
/* Définition d'un mdp pour oseappli */
$c->println("\n" . 'Choix d\'un mot de passe pour l\'utilisateur système oseappli', $c::COLOR_LIGHT_CYAN);
$c->println("Veuillez saisir un mot de passe :");
$pwd1 = $c->getSilentInput();
$c->println("Veuillez saisir à nouveau le même mot de passe :");
$pwd2 = $c->getSilentInput();
if ($pwd1 <> $pwd2) {
$c->printDie('Les mots de passe saisis ne correspondent pas!');
}
$c->println('Application du changement de mot de pase ...');
$oa->exec("changement-mot-de-passe --utilisateur=oseappli --mot-de-passe=$pwd1");
$c->println('Mot de passe changé', $c::COLOR_LIGHT_GREEN);
$c->println('Vous pourrez vous connecteur à OSE avec le login "oseappli" et votre nouveau mot de passe.');
/* Terminé!! */
$c->println('L\'installation de la base de données est maintenant terminée!', $c::COLOR_LIGHT_GREEN);
\ No newline at end of file
......@@ -70,15 +70,12 @@ $c->println("\nMise à jour des liens vers les répertoires publics des dépenda
$oa->majUnicaenSymLinks($osedir);
$c->println('Liens mis en place', $c::COLOR_LIGHT_GREEN);
// Configuration locale
//$c->println("\nMise en place de la base de données", $c::COLOR_LIGHT_CYAN);
//$c->println("\nUne base de données Oracle doit préalablement avoir été créée. Merci de fournir dès à présent ses"
//." paramètres d'accès pour que OSE initialialise la base de données :");
$c->exec([
"cd $osedir",
"cp config.local.php.default config.local.php",
]);
if (!file_exists($osedir.'config.local.php')) {
$c->exec([
"cd $osedir",
"cp config.local.php.default config.local.php",
]);
}
// Génération des proxies pour l'ORM Doctrine
$c->println("\nGénération des proxies pour l'ORM Doctrine", $c::COLOR_LIGHT_CYAN);
......@@ -89,7 +86,13 @@ $c->exec([
"chmod -R 777 cache/Doctrine",
]);
// Mise en place des tâches CRON ??
// Conclusion
$c->println("\nFin du script d'installation des fichiers", $c::COLOR_LIGHT_GREEN);
\ No newline at end of file
$c->println("\nFin du script d'installation des fichiers", $c::COLOR_LIGHT_GREEN);
$c->println("Il reste encore plusieurs étapes à réaliser pour que OSE soit pleinement fonctionnel :");
$c->println(" 1 - Configurez le cas échéant votre serveur Apache");
$c->println(" 2 - Veuillez personnaliser le fichier de configuration de OSE config.local.php, si ce n'est déjà le cas");
$c->println(" 3 - La base de données devra au besoin être initialisée à l'aide de la commande ./bin/ose install-bdd");
$c->println(" 4 - Mettez en place les tâches CRON nécessaires (envoi de mails pour les indicateurs, Synchronisation automatique, etc.");
$c->println('');
$c->println("Pour la suite, merci de vous reporter au guide de l'administrateur pour vous aider à configurer l'application");
$c->println('');
\ No newline at end of file
......@@ -3,16 +3,12 @@
$bdd = new \BddAdmin\Bdd(Config::get()['bdds']['dev-local']);
//$bdd->debug = true;
$schema = new \BddAdmin\Schema($bdd);
$schema->majSequences();
$oa = new OseAdmin();
$oa->setBdd($bdd);
$dataGen = new DataGen($oa);
$dataGen->update();
$u = $bdd->select("SELECT id FROM UTILISATEUR WHERE USERNAME='oseappli'");
if (isset($u[0]['ID'])){
$u = (int)$u[0]['ID'];
}
var_dump($u);
/*
......
......@@ -54,6 +54,15 @@ class DataGen
'ETAT_VOLUME_HORAIRE' => [
'title' => 'États de volumes horaires',
],
'PERIMETRE' => [
'title' => 'Périmètres des rôles',
'key' => 'CODE',
],
'SOURCE' => [
'title' => 'Sources de données',
'key' => 'CODE',
'options' => ['delete' => false],
],
'TYPE_VALIDATION' => [
'title' => 'Types de validation',
'key' => 'CODE',
......@@ -62,6 +71,11 @@ class DataGen
'title' => 'Tableaux de bord',
'key' => 'TBL_NAME',
],
'UTILISATEUR' => [
'title' => 'Utilisateurs',
'key' => 'USERNAME',
'options' => ['update-ignore-cols' => ['EMAIL', 'PASSWORD'], 'delete' => false],
],
];
......@@ -76,13 +90,11 @@ class DataGen
'MESSAGE' => '',
'MODELE_CONTRAT' => "libelle = 'Modèle par défaut'",
'PARAMETRE' => '',
'PERIMETRE' => '',
'PERIODE' => '',
'REGLE_STRUCTURE_VALIDATION' => '',
'ROLE' => '',
'ROLE_PRIVILEGE' => '',
'SCENARIO' => 'structure_id IS NULL',
'SOURCE' => "code='OSE'",
'TAUX_HORAIRE_HETD' => '',
'TYPE_AGREMENT' => '',
'TYPE_AGREMENT_STATUT' => '',
......@@ -91,7 +103,6 @@ class DataGen
'TYPE_INTERVENANT' => '',
'TYPE_INTERVENTION' => "code IN ('CM','TD','TP')",
'TYPE_RESSOURCE' => '',
'UTILISATEUR' => "username = '" . self::OSE_USER . "'",
'WF_ETAPE' => '',
'WF_ETAPE_DEP' => '',
......@@ -285,6 +296,24 @@ class DataGen
public function PERIMETRE()
{
$data = require $this->oseAdmin->getOseDir() . 'data/perimetres.php';
$perimetres = [];
foreach ($data as $CODE => $LIBELLE) {
$perimetres[] = compact('CODE', 'LIBELLE');
}
return $perimetres;
}
public function SOURCE()
{
return require $this->oseAdmin->getOseDir() . 'data/sources.php';
}
public function TBL()
{
return require $this->oseAdmin->getOseDir() . 'data/tbl.php';
......@@ -302,4 +331,11 @@ class DataGen
return $typesValidation;
}
public function UTILISATEUR()
{
return require $this->oseAdmin->getOseDir() . 'data/utilisateurs.php';
}
}
\ No newline at end of file
......@@ -24,6 +24,11 @@ class OseAdmin
*/
private $tags = false;
/**
* @var int
*/
private $oseAppliId;
/**
* @var string
*/
......@@ -343,6 +348,22 @@ class OseAdmin
public function getOseAppliId(): int
{
if (!$this->oseAppliId){
$u = $this->oseAdmin->getBdd()->select("SELECT id FROM UTILISATEUR WHERE USERNAME='oseappli'");
if (isset($u[0]['ID'])){
$this->oseAppliId = (int)$u[0]['ID'];
}else{
throw new \Exception('Utilisateur système "oseappli" non trouvé!!');
}
}
return $this->oseAppliId;
}
/**
* @return \BddAdmin\Bdd
*/
......
<?php
return [
'etablissement' => 'Établissement',
'composante' => 'Composante',
'diplome' => 'Diplôme',
];
\ No newline at end of file
<?php
/**
* Created by PhpStorm.
* User: laurent
* Date: 19/07/19
* Time: 10:40
*/
\ No newline at end of file
<?php
return [
[
'CODE' => 'OSE',
'LIBELLE' => 'OSE',
'IMPORTABLE' => false,
],
];
\ No newline at end of file
<?php
return [
[
'USERNAME' => 'oseappli',
'EMAIL' => 'dsi.applications@unicaen.fr',
'DISPLAY_NAME' => 'Application OSE',
'PASSWORD' => 'x',
'STATE' => 1,
'CODE' => null,
'PASSWORD_RESET_TOKEN' => null,
],
];
\ No newline at end of file
Supports Markdown
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