internal_setting = new \controllers\internals\Setting($bdd); \controllers\internals\Tool::verify_connect(); } /** * Return all settings to administrate them */ public function show() { return $this->render('setting/show'); } /** * Update a setting value identified by his name * @param string $setting_name : Name of the setting to modify * @param $csrf : CSRF token * @param string $_POST['setting_value'] : Setting's new value * @return boolean; */ public function update(string $setting_name, string $csrf) { if (!$this->verifyCSRF($csrf)) { \DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !'); return header('Location: ' . \descartes\Router::url('Setting', 'show')); } if (!\controllers\internals\Tool::is_admin()) { \DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Vous devez être administrateur pour pouvoir modifier un réglage.'); return header('Location: ' . \descartes\Router::url('Setting', 'show')); } $setting_value = $_POST['setting_value'] ?? false; if ($setting_value === false) { \DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Vous devez renseigner une valeure pour le réglage.'); return header('Location: ' . \descartes\Router::url('Setting', 'show')); } $update_setting_result = $this->internal_setting->update($setting_name, $setting_value); if ($update_setting_result === false) { \DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Impossible de mettre à jour ce réglage.'); return header('Location: ' . \descartes\Router::url('Setting', 'show')); } \DescartesSessionMessages\internals\DescartesSessionMessages::push('success', 'Le réglage a bien été mis à jour.'); return header('Location: ' . \descartes\Router::url('Setting', 'show')); } }