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

renforcement des scripts de migration & nouvelle note de MAJ dans le CHL

parent d7c1bdb6
No related branches found
No related tags found
No related merge requests found
...@@ -95,6 +95,7 @@ Objectif : Plafonds personnalisables & refonte gestion des statuts ...@@ -95,6 +95,7 @@ Objectif : Plafonds personnalisables & refonte gestion des statuts
* **ATTENTION : OSE 18** ne pourra être mis à jour **qu'à partir de OSE 17.x**. Si vous utilisez une version plus ancienne de OSE, veuillez **d'abord** mettre à jour en version 17. * **ATTENTION : OSE 18** ne pourra être mis à jour **qu'à partir de OSE 17.x**. Si vous utilisez une version plus ancienne de OSE, veuillez **d'abord** mettre à jour en version 17.
* **ATTENTION : PHP 8.0** est requis * **ATTENTION : PHP 8.0** est requis
* **IMPORTANT** AVANT de démarrer la mise à jour, dans le répertoire de OSE, lancez la commande `php composer.phar self-update --2` à partir du répertoire de l'application.
* La mise à jour des vues matérialisées MV_EXT_* ne se fait plus à la mise à jour. Il faut maintenant lancer la commande `./bin/ose maj-exports` tous les jours et donc ajouter une ligne à votre _CronTab_ (cf. [Doc INSTALL mise à jour](install.md)) * La mise à jour des vues matérialisées MV_EXT_* ne se fait plus à la mise à jour. Il faut maintenant lancer la commande `./bin/ose maj-exports` tous les jours et donc ajouter une ligne à votre _CronTab_ (cf. [Doc INSTALL mise à jour](install.md))
* Pour bénéficier de la ventilation des heures par types d'intervention vous pouvez vous inspirer du [modèle de contrat de Caen](https://git.unicaen.fr/open-source/OSE/-/blob/master/data/modele_contrat_ventile.odt) pour adapter votre propre modèle de contrat. * Pour bénéficier de la ventilation des heures par types d'intervention vous pouvez vous inspirer du [modèle de contrat de Caen](https://git.unicaen.fr/open-source/OSE/-/blob/master/data/modele_contrat_ventile.odt) pour adapter votre propre modèle de contrat.
* Au niveau du fichier de configuration [config.local.php](config.local.php.default), vous pouvez remplir le paramètre (facultatif) ldap>systemeInformationUrl. * Au niveau du fichier de configuration [config.local.php](config.local.php.default), vous pouvez remplir le paramètre (facultatif) ldap>systemeInformationUrl.
......
...@@ -58,18 +58,6 @@ class v18Plafonds extends AbstractMigration ...@@ -58,18 +58,6 @@ class v18Plafonds extends AbstractMigration
public function preMigrationIndicateurs()
{
$bdd = $this->manager->getBdd();
$c = $this->manager->getOseAdmin()->getConsole();
$c->begin('Préparation à la mise à jour des indicateurs');
$c->end('Préparation à la migration des indicateurs terminée');
}
public function migrationParamsStructure() public function migrationParamsStructure()
{ {
$bdd = $this->manager->getBdd(); $bdd = $this->manager->getBdd();
......
<?php
class v18Privileges extends AbstractMigration
{
public function description(): string
{
return "Migration des privilèges de OSE 17 vers OSE 18";
}
public function utile(): bool
{
if (!$this->manager->hasTable('SAVE_V18_PRIVILEGE')) {
return false;
}
$sql = "
SELECT
count(*) c
FROM
privilege p
JOIN categorie_privilege cp ON cp.id = p.categorie_id
WHERE
cp.code = 'enseignement'
AND p.code = 'visualisation'
";
return $this->manager->getBdd()->select($sql)[0]['C'] == '1';
}
public function after()
{
$c = $this->manager->getOseAdmin()->getConsole();
$bdd = $this->manager->getBdd();
$sql = "
INSERT INTO ROLE_PRIVILEGE (privilege_id,role_id)
SELECT
np.id privilege_id, r.id role_id
FROM
save_v18_privilege p
JOIN categorie_privilege cp ON cp.id = p.categorie_id
JOIN save_v18_role_privilege rp ON rp.privilege_id = p.id
JOIN role r ON r.id = rp.role_id AND r.code <> 'administrateur'
JOIN (SELECT 'prevu' code FROM dual UNION ALL SELECT 'realise' code FROM dual) tvh ON 1=1
JOIN privilege np ON np.categorie_id = cp.id AND np.code = tvh.code || '-' || p.code
LEFT JOIN role_privilege nrp ON nrp.privilege_id = np.id AND nrp.role_id = r.id
WHERE
cp.code IN ('enseignement','referentiel')
AND p.code IN ('visualisation','edition', 'validation', 'autovalidation')
AND rp.role_id <> COALESCE(nrp.role_id,0)
";
$bdd->exec($sql);
$c->msg('Transfert d\'anciens privilèges vers le nouveau système');
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment