raspisms/controllers/settings.php

69 lines
1.7 KiB
PHP
Executable File

<?php
/**
* Page des réglages de RaspiSMS
*/
class settings extends Controller
{
/**
* Cette fonction est appelée avant toute les autres :
* Elle vérifie que l'utilisateur est bien connecté && est admin
* @return void;
*/
public function before()
{
internalTools::verifyConnect();
if (!$_SESSION['admin'])
{
die();
}
}
/**
* Cette fonction retourne la page d'accueil des réglages de RaspiSMS
*/
public function byDefault()
{
return $this->render('settings/default');
}
/**
* Cette fonction permet de mettre à jour un réglage
* @param string $settingName : Le nom du réglage à modifier
* @param $csrf : Le jeton CSRF
* @param string $_POST['settingValue'] : La nouvelle valeur du réglage
* @return boolean
*/
public function change($settingName, $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;
}
//On vérifie que la valeur est définie
if (!isset($_POST['settingValue']))
{
$_SESSION['errormessage'] = 'Vous devez fournir une valeur pour le réglage !';
header('Location: ' . $this->generateUrl('settings'));
return false;
}
global $db;
if (!$db->updateTableWhere('settings', ['value' => $_POST['settingValue']], ['name' => $settingName]))
{
$_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;
}
}