Skip to content
Snippets Groups Projects
Commit bc9a8ae6 authored by Laurent Lecluse's avatar Laurent Lecluse
Browse files

Ajout de plusieurs commandes en admin :

* Possibilité de regénérer les privilèges en BDD
* Possibilité de mettre à jour le fichier DDL de la BDD
* Mise à jour du help
parent acae0900
No related branches found
No related tags found
No related merge requests found
......@@ -12,12 +12,28 @@ $actions = [
"maj-public-links" => "Mise à jour des liens vers les répertoires publics des dépendances",
"clear-cache" => "Vidage du cache de l'application",
"test-bdd" => "Test d'accès à la base de données",
"update-bdd" => "Mise à jour de la base de données de l'application (sans les fichiers)",
];
$actionsDev = [
"update-ddl" => "Mise à jour du fichier de définition de la base de données à partir de cette dernière",
"update-bdd-privileges" => "Mise à jour des privilèges de la base de données",
];
if ((getenv('APPLICATION_ENV') ?: 'dev') == 'dev'){
$actions = array_merge($actions, $actionsDev);
}
$c->printMainTitle("OSE", 15);
$c->println('Actions possibles :');
$maxLength = 0;
foreach ($actions as $a => $l) {
if (strlen($a) > $maxLength) $maxLength = strlen($a);
}
foreach ($actions as $a => $l) {
$c->print($a, $c::COLOR_BLACK, $c::BG_LIGHT_GRAY);
$c->print(str_pad('', $maxLength - strlen($a), ' '));
$c->println(" : " . $l);
}
\ No newline at end of file
<?php
//include $oa->getOseDir().'public/index.php';
\ No newline at end of file
<?php
if (!$oa->bddIsOk($msg)) {
$c->printDie("Impossible d'accéder à la base de données : $msg!"
. "\nVeuillez contrôler vos paramètres de configuration s'il vous plaît, avant de refaire une tentative de MAJ de la base de données (./bin/ose update-bdd).");
}
$bdd = $oa->getBdd();
$schema = new \BddAdmin\Schema($bdd);
$c->println("\nMise à jour des privilèges dans la base de données", $c::COLOR_LIGHT_CYAN);
$dataGen = new DataGen($oa);
$dataGen->updatePrivileges();
\ No newline at end of file
<?php
$bdd = $oa->getBdd();
$schema = new \BddAdmin\Schema($bdd);
$filename = $oa->getOseDir().'data/ddl.php';
$ddlConfig = [
'table' => ['excludes' => 'UNICAEN_%'],
'sequence' => ['excludes' => 'UNICAEN_%'],
'primary-constraint' => ['excludes' => 'UNICAEN_%'],
'index' => ['excludes' => 'UNICAEN_%'],
'view' => ['excludes' => ['SRC_%', 'V_DIFF_%', 'V_SYMPA_%', 'V_UNICAEN_%']],
'materialized-view' => ['includes' => ['MV_EXT_SERVICE', 'TBL_NOEUD']],
'package' => ['excludes' => ['UCBN_LDAP', 'UNICAEN_IMPORT_AUTOGEN_PROCS__']],
];
$ddl = $schema->getDdl($ddlConfig);
$schema->saveToFile($ddl, $filename);
$c->println('Fichier de DDL '.$filename.' Mis à jour');
\ No newline at end of file
......@@ -96,12 +96,12 @@ class DataGen
],
[
'table' => 'CATEGORIE_PRIVILEGE',
'context' => ['install', 'update'],
'context' => ['install', 'update', 'privileges'],
'key' => 'CODE',
],
[
'table' => 'PRIVILEGE',
'context' => ['install', 'update'],
'context' => ['install', 'update', 'privileges'],
'key' => ['CATEGORIE_ID', 'CODE'],
'options' => ['columns' => ['CATEGORIE_ID' => ['transformer' => 'SELECT id FROM categorie_privilege WHERE code = %s']]],
],
......@@ -356,6 +356,13 @@ class DataGen
public function updatePrivileges()
{
return $this->action('privileges');
}
private function action(string $action, string $table = null)
{
$this->nomenclature = require $this->oseAdmin->getOseDir() . 'data/nomenclatures.php';
......
......@@ -5,7 +5,9 @@ spl_autoload_register(function ($class) {
$dir = dirname(__DIR__) . '/admin/src/';
$class = $dir . str_replace('\\', '/', $class) . '.php';
if (file_exists($class)) {
require_once $class;
}
});
$c = new Console();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment