Overview
Comment: | Ajout possibilité de remettre à zéro la base de données (réinstallation en fait) |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | dev |
Files: | files | file ages | folders |
SHA1: |
d489756c8ebaa99c9f3a52ffff522450 |
User & Date: | bohwaz on 2018-08-04 00:42:15 |
Other Links: | branch diff | manifest | tags |
Context
2018-08-06
| ||
13:42 | La gestion de la queue de mail sera externalisée, ce qui fait plus de sens pour les fermes à Garradin check-in: ac0720b762 user: bohwaz tags: dev | |
2018-08-04
| ||
00:42 | Ajout possibilité de remettre à zéro la base de données (réinstallation en fait) check-in: d489756c8e user: bohwaz tags: dev | |
00:41 | Ajout contraintes sur les champs de type date dans la table membres check-in: f41f7b540e user: bohwaz tags: dev | |
Changes
Modified src/include/lib/Garradin/Config.php from [868d015351] to [3274b848e7].
︙ | ︙ | |||
16 17 18 19 20 21 22 23 24 25 26 27 28 29 | * Singleton simple * @return Config */ static public function getInstance() { return self::$_instance ?: self::$_instance = new Config; } /** * Empêche de cloner l'objet * @return void */ private function __clone() { | > > > > > | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | * Singleton simple * @return Config */ static public function getInstance() { return self::$_instance ?: self::$_instance = new Config; } static public function deleteInstance() { self::$_instance = null; } /** * Empêche de cloner l'objet * @return void */ private function __clone() { |
︙ | ︙ |
Modified src/include/lib/Garradin/DB.php from [1dead0b7c1] to [7fa1101431].
︙ | ︙ | |||
45 46 47 48 49 50 51 52 53 54 55 56 57 58 | // Activer les contraintes des foreign keys $this->db->exec('PRAGMA foreign_keys = ON;'); $this->db->createFunction('transliterate_to_ascii', ['Garradin\Utils', 'transliterateToAscii']); } } /** * Import a file containing SQL commands * Allows to use the statement ".read other_file.sql" to load other files * @param string $file Path to file containing SQL commands * @return boolean */ | > > > > > | 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | // Activer les contraintes des foreign keys $this->db->exec('PRAGMA foreign_keys = ON;'); $this->db->createFunction('transliterate_to_ascii', ['Garradin\Utils', 'transliterateToAscii']); } } public function close() { parent::close(); self::$_instance = null; } /** * Import a file containing SQL commands * Allows to use the statement ".read other_file.sql" to load other files * @param string $file Path to file containing SQL commands * @return boolean */ |
︙ | ︙ |
Modified src/include/lib/Garradin/Install.php from [e286e959c9] to [3c46c95555].
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <?php namespace Garradin; /** * Pour procéder à l'installation de l'instance Garradin * Utile pour automatiser l'installation sans passer par la page d'installation */ class Install { static public function install($nom_asso, $adresse_asso, $email_asso, $nom_categorie, $nom_membre, $email_membre, $passe_membre, $site_asso = WWW_URL) { $db = DB::getInstance(true); // Taille de la page de DB, on force à 4096 (défaut dans les dernières // versions de SQLite mais pas les vieilles) $db->exec('PRAGMA page_size = 4096;'); | > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | <?php namespace Garradin; /** * Pour procéder à l'installation de l'instance Garradin * Utile pour automatiser l'installation sans passer par la page d'installation */ class Install { static public function reset(Membres\Session $session, $password, array $options = []) { $config = (object) Config::getInstance()->getConfig(); $user = $session->getUser(); if (!$session->checkPassword($password, $user->passe)) { throw new UserException('Le mot de passe ne correspond pas.'); } (new Sauvegarde)->create(date('Y-m-d-His-') . 'avant-remise-a-zero'); DB::getInstance()->close(); Config::deleteInstance(); unlink(DB_FILE); return self::install($config->nom_asso, $config->adresse_asso, $config->email_asso, 'Bureau', $user->identite, $user->email, $password, $config->site_asso); } static public function install($nom_asso, $adresse_asso, $email_asso, $nom_categorie, $nom_membre, $email_membre, $passe_membre, $site_asso = WWW_URL) { $db = DB::getInstance(true); // Taille de la page de DB, on force à 4096 (défaut dans les dernières // versions de SQLite mais pas les vieilles) $db->exec('PRAGMA page_size = 4096;'); |
︙ | ︙ |
Modified src/templates/admin/config/donnees/_menu.tpl from [5c0a10d272] to [c98481c3a3].
1 2 3 | <ul class="actions sub"> <li{if $current == 'index'} class="current"{/if}><a href="{$admin_url}config/donnees/">Sauvegarder et restaurer</a></li> <li{if $current == 'import'} class="current"{/if}><a href="{$admin_url}config/donnees/import.php">Import et export</a></li> | < > > | 1 2 3 4 5 6 7 8 9 | <ul class="actions sub"> <li{if $current == 'index'} class="current"{/if}><a href="{$admin_url}config/donnees/">Sauvegarder et restaurer</a></li> <li{if $current == 'import'} class="current"{/if}><a href="{$admin_url}config/donnees/import.php">Import et export</a></li> <li{if $current == 'local'} class="current"{/if}><a href="{$admin_url}config/donnees/local.php">Gestion des sauvegardes</a></li> {if Garradin\ENABLE_AUTOMATIC_BACKUPS} <li{if $current == 'automatique'} class="current"{/if}><a href="{$admin_url}config/donnees/automatique.php">Configuration de la sauvegarde automatique</a></li> {/if} <li{if $current == 'reset'} class="current"{/if}><a href="{$admin_url}config/donnees/reset.php">Remise à zéro</a></li> </ul> |
Added src/templates/admin/config/donnees/reset.tpl version [b44198b72b].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | {include file="admin/_head.tpl" title="Remise à zéro" current="config"} {include file="admin/config/_menu.tpl" current="donnees"} {include file="admin/config/donnees/_menu.tpl" current="reset"} {form_errors} {if $ok !== null} <p class="confirm">La remise à zéro a été effectuée. Une sauvegarde a également été créée.</p> </p> {/if} <form method="post" action="{$self_url_no_qs}"> <fieldset> <legend>Remise à zéro</legend> <p class="error"> Attention : toutes les données seront effacées ! Ceci inclut les membres, les opérations comptables, les pages du wiki, etc. Seul votre compte membre sera re-créé avec le même email et mot de passe. </p> <p class="help"> Une sauvegarde sera automatiquement créée avant de procéder à la remise à zéro. </p> <dl> <dt><label for="f_passe_verif">Votre mot de passe</label> (pour vérification)</dt> <dd><input type="password" name="passe_verif" id="f_passe_verif" /></dd> </dl> <p> {csrf_field key="reset"} <input type="submit" name="reset_ok" value="Oui, je veux remettre à zéro" /> </p> </fieldset> </form> {include file="admin/_foot.tpl"} |
Modified src/www/admin/_inc.php from [d2b4f407f4] to [d6f6a6d40f].
︙ | ︙ | |||
75 76 77 78 79 80 81 | { // Construction de la liste de plugins pour le menu // et stockage en session pour ne pas la recalculer à chaque page $session->set('plugins_menu', Plugin::listMenu($user)); } $tpl->assign('plugins_menu', $session->get('plugins_menu')); | | < < < < < | 75 76 77 78 79 80 81 82 | { // Construction de la liste de plugins pour le menu // et stockage en session pour ne pas la recalculer à chaque page $session->set('plugins_menu', Plugin::listMenu($user)); } $tpl->assign('plugins_menu', $session->get('plugins_menu')); } |
Modified src/www/admin/config/donnees/index.php from [ef2538f8fe] to [a41ebc5c56].
︙ | ︙ | |||
37 38 39 40 41 42 43 | } } } $tpl->assign('db_size', $s->getDBSize()); $tpl->assign('files_size', $s->getDBFilesSize()); | | | 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | } } } $tpl->assign('db_size', $s->getDBSize()); $tpl->assign('files_size', $s->getDBFilesSize()); $tpl->assign('code', isset($code) ? $code : null); $tpl->assign('ok_code', qg('code')); $tpl->assign('ok', qg('ok')); $tpl->assign('now_date', date('Y-m-d')); $tpl->assign('max_file_size', Utils::getMaxUploadSize()); $tpl->display('admin/config/donnees/index.tpl'); |
Added src/www/admin/config/donnees/reset.php version [3891123042].
> > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <?php namespace Garradin; require_once __DIR__ . '/../_inc.php'; $s = new Sauvegarde; if (f('reset_ok')) { $form->check('reset'); if (!$form->hasErrors()) { try { Install::reset($session, f('passe_verif')); Utils::redirect(ADMIN_URL . 'config/donnees/reset.php?ok'); } catch (UserException $e) { $form->addError($e->getMessage()); } } } $tpl->assign('ok', qg('ok')); $tpl->display('admin/config/donnees/reset.tpl'); |