From 97e564ba735d93964689661e70b6ef6ab9a201c8 Mon Sep 17 00:00:00 2001 From: Pierre-Lin Bonnemaison Date: Mon, 21 Sep 2015 22:44:51 +0200 Subject: [PATCH] =?UTF-8?q?Ajout=20d'une=20page=20de=20configuration=20glo?= =?UTF-8?q?bale=20de=20RaspiSMS,=20uniquement=20pour=20l'admin.=20Permet?= =?UTF-8?q?=20pour=20l'instant=20de=20g=C3=A9rer=20uniquement=20l'activati?= =?UTF-8?q?on=20du=20transfer=20de=20SMS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- console.php | 7 +++ controllers/internalConsole.php | 6 +++ controllers/internalIncs.php | 1 + controllers/settings.php | 69 +++++++++++++++++++++++++++ createDatabase.sql | 12 +++++ index.php | 8 ++++ templates/internalIncs/nav.php | 5 ++ templates/settings/default.php | 84 +++++++++++++++++++++++++++++++++ 8 files changed, 192 insertions(+) create mode 100755 controllers/settings.php create mode 100755 templates/settings/default.php diff --git a/console.php b/console.php index 72522db..2f55be8 100755 --- a/console.php +++ b/console.php @@ -21,6 +21,13 @@ ######### //On va appeler un modèle, est l'initialiser $db = new DataBase($bdd);; + + //On va ajouter les réglages globaux de RaspiSMS modifiables via l'interface + $settings = $db->getFromTableWhere('settings'); + foreach ($settings as $setting) + { + define('RASPISMS_SETTINGS_' . mb_convert_case($setting['name'], MB_CASE_UPPER), $setting['value']); + } ########### # ROUTAGE # diff --git a/controllers/internalConsole.php b/controllers/internalConsole.php index 57d7934..a81f383 100755 --- a/controllers/internalConsole.php +++ b/controllers/internalConsole.php @@ -300,6 +300,12 @@ */ public function sendTransfers () { + if (!RASPISMS_SETTINGS_TRANSFER) + { + echo "Le transfer de SMS est désactivé ! \n"; + return false; + } + global $db; $transfers = $db->getFromTableWhere('transfers', ['progress' => false]); diff --git a/controllers/internalIncs.php b/controllers/internalIncs.php index ea1ecdf..56338f2 100755 --- a/controllers/internalIncs.php +++ b/controllers/internalIncs.php @@ -43,6 +43,7 @@ $email = isset($_SESSION['email']) ? $_SESSION['email'] : 'Mon compte'; $this->render('internalIncs/nav', array( 'email' => $email, + 'admin' => $_SESSION['admin'], 'page' => $page, )); } diff --git a/controllers/settings.php b/controllers/settings.php new file mode 100755 index 0000000..b95643c --- /dev/null +++ b/controllers/settings.php @@ -0,0 +1,69 @@ +render('settings/default'); + } + + /** + * Cette fonction permet de mettre à jour l'activation ou la désactivation du transfer des SMS + * @param $csrf : Le jeton CSRF + * @param string $_POST['transfer'] : Le nouveau transfer de l'utilisateur + * @return void; + */ + public function changeTransfer($csrf) + { + //On vérifie que le jeton csrf est bon + if (!internalTools::verifyCSRF($csrf)) + { + $_SESSION['errormessage'] = 'Jeton CSRF invalide !'; + header('Location: ' . $this->generateUrl('settings')); + return false; + } + + //Creation de l'object de base de données + global $db; + + if (!isset($_POST['transfer'])) + { + $_SESSION['errormessage'] = 'Vous devez renseigner un valeur'; + header('Location: ' . $this->generateUrl('settings')); + return false; + } + + $transfer = (int)$_POST['transfer']; + + if (!$db->updateTableWhere('settings', ['value' => $transfer], ['name' => 'transfer'])) + { + $_SESSION['errormessage'] = 'Impossible de mettre les données à jour.'; + header('Location: ' . $this->generateUrl('settings')); + return false; + } + + $_SESSION['successmessage'] = 'Les données ont été mises à jour.'; + header('Location: ' . $this->generateUrl('settings')); + return true; + } + } diff --git a/createDatabase.sql b/createDatabase.sql index 4310c08..9d0d114 100755 --- a/createDatabase.sql +++ b/createDatabase.sql @@ -3,6 +3,14 @@ CREATE DATABASE IF NOT EXISTS raspisms; USE raspisms; +CREATE TABLE IF NOT EXISTS settings +( + id INT NOT NULL AUTO_INCREMENT, + name VARCHAR(20) NOT NULL, + value VARCHAR(1000) NOT NULL, + PRIMARY KEY (id) +); + CREATE TABLE IF NOT EXISTS receiveds ( id INT NOT NULL AUTO_INCREMENT, @@ -126,3 +134,7 @@ CREATE TABLE IF NOT EXISTS transfers PRIMARY KEY (id), FOREIGN KEY (id_received) REFERENCES receiveds (id) ON DELETE CASCADE ON UPDATE CASCADE ); + +#On insert les données par défaut dans les settings +INSERT INTO settings (name, value) +VALUES ('transfer', '1'); diff --git a/index.php b/index.php index b01642a..eb8ffb5 100755 --- a/index.php +++ b/index.php @@ -18,6 +18,14 @@ //On va appeler un modèle, est l'initialiser $db = new DataBase($bdd);; + //On va ajouter les réglages globaux de RaspiSMS modifiables via l'interface + $settings = $db->getFromTableWhere('settings'); + foreach ($settings as $setting) + { + define('RASPISMS_SETTINGS_' . mb_convert_case($setting['name'], MB_CASE_UPPER), $setting['value']); + } + + ########### # ROUTAGE # ########### diff --git a/templates/internalIncs/nav.php b/templates/internalIncs/nav.php index 49ba288..bd57133 100755 --- a/templates/internalIncs/nav.php +++ b/templates/internalIncs/nav.php @@ -68,6 +68,11 @@
  • > Utilisateurs
  • + +
  • > + Réglages +
  • + diff --git a/templates/settings/default.php b/templates/settings/default.php new file mode 100755 index 0000000..c0643b0 --- /dev/null +++ b/templates/settings/default.php @@ -0,0 +1,84 @@ +head('Réglages'); +?> +
    +nav('settings'); +?> +
    +
    + +
    +
    +

    + Dashboard Réglages +

    + +
    +
    + + +
    +
    +
    +
    +

    Les réglages de RaspiSMS

    +
    +
    +
    +
    +
    +

    Transfert des SMS par e-mail

    +
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +footer();