update settings

This commit is contained in:
osaajani 2019-11-11 04:05:26 +01:00
parent a99e159b1f
commit 9b7b78b306
12 changed files with 92 additions and 52 deletions

View file

@ -21,22 +21,52 @@ namespace controllers\internals;
}
/**
* Return all settings.
*
* @return array || false
* Return all settings of a user.
* @param int $id_user : user id
* @return array
*/
public function get_all()
public function gets_for_user (int $id_user)
{
return $this->model_setting->get_all();
$settings = $this->model_setting->gets_for_user($id_user);
$settings_array = [];
foreach ($settings as $setting)
{
$settings_array[$setting['name']] = $setting['value'];
}
return $settings_array;
}
/**
* Update a setting by his name.
*
* Update a setting by his name and user id.
* @param int $id_user : user id
* @param string $name : setting name
* @param mixed $value
* @return int : number of modified lines
*/
public function update(string $name, $value): bool
public function update (int $id_user, string $name, $value) : bool
{
return (bool) $this->model_setting->update($name, $value);
return (bool) $this->model_setting->update($id_user, $name, $value);
}
/**
* Create a new setting
* @param int $id_user : user id
* @param string $name : setting name
* @param mixed $value : value of the setting
* @return bool
*/
public function insert (int $id_user, string $name, $value) : bool
{
$setting = [
'id_user' => $id_user,
'name' => $name,
'value' => $value,
];
return (bool) $this->model_setting->insert($setting);
}
}

View file

@ -17,6 +17,7 @@ namespace controllers\publics;
class Connect extends \descartes\Controller
{
private $internal_user;
private $internal_setting;
/**
* Cette fonction est appelée avant toute les autres :.
@ -28,6 +29,7 @@ namespace controllers\publics;
$bdd = \descartes\Model::_connect(DATABASE_HOST, DATABASE_NAME, DATABASE_USER, DATABASE_PASSWORD);
$this->internal_user = new \controllers\internals\User($bdd);
$this->internal_setting = new \controllers\internals\Setting($bdd);
}
/**
@ -62,6 +64,9 @@ namespace controllers\publics;
return $this->redirect(\descartes\Router::url('Connect', 'login'));
}
$settings = $this->internal_setting->gets_for_user($user['id']);
$user['settings'] = $settings;
$_SESSION['connect'] = true;
$_SESSION['user'] = $user;

View file

@ -51,24 +51,16 @@ namespace controllers\publics;
return $this->redirect(\descartes\Router::url('Setting', 'show'));
}
if (!\controllers\internals\Tool::is_admin())
{
\FlashMessage\FlashMessage::push('danger', 'Vous devez être administrateur pour pouvoir modifier un réglage.');
return $this->redirect(\descartes\Router::url('Setting', 'show'));
}
$setting_value = $_POST['setting_value'] ?? false;
if (false === $setting_value)
{
\FlashMessage\FlashMessage::push('danger', 'Vous devez renseigner une valeure pour le réglage.');
return $this->redirect(\descartes\Router::url('Setting', 'show'));
}
$update_setting_result = $this->internal_setting->update($setting_name, $setting_value);
$update_setting_result = $this->internal_setting->update($_SESSION['user']['id'], $setting_name, $setting_value);
if (false === $update_setting_result)
{
\FlashMessage\FlashMessage::push('danger', 'Impossible de mettre à jour ce réglage.');
@ -77,7 +69,6 @@ namespace controllers\publics;
}
\FlashMessage\FlashMessage::push('success', 'Le réglage a bien été mis à jour.');
return $this->redirect(\descartes\Router::url('Setting', 'show'));
}
}