mirror of
https://github.com/RaspbianFrance/raspisms.git
synced 2025-06-07 07:06:26 +02:00
Fix all phpstan and php-cs-fixer errors
This commit is contained in:
parent
117c18ddca
commit
485a0cb6fd
39 changed files with 994 additions and 1142 deletions
|
@ -7,10 +7,10 @@
|
|||
|
||||
public function __construct()
|
||||
{
|
||||
$bdd = Model::connect(DATABASE_HOST, DATABASE_NAME, DATABASE_USER, DATABASE_PASSWORD);
|
||||
$bdd = \descartes\Model::_connect(DATABASE_HOST, DATABASE_NAME, DATABASE_USER, DATABASE_PASSWORD);
|
||||
$this->internal_user = new \controllers\internals\User($bdd);
|
||||
|
||||
\controllers\internals\Tool::verify_connect();
|
||||
\controllers\internals\Tool::verifyconnect();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -31,25 +31,25 @@
|
|||
{
|
||||
$password = $_POST['password'] ?? false;
|
||||
|
||||
if (!$this->verifyCSRF($csrf)) {
|
||||
\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !');
|
||||
return header('Location: ' . \descartes\Router::url('Account', 'show'));
|
||||
if (!$this->verify_csrf($csrf)) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !');
|
||||
return $this->redirect(\descartes\Router::url('Account', 'show'));
|
||||
}
|
||||
|
||||
if (!$password) {
|
||||
\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Vous devez renseigner un mot de passe.');
|
||||
return header('Location: ' . \descartes\Router::url('Account', 'show'));
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Vous devez renseigner un mot de passe.');
|
||||
return $this->redirect(\descartes\Router::url('Account', 'show'));
|
||||
}
|
||||
|
||||
|
||||
$update_password_result = $this->internal_user->update_password($_SESSION['user']['id'], $password);
|
||||
if (!$update_password_result) {
|
||||
\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Impossible de mettre à jour le mot de passe.');
|
||||
return header('Location: ' . \descartes\Router::url('Account', 'show'));
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Impossible de mettre à jour le mot de passe.');
|
||||
return $this->redirect(\descartes\Router::url('Account', 'show'));
|
||||
}
|
||||
|
||||
\DescartesSessionMessages\internals\DescartesSessionMessages::push('success', 'Le mot de passe a bien été mis à jour.');
|
||||
return header('Location: ' . \descartes\Router::url('Account', 'show'));
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('success', 'Le mot de passe a bien été mis à jour.');
|
||||
return $this->redirect(\descartes\Router::url('Account', 'show'));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -61,26 +61,26 @@
|
|||
{
|
||||
$transfer = $_POST['transfer'] ?? false;
|
||||
|
||||
if (!$this->verifyCSRF($csrf)) {
|
||||
\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !');
|
||||
return header('Location: ' . \descartes\Router::url('Account', 'show'));
|
||||
if (!$this->verify_csrf($csrf)) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !');
|
||||
return $this->redirect(\descartes\Router::url('Account', 'show'));
|
||||
}
|
||||
|
||||
if ($transfer === false) {
|
||||
\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Vous devez choisir une option parmis celles de la liste déroulante.');
|
||||
return header('Location: ' . \descartes\Router::url('Account', 'show'));
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Vous devez choisir une option parmis celles de la liste déroulante.');
|
||||
return $this->redirect(\descartes\Router::url('Account', 'show'));
|
||||
}
|
||||
|
||||
$transfer_update_result = $this->internal_user->update_transfer($_SESSION['user']['id'], $transfer);
|
||||
if (!$transfer_update_result) {
|
||||
\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Impossible de mettre à jour.');
|
||||
return header('Location: ' . \descartes\Router::url('Account', 'show'));
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Impossible de mettre à jour.');
|
||||
return $this->redirect(\descartes\Router::url('Account', 'show'));
|
||||
}
|
||||
|
||||
$_SESSION['user']['transfer'] = $transfer;
|
||||
|
||||
\DescartesSessionMessages\internals\DescartesSessionMessages::push('success', 'Le transfert a bien été ' . ($transfer ? 'activé' : 'désactivé') . '.');
|
||||
return header('Location: ' . \descartes\Router::url('Account', 'show'));
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('success', 'Le transfert a bien été ' . ($transfer ? 'activé' : 'désactivé') . '.');
|
||||
return $this->redirect(\descartes\Router::url('Account', 'show'));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -91,33 +91,34 @@
|
|||
*/
|
||||
public function update_email($csrf)
|
||||
{
|
||||
if (!$this->verifyCSRF($csrf)) {
|
||||
\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !');
|
||||
return header('Location: ' . \descartes\Router::url('Account', 'show'));
|
||||
if (!$this->verify_csrf($csrf)) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !');
|
||||
return $this->redirect(\descartes\Router::url('Account', 'show'));
|
||||
}
|
||||
|
||||
$email = $_POST['email'] ?? false;
|
||||
|
||||
if (!$email) {
|
||||
\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Vous devez fournir une adresse e-mail !');
|
||||
return header('Location: ' . \descartes\Router::url('Account', 'show'));
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Vous devez fournir une adresse e-mail !');
|
||||
return $this->redirect(\descartes\Router::url('Account', 'show'));
|
||||
}
|
||||
|
||||
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
|
||||
\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'L\'adresse e-mail n\'est pas une adresse valide.');
|
||||
return header('Location: ' . \descartes\Router::url('Account', 'show'));
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'L\'adresse e-mail n\'est pas une adresse valide.');
|
||||
return $this->redirect(\descartes\Router::url('Account', 'show'));
|
||||
}
|
||||
|
||||
$update_email_result = $this->internal_user->update_email($_SESSION['user']['id'], $email);
|
||||
if (!$update_email_result) {
|
||||
\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Impossible de mettre à jour.');
|
||||
return header('Location: ' . \descartes\Router::url('Account', 'show'));
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Impossible de mettre à jour.');
|
||||
return $this->redirect(\descartes\Router::url('Account', 'show'));
|
||||
;
|
||||
}
|
||||
|
||||
$_SESSION['user']['email'] = $email;
|
||||
|
||||
\DescartesSessionMessages\internals\DescartesSessionMessages::push('success', 'L\'email a bien été mis à jour.');
|
||||
return header('Location: ' . \descartes\Router::url('Account', 'show'));
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('success', 'L\'email a bien été mis à jour.');
|
||||
return $this->redirect(\descartes\Router::url('Account', 'show'));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -127,22 +128,22 @@
|
|||
*/
|
||||
public function delete($csrf)
|
||||
{
|
||||
if (!$this->verifyCSRF($csrf)) {
|
||||
\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !');
|
||||
return header('Location: ' . \descartes\Router::url('Account', 'show'));
|
||||
if (!$this->verify_csrf($csrf)) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !');
|
||||
return $this->redirect(\descartes\Router::url('Account', 'show'));
|
||||
}
|
||||
|
||||
$delete_account = $_POST['delete_account'] ?? false;
|
||||
|
||||
if (!$delete_account) {
|
||||
\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Pour supprimer le compte, vous devez cocher la case correspondante.');
|
||||
return header('Location: ' . \descartes\Router::url('Account', 'show'));
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Pour supprimer le compte, vous devez cocher la case correspondante.');
|
||||
return $this->redirect(\descartes\Router::url('Account', 'show'));
|
||||
}
|
||||
|
||||
$delete_account_result = $this->internal_user->delete($_SESSION['user']['id']);
|
||||
if (!$delete_account_result) {
|
||||
\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Impossible de supprimer le compte.');
|
||||
return header('Location: ' . \descartes\Router::url('Account', 'show'));
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Impossible de supprimer le compte.');
|
||||
return $this->redirect(\descartes\Router::url('Account', 'show'));
|
||||
}
|
||||
|
||||
return $this->logout();
|
||||
|
@ -150,12 +151,12 @@
|
|||
|
||||
/**
|
||||
* Logout a user and redirect to login page
|
||||
* @return void
|
||||
* @return null
|
||||
*/
|
||||
public function logout()
|
||||
{
|
||||
session_unset();
|
||||
session_destroy();
|
||||
return header('Location: ' . \descartes\Router::url('Connect', 'login'));
|
||||
return $this->redirect(\descartes\Router::url('Connect', 'login'));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,17 +6,17 @@ namespace controllers\publics;
|
|||
*/
|
||||
class Command extends \descartes\Controller
|
||||
{
|
||||
public $bdd;
|
||||
|
||||
private $internal_command;
|
||||
private $internal_event;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$bdd = Model::connect(DATABASE_HOST, DATABASE_NAME, DATABASE_USER, DATABASE_PASSWORD);
|
||||
$bdd = \descartes\Model::_connect(DATABASE_HOST, DATABASE_NAME, DATABASE_USER, DATABASE_PASSWORD);
|
||||
|
||||
$this->internal_command = new \Controller\internals\Command($bdd);
|
||||
$this->internal_event = new \Controller\internals\Event($bdd);
|
||||
$this->internal_command = new \controllers\internals\Command($bdd);
|
||||
$this->internal_event = new \controllers\internals\Event($bdd);
|
||||
|
||||
\controllers\internals\Tool::verify_connect();
|
||||
\controllers\internals\Tool::verifyconnect();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -36,18 +36,18 @@ namespace controllers\publics;
|
|||
*/
|
||||
public function delete($csrf)
|
||||
{
|
||||
if (!$this->verifyCSRF($csrf)) {
|
||||
if (!$this->verify_csrf($csrf)) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !');
|
||||
header('Location: ' . \descartes\Router::url('Command', 'list'));
|
||||
$this->redirect(\descartes\Router::url('Command', 'list'));
|
||||
return false;
|
||||
}
|
||||
|
||||
$ids = $_GET['ids'] ?? [];
|
||||
foreach ($ids as $id) {
|
||||
$this->internalCommand->delete($id);
|
||||
$this->internal_command->delete($id);
|
||||
}
|
||||
|
||||
header('Location: ' . \descartes\Router::url('Command', 'list'));
|
||||
$this->redirect(\descartes\Router::url('Command', 'list'));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -68,7 +68,7 @@ namespace controllers\publics;
|
|||
global $db;
|
||||
$ids = $_GET['ids'] ?? [];
|
||||
|
||||
$commands = $this->internalCommand->get_by_ids($ids);
|
||||
$commands = $this->internal_command->get_by_ids($ids);
|
||||
|
||||
$this->render('command/edit', array(
|
||||
'commands' => $commands,
|
||||
|
@ -85,9 +85,9 @@ namespace controllers\publics;
|
|||
*/
|
||||
public function create($csrf)
|
||||
{
|
||||
if (!$this->verifyCSRF($csrf)) {
|
||||
if (!$this->verify_csrf($csrf)) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !');
|
||||
header('Location: ' . \descartes\Router::url('Command', 'list'));
|
||||
$this->redirect(\descartes\Router::url('Command', 'list'));
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -97,17 +97,17 @@ namespace controllers\publics;
|
|||
|
||||
if (!$name || !$script) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Renseignez au moins un nom et un script.');
|
||||
return header('Location: ' . \descartes\Router::url('Command', 'list'));
|
||||
return $this->redirect(\descartes\Router::url('Command', 'list'));
|
||||
}
|
||||
|
||||
|
||||
if (!$this->internalCommand->create($name, $script, $admin)) {
|
||||
if (!$this->internal_command->create($name, $script, $admin)) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Impossible créer cette commande.');
|
||||
return header('Location: ' . \descartes\Router::url('commands', 'add'));
|
||||
return $this->redirect(\descartes\Router::url('commands', 'add'));
|
||||
}
|
||||
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('success', 'La commande a bien été crée.');
|
||||
return header('Location: ' . \descartes\Router::url('Command', 'list'));
|
||||
return $this->redirect(\descartes\Router::url('Command', 'list'));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -118,26 +118,26 @@ namespace controllers\publics;
|
|||
*/
|
||||
public function update($csrf)
|
||||
{
|
||||
if (!$this->verifyCSRF($csrf)) {
|
||||
if (!$this->verify_csrf($csrf)) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !');
|
||||
header('Location: ' . \descartes\Router::url('Command', 'list'));
|
||||
$this->redirect(\descartes\Router::url('Command', 'list'));
|
||||
return false;
|
||||
}
|
||||
|
||||
$nb_commands_update = 0;
|
||||
foreach ($_POST['commands'] as $command) {
|
||||
$update_command = $this->internalCommand->update($command['id'], $command['name'], $command['script'], $command['admin']);
|
||||
$update_command = $this->internal_command->update($command['id'], $command['name'], $command['script'], $command['admin']);
|
||||
$nb_commands_update += (int) $update_command;
|
||||
}
|
||||
|
||||
if ($nb_commands_update != count($_POST['commands'])) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Certaines commandes n\'ont pas pu êtres mises à jour.');
|
||||
header('Location: ' . \descartes\Router::url('Command', 'list'));
|
||||
$this->redirect(\descartes\Router::url('Command', 'list'));
|
||||
return false;
|
||||
}
|
||||
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('success', 'Toutes les commandes ont été modifiées avec succès.');
|
||||
header('Location: ' . \descartes\Router::url('Command', 'list'));
|
||||
$this->redirect(\descartes\Router::url('Command', 'list'));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,18 +6,19 @@
|
|||
*/
|
||||
class Connect extends \descartes\Controller
|
||||
{
|
||||
private $internal_user;
|
||||
|
||||
/**
|
||||
* Cette fonction est appelée avant toute les autres :
|
||||
* @return void;
|
||||
*/
|
||||
public function _before()
|
||||
public function __construct()
|
||||
{
|
||||
global $bdd;
|
||||
global $model;
|
||||
$this->bdd = $bdd;
|
||||
$this->model = $model;
|
||||
|
||||
$this->internal_user = new \controllers\internals\User($this->bdd);
|
||||
$bdd = \descartes\Model::_connect(DATABASE_HOST, DATABASE_NAME, DATABASE_USER, DATABASE_PASSWORD);
|
||||
|
||||
$this->internal_user = new \controllers\internals\User($bdd);
|
||||
|
||||
\controllers\internals\Tool::verifyconnect();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -42,14 +43,14 @@
|
|||
$user = $this->internal_user->check_credentials($email, $password);
|
||||
if (!$user) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Email ou mot de passe invalide.');
|
||||
return header('Location: ' . \descartes\Router::url('Connect', 'login'));
|
||||
return $this->redirect(\descartes\Router::url('Connect', 'login'));
|
||||
}
|
||||
|
||||
$_SESSION['connect'] = true;
|
||||
$_SESSION['user'] = $user;
|
||||
$_SESSION['csrf'] = str_shuffle(uniqid().uniqid());
|
||||
|
||||
return header('Location: ' . \descartes\Router::url('Dashboard', 'show'));
|
||||
return $this->redirect(\descartes\Router::url('Dashboard', 'show'));
|
||||
}
|
||||
|
||||
|
||||
|
@ -69,9 +70,9 @@
|
|||
*/
|
||||
public function send_reset_password($csrf)
|
||||
{
|
||||
if (!$this->verifyCSRF($csrf)) {
|
||||
if (!$this->verify_csrf($csrf)) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !');
|
||||
header('Location: ' . \descartes\Router::url('Connect', 'forget_password'));
|
||||
$this->redirect(\descartes\Router::url('Connect', 'forget_password'));
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -80,7 +81,7 @@
|
|||
|
||||
if (!$email || !$user) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Aucun utilisateur n\'existe pour cette adresse mail.');
|
||||
header('Location: ' . \descartes\Router::url('Connect', 'forget_password'));
|
||||
$this->redirect(\descartes\Router::url('Connect', 'forget_password'));
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -126,6 +127,6 @@
|
|||
{
|
||||
session_unset();
|
||||
session_destroy();
|
||||
header('Location: ' . \descartes\Router::url('Connect', 'login'));
|
||||
$this->redirect(\descartes\Router::url('Connect', 'login'));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,20 +6,22 @@ namespace controllers\publics;
|
|||
*/
|
||||
class Contact extends \descartes\Controller
|
||||
{
|
||||
private $internal_contact;
|
||||
private $internal_event;
|
||||
|
||||
/**
|
||||
* Cette fonction est appelée avant toute les autres :
|
||||
* Elle vérifie que l'utilisateur est bien connecté
|
||||
* @return void;
|
||||
*/
|
||||
public function _before()
|
||||
public function __construct()
|
||||
{
|
||||
global $bdd;
|
||||
$this->bdd = $bdd;
|
||||
|
||||
$this->internalContact = new \controllers\internals\Contact($this->bdd);
|
||||
$this->internalEvent = new \controllers\internals\Event($this->bdd);
|
||||
|
||||
\controllers\internals\Tool::verify_connect();
|
||||
$bdd = \descartes\Model::_connect(DATABASE_HOST, DATABASE_NAME, DATABASE_USER, DATABASE_PASSWORD);
|
||||
|
||||
$this->internal_contact = new \controllers\internals\Contact($bdd);
|
||||
$this->internal_event = new \controllers\internals\Event($bdd);
|
||||
|
||||
\controllers\internals\Tool::verifyconnect();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -28,7 +30,7 @@ namespace controllers\publics;
|
|||
public function list($page = 0)
|
||||
{
|
||||
$page = (int) $page;
|
||||
$contacts = $this->internalContact->get_list(25, $page);
|
||||
$contacts = $this->internal_contact->get_list(25, $page);
|
||||
$this->render('contact/list', ['contacts' => $contacts]);
|
||||
}
|
||||
|
||||
|
@ -39,17 +41,17 @@ namespace controllers\publics;
|
|||
*/
|
||||
public function delete($csrf)
|
||||
{
|
||||
if (!$this->verifyCSRF($csrf)) {
|
||||
if (!$this->verify_csrf($csrf)) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !');
|
||||
return header('Location: ' . \descartes\Router::url('Contact', 'list'));
|
||||
return $this->redirect(\descartes\Router::url('Contact', 'list'));
|
||||
}
|
||||
|
||||
$ids = $_GET['ids'] ?? [];
|
||||
foreach ($ids as $id) {
|
||||
$this->internalContact->delete($id);
|
||||
$this->internal_contact->delete($id);
|
||||
}
|
||||
|
||||
header('Location: ' . \descartes\Router::url('Contact', 'list'));
|
||||
$this->redirect(\descartes\Router::url('Contact', 'list'));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -70,7 +72,7 @@ namespace controllers\publics;
|
|||
global $db;
|
||||
$ids = $_GET['ids'] ?? [];
|
||||
|
||||
$contacts = $this->internalContact->get_by_ids($ids);
|
||||
$contacts = $this->internal_contact->get_by_ids($ids);
|
||||
|
||||
$this->render('contact/edit', array(
|
||||
'contacts' => $contacts,
|
||||
|
@ -85,9 +87,9 @@ namespace controllers\publics;
|
|||
*/
|
||||
public function create($csrf)
|
||||
{
|
||||
if (!$this->verifyCSRF($csrf)) {
|
||||
if (!$this->verify_csrf($csrf)) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !');
|
||||
return header('Location: ' . \descartes\Router::url('Contact', 'add'));
|
||||
return $this->redirect(\descartes\Router::url('Contact', 'add'));
|
||||
}
|
||||
|
||||
$name = $_POST['name'] ?? false;
|
||||
|
@ -95,22 +97,22 @@ namespace controllers\publics;
|
|||
|
||||
if (!$name || !$number) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Des champs sont manquants !');
|
||||
return header('Location: ' . \descartes\Router::url('Contact', 'add'));
|
||||
return $this->redirect(\descartes\Router::url('Contact', 'add'));
|
||||
}
|
||||
|
||||
$number = \controllers\internals\Tool::parse_phone($number);
|
||||
if (!$number) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Numéro de téléphone incorrect.');
|
||||
return header('Location: ' . \descartes\Router::url('Contact', 'add'));
|
||||
return $this->redirect(\descartes\Router::url('Contact', 'add'));
|
||||
}
|
||||
|
||||
if (!$this->internalContact->create($number, $name)) {
|
||||
if (!$this->internal_contact->create($number, $name)) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Impossible de créer ce contact.');
|
||||
return header('Location: ' . \descartes\Router::url('Contact', 'add'));
|
||||
return $this->redirect(\descartes\Router::url('Contact', 'add'));
|
||||
}
|
||||
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('success', 'Le contact a bien été créé.');
|
||||
return header('Location: ' . \descartes\Router::url('Contact', 'list'));
|
||||
return $this->redirect(\descartes\Router::url('Contact', 'list'));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -121,24 +123,24 @@ namespace controllers\publics;
|
|||
*/
|
||||
public function update($csrf)
|
||||
{
|
||||
if (!$this->verifyCSRF($csrf)) {
|
||||
if (!$this->verify_csrf($csrf)) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !');
|
||||
return header('Location: ' . \descartes\Router::url('Contact', 'list'));
|
||||
return $this->redirect(\descartes\Router::url('Contact', 'list'));
|
||||
}
|
||||
|
||||
$nb_contacts_update = 0;
|
||||
|
||||
foreach ($_POST['contacts'] as $contact) {
|
||||
$nb_contacts_update += $this->internalContact->update($contact['id'], $contact['number'], $contact['name']);
|
||||
$nb_contacts_update += $this->internal_contact->update($contact['id'], $contact['number'], $contact['name']);
|
||||
}
|
||||
|
||||
if ($nb_contacts_update != count($_POST['contacts'])) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Certais contacts n\'ont pas pu êtres mis à jour.');
|
||||
return header('Location: ' . \descartes\Router::url('Contact', 'list'));
|
||||
return $this->redirect(\descartes\Router::url('Contact', 'list'));
|
||||
}
|
||||
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('success', 'Tous les contacts ont été modifiés avec succès.');
|
||||
return header('Location: ' . \descartes\Router::url('Contact', 'list'));
|
||||
return $this->redirect(\descartes\Router::url('Contact', 'list'));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -147,6 +149,6 @@ namespace controllers\publics;
|
|||
public function json_list()
|
||||
{
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode($this->internalContact->get_list());
|
||||
echo json_encode($this->internal_contact->get_list());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,25 +6,32 @@ namespace controllers\publics;
|
|||
*/
|
||||
class Dashboard extends \descartes\Controller
|
||||
{
|
||||
private $internal_sended;
|
||||
private $internal_received;
|
||||
private $internal_contact;
|
||||
private $internal_group;
|
||||
private $internal_scheduled;
|
||||
private $internal_command;
|
||||
private $internal_event;
|
||||
|
||||
/**
|
||||
* Cette fonction est appelée avant toute les autres :
|
||||
* Elle vérifie que l'utilisateur est bien connecté
|
||||
* @return void;
|
||||
*/
|
||||
public function _before()
|
||||
public function __construct()
|
||||
{
|
||||
global $bdd;
|
||||
$this->bdd = $bdd;
|
||||
|
||||
$this->internalSended = new \controllers\internals\Sended($this->bdd);
|
||||
$this->internalReceived = new \controllers\internals\Received($this->bdd);
|
||||
$this->internalContact = new \controllers\internals\Contact($this->bdd);
|
||||
$this->internalGroupe = new \controllers\internals\Groupe($this->bdd);
|
||||
$this->internalScheduled = new \controllers\internals\Scheduled($this->bdd);
|
||||
$this->internalCommand = new \controllers\internals\Command($this->bdd);
|
||||
$this->internalEvent = new \controllers\internals\Event($this->bdd);
|
||||
|
||||
\controllers\internals\Tool::verify_connect();
|
||||
$bdd = \descartes\Model::_connect(DATABASE_HOST, DATABASE_NAME, DATABASE_USER, DATABASE_PASSWORD);
|
||||
|
||||
$this->internal_sended = new \controllers\internals\Sended($bdd);
|
||||
$this->internal_received = new \controllers\internals\Received($bdd);
|
||||
$this->internal_contact = new \controllers\internals\Contact($bdd);
|
||||
$this->internal_group = new \controllers\internals\Group($bdd);
|
||||
$this->internal_scheduled = new \controllers\internals\Scheduled($bdd);
|
||||
$this->internal_command = new \controllers\internals\Command($bdd);
|
||||
$this->internal_event = new \controllers\internals\Event($bdd);
|
||||
|
||||
\controllers\internals\Tool::verifyconnect();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -37,12 +44,12 @@ namespace controllers\publics;
|
|||
global $db;
|
||||
|
||||
//Recupération des nombres des 4 panneaux d'accueil
|
||||
$nb_contacts = $this->internalContact->count();
|
||||
$nb_groupes = $this->internalGroupe->count();
|
||||
$nb_scheduleds = $this->internalScheduled->count();
|
||||
$nb_commands = $this->internalCommand->count();
|
||||
$nb_sendeds = $this->internalSended->count();
|
||||
$nb_receiveds = $this->internalReceived->count();
|
||||
$nb_contacts = $this->internal_contact->count();
|
||||
$nb_groups = $this->internal_group->count();
|
||||
$nb_scheduleds = $this->internal_scheduled->count();
|
||||
$nb_commands = $this->internal_command->count();
|
||||
$nb_sendeds = $this->internal_sended->count();
|
||||
$nb_receiveds = $this->internal_received->count();
|
||||
|
||||
//Création de la date d'il y a une semaine
|
||||
$now = new \DateTime();
|
||||
|
@ -50,14 +57,14 @@ namespace controllers\publics;
|
|||
$date = $now->sub($one_week);
|
||||
$formated_date = $date->format('Y-m-d');
|
||||
|
||||
//Récupération des 10 derniers SMS envoyés, SMS reçus et evenements enregistrés. Par date.
|
||||
$sendeds = $this->internalSended->get_lasts_by_date(10);
|
||||
$receiveds = $this->internalReceived->get_lasts_by_date(10);
|
||||
$events = $this->internalEvent->get_lasts_by_date(10);
|
||||
//Récupération des 10 derniers Sms envoyés, Sms reçus et evenements enregistrés. Par date.
|
||||
$sendeds = $this->internal_sended->get_lasts_by_date(10);
|
||||
$receiveds = $this->internal_received->get_lasts_by_date(10);
|
||||
$events = $this->internal_event->get_lasts_by_date(10);
|
||||
|
||||
//Récupération du nombre de SMS envoyés et reçus depuis les 7 derniers jours
|
||||
$nb_sendeds_by_day = $this->internalSended->count_by_day_since($formated_date);
|
||||
$nb_receiveds_by_day = $this->internalReceived->count_by_day_since($formated_date);
|
||||
//Récupération du nombre de Sms envoyés et reçus depuis les 7 derniers jours
|
||||
$nb_sendeds_by_day = $this->internal_sended->count_by_day_since($formated_date);
|
||||
$nb_receiveds_by_day = $this->internal_received->count_by_day_since($formated_date);
|
||||
|
||||
//On va traduire ces données pour les afficher en graphique
|
||||
$array_area_chart = array();
|
||||
|
@ -101,7 +108,7 @@ namespace controllers\publics;
|
|||
|
||||
$this->render('dashboard/show', array(
|
||||
'nb_contacts' => $nb_contacts,
|
||||
'nb_groupes' => $nb_groupes,
|
||||
'nb_groups' => $nb_groups,
|
||||
'nb_scheduleds' => $nb_scheduleds,
|
||||
'nb_commands' => $nb_commands,
|
||||
'nb_sendeds' => $nb_sendeds,
|
||||
|
|
|
@ -6,24 +6,26 @@ namespace controllers\publics;
|
|||
*/
|
||||
class Discussion extends \descartes\Controller
|
||||
{
|
||||
private $internal_sended;
|
||||
private $internal_scheduled;
|
||||
private $internal_received;
|
||||
private $internal_contact;
|
||||
|
||||
/**
|
||||
* Cette fonction est appelée avant toute les autres :
|
||||
* Elle vérifie que l'utilisateur est bien connecté
|
||||
* @return void;
|
||||
*/
|
||||
public function _before()
|
||||
public function __construct()
|
||||
{
|
||||
global $bdd;
|
||||
global $model;
|
||||
$this->bdd = $bdd;
|
||||
$this->model = $model;
|
||||
|
||||
$this->internalSended = new \controllers\internals\Sended($this->bdd);
|
||||
$this->internalScheduled = new \controllers\internals\Scheduled($this->bdd);
|
||||
$this->internalReceived = new \controllers\internals\Received($this->bdd);
|
||||
$this->internalContact = new \controllers\internals\Contact($this->bdd);
|
||||
|
||||
\controllers\internals\Tool::verify_connect();
|
||||
$bdd = \descartes\Model::_connect(DATABASE_HOST, DATABASE_NAME, DATABASE_USER, DATABASE_PASSWORD);
|
||||
|
||||
$this->internal_sended = new \controllers\internals\Sended($bdd);
|
||||
$this->internal_scheduled = new \controllers\internals\Scheduled($bdd);
|
||||
$this->internal_received = new \controllers\internals\Received($bdd);
|
||||
$this->internal_contact = new \controllers\internals\Contact($bdd);
|
||||
|
||||
\controllers\internals\Tool::verifyconnect();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -31,10 +33,10 @@ namespace controllers\publics;
|
|||
*/
|
||||
public function list()
|
||||
{
|
||||
$discussions = $this->internalReceived->get_discussions();
|
||||
$discussions = $this->internal_received->get_discussions();
|
||||
|
||||
foreach ($discussions as $key => $discussion) {
|
||||
if (!$contact = $this->internalContact->get_by_number($discussion['number'])) {
|
||||
if (!$contact = $this->internal_contact->get_by_number($discussion['number'])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -52,7 +54,7 @@ namespace controllers\publics;
|
|||
*/
|
||||
public function show($number)
|
||||
{
|
||||
$contact = $this->internalContact->get_by_number($number);
|
||||
$contact = $this->internal_contact->get_by_number($number);
|
||||
|
||||
|
||||
$this->render('discussion/show', array(
|
||||
|
@ -71,9 +73,9 @@ namespace controllers\publics;
|
|||
$now = new \DateTime();
|
||||
$now = $now->format('Y-m-d H:i:s');
|
||||
|
||||
$sendeds = $this->internalSended->get_by_target($number);
|
||||
$receiveds = $this->internalReceived->get_by_send_by($number);
|
||||
$scheduleds = $this->internalScheduled->get_before_date_for_number($now, $number);
|
||||
$sendeds = $this->internal_sended->get_by_target($number);
|
||||
$receiveds = $this->internal_received->get_by_send_by($number);
|
||||
$scheduleds = $this->internal_scheduled->get_before_date_for_number($now, $number);
|
||||
|
||||
$messages = [];
|
||||
|
||||
|
@ -118,16 +120,16 @@ namespace controllers\publics;
|
|||
/**
|
||||
* Cette fonction permet d'envoyer facilement un sms à un numéro donné
|
||||
* @param string $csrf : Le jeton csrf
|
||||
* @param string $_POST['content'] : Le contenu du SMS
|
||||
* @param string $_POST['content'] : Le contenu du Sms
|
||||
* @param string $_POST['numbers'] : Un tableau avec le numero des gens auxquel envoyer le sms
|
||||
* @return json : Le statut de l'envoi
|
||||
* @return string : json string Le statut de l'envoi
|
||||
*/
|
||||
public function send($csrf)
|
||||
{
|
||||
$return = ['success' => true, 'message' => ''];
|
||||
|
||||
//On vérifie que le jeton csrf est bon
|
||||
if (!$this->verifyCSRF($csrf)) {
|
||||
if (!$this->verify_csrf($csrf)) {
|
||||
$return['success'] = false;
|
||||
$return['message'] = 'Jeton CSRF invalide';
|
||||
echo json_encode($return);
|
||||
|
@ -149,9 +151,9 @@ namespace controllers\publics;
|
|||
return false;
|
||||
}
|
||||
|
||||
if (!$this->internalScheduled->create($scheduled, $numbers)) {
|
||||
if (!$this->internal_scheduled->create($scheduled, $numbers)) {
|
||||
$return['success'] = false;
|
||||
$return['message'] = 'Impossible de créer le SMS';
|
||||
$return['message'] = 'Impossible de créer le Sms';
|
||||
echo json_encode($return);
|
||||
return false;
|
||||
}
|
||||
|
@ -162,27 +164,27 @@ namespace controllers\publics;
|
|||
|
||||
/**
|
||||
* Cette fonction retourne les id des sms qui sont envoyés
|
||||
* @return json : Tableau des ids des sms qui sont envoyés
|
||||
* @return string : json string Tableau des ids des sms qui sont envoyés
|
||||
*/
|
||||
public function checksendeds()
|
||||
{
|
||||
$_SESSION['discussion_wait_progress'] = isset($_SESSION['discussion_wait_progress']) ? $_SESSION['discussion_wait_progress'] : [];
|
||||
|
||||
$scheduleds = $this->internalScheduled->get_by_ids($_SESSION['discussion_wait_progress']);
|
||||
$scheduleds = $this->internal_scheduled->get_by_ids($_SESSION['discussion_wait_progress']);
|
||||
|
||||
//On va chercher à chaque fois si on a trouvé le sms. Si ce n'est pas le cas c'est qu'il a été envoyé
|
||||
$sendeds = [];
|
||||
foreach ($_SESSION['discussion_wait_progress'] as $key => $id_scheduled) {
|
||||
$found = false;
|
||||
foreach ($scheduleds as $scheduled) {
|
||||
if ($id == $scheduled['id']) {
|
||||
if ($id_scheduled == $scheduled['id']) {
|
||||
$found = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!$found) {
|
||||
unset($_SESSION['discussion_wait_progress'][$key]);
|
||||
$sendeds[] = $id;
|
||||
$sendeds[] = $id_scheduled;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -193,7 +195,7 @@ namespace controllers\publics;
|
|||
/**
|
||||
* Cette fonction retourne les messages reçus pour un numéro après la date $_SESSION['discussion_last_checkreceiveds']
|
||||
* @param string $number : Le numéro de téléphone pour lequel on veux les messages
|
||||
* @return json : Un tableau avec les messages
|
||||
* @return string : json string Un tableau avec les messages
|
||||
*/
|
||||
public function checkreceiveds($number)
|
||||
{
|
||||
|
@ -202,7 +204,7 @@ namespace controllers\publics;
|
|||
|
||||
$_SESSION['discussion_last_checkreceiveds'] = isset($_SESSION['discussion_last_checkreceiveds']) ? $_SESSION['discussion_last_checkreceiveds'] : $now;
|
||||
|
||||
$receiveds = $internalReceived->get_since_for_number_by_date($_SESSION['discussion_last_checkreceiveds'], $number);
|
||||
$receiveds = $this->internal_received->get_since_for_number_by_date($_SESSION['discussion_last_checkreceiveds'], $number);
|
||||
|
||||
//On va gérer le cas des messages en double en stockant ceux déjà reçus et en eliminant les autres
|
||||
$_SESSION['discussion_already_receiveds'] = isset($_SESSION['discussion_already_receiveds']) ? $_SESSION['discussion_already_receiveds'] : [];
|
||||
|
|
|
@ -6,19 +6,20 @@ namespace controllers\publics;
|
|||
*/
|
||||
class Event extends \descartes\Controller
|
||||
{
|
||||
private $internal_event;
|
||||
|
||||
/**
|
||||
* Cette fonction est appelée avant toute les autres :
|
||||
* Elle vérifie que l'utilisateur est bien connecté
|
||||
* @return void;
|
||||
*/
|
||||
public function _before()
|
||||
public function __construct()
|
||||
{
|
||||
global $bdd;
|
||||
$this->bdd = $bdd;
|
||||
$bdd = \descartes\Model::_connect(DATABASE_HOST, DATABASE_NAME, DATABASE_USER, DATABASE_PASSWORD);
|
||||
|
||||
$this->internal_event = new \controllers\internals\Event($bdd);
|
||||
|
||||
$this->internalEvent = new \controllers\internals\Event($this->bdd);
|
||||
|
||||
\controllers\internals\Tool::verify_connect();
|
||||
\controllers\internals\Tool::verifyconnect();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -28,7 +29,7 @@ namespace controllers\publics;
|
|||
{
|
||||
$page = (int) $page;
|
||||
$limit = 25;
|
||||
$events = $this->internalEvent->get_list($limit, $page);
|
||||
$events = $this->internal_event->get_list($limit, $page);
|
||||
$this->render('event/list', ['events' => $events, 'limit' => $limit, 'page' => $page, 'nb_results' => count($events)]);
|
||||
}
|
||||
|
||||
|
@ -39,21 +40,21 @@ namespace controllers\publics;
|
|||
*/
|
||||
public function delete($csrf)
|
||||
{
|
||||
if (!$this->verifyCSRF($csrf)) {
|
||||
if (!$this->verify_csrf($csrf)) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !');
|
||||
return header('Location: ' . \descartes\Router::url('Event', 'list'));
|
||||
return $this->redirect(\descartes\Router::url('Event', 'list'));
|
||||
}
|
||||
|
||||
if (!\controllers\internals\Tool::is_admin()) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Vous devez être admin pour pouvoir supprimer des events.');
|
||||
return header('Location: ' . \descartes\Router::url('Event', 'list'));
|
||||
return $this->redirect(\descartes\Router::url('Event', 'list'));
|
||||
}
|
||||
|
||||
$ids = $_GET['ids'] ?? [];
|
||||
foreach ($ids as $id) {
|
||||
$this->internalEvent->delete($id);
|
||||
$this->internal_event->delete($id);
|
||||
}
|
||||
|
||||
return header('Location: ' . \descartes\Router::url('Event', 'list'));
|
||||
return $this->redirect(\descartes\Router::url('Event', 'list'));
|
||||
}
|
||||
}
|
||||
|
|
161
controllers/publics/Group.php
Executable file
161
controllers/publics/Group.php
Executable file
|
@ -0,0 +1,161 @@
|
|||
<?php
|
||||
namespace controllers\publics;
|
||||
|
||||
/**
|
||||
* Page des groups
|
||||
*/
|
||||
class Group extends \descartes\Controller
|
||||
{
|
||||
private $internal_group;
|
||||
private $internal_contact;
|
||||
private $internal_event;
|
||||
|
||||
/**
|
||||
* Cette fonction est appelée avant toute les autres :
|
||||
* Elle vérifie que l'utilisateur est bien connecté
|
||||
* @return void;
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$bdd = \descartes\Model::_connect(DATABASE_HOST, DATABASE_NAME, DATABASE_USER, DATABASE_PASSWORD);
|
||||
|
||||
$this->internal_group = new \controllers\internals\Group($bdd);
|
||||
$this->internal_contact = new \controllers\internals\Contact($bdd);
|
||||
$this->internal_event = new \controllers\internals\Event($bdd);
|
||||
|
||||
\controllers\internals\Tool::verifyconnect();
|
||||
}
|
||||
|
||||
/**
|
||||
* Cette fonction retourne tous les groups, sous forme d'un tableau permettant l'administration de ces groups
|
||||
*/
|
||||
public function list($page = 0)
|
||||
{
|
||||
$page = (int) $page;
|
||||
$groups = $this->internal_group->get_list(25, $page);
|
||||
|
||||
foreach ($groups as $key => $group) {
|
||||
$contacts = $this->internal_group->get_contact($group['id']);
|
||||
$groups[$key]['nb_contacts'] = count($contacts);
|
||||
}
|
||||
|
||||
$this->render('group/list', ['groups' => $groups]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Cette fonction va supprimer une liste de groups
|
||||
* @param array int $_GET['ids'] : Les id des groups à supprimer
|
||||
* @return boolean;
|
||||
*/
|
||||
public function delete($csrf)
|
||||
{
|
||||
if (!$this->verify_csrf($csrf)) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !');
|
||||
$this->redirect(\descartes\Router::url('Group', 'list'));
|
||||
return false;
|
||||
}
|
||||
|
||||
$ids = $_GET['ids'] ?? [];
|
||||
$this->internal_group->delete($ids);
|
||||
|
||||
$this->redirect(\descartes\Router::url('Group', 'list'));
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Cette fonction retourne la page d'ajout d'un group
|
||||
*/
|
||||
public function add()
|
||||
{
|
||||
$this->render('group/add');
|
||||
}
|
||||
|
||||
/**
|
||||
* Cette fonction retourne la page d'édition des groups
|
||||
* @param int... $ids : Les id des groups à supprimer
|
||||
*/
|
||||
public function edit()
|
||||
{
|
||||
$ids = $_GET['ids'] ?? [];
|
||||
|
||||
$groups = $this->internal_group->get_by_ids($ids);
|
||||
|
||||
foreach ($groups as $key => $group) {
|
||||
$groups[$key]['contacts'] = $this->internal_group->get_contact($group['id']);
|
||||
}
|
||||
|
||||
$this->render('group/edit', array(
|
||||
'groups' => $groups,
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
* Cette fonction insert un nouveau group
|
||||
* @param $csrf : Le jeton CSRF
|
||||
* @param string $_POST['name'] : Le nom du group
|
||||
* @param array $_POST['contacts'] : Les ids des contacts à mettre dans le group
|
||||
*/
|
||||
public function create($csrf)
|
||||
{
|
||||
if (!$this->verify_csrf($csrf)) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !');
|
||||
return $this->redirect(\descartes\Router::url('Group', 'add'));
|
||||
}
|
||||
|
||||
$name = $_POST['name'] ?? false;
|
||||
$contacts_ids = $_POST['contacts'] ?? false;
|
||||
|
||||
if (!$name || !$contacts_ids) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Des champs sont manquants !');
|
||||
return $this->redirect(\descartes\Router::url('Group', 'add'));
|
||||
}
|
||||
|
||||
$id_group = $this->internal_group->create($name, $contacts_ids);
|
||||
if (!$id_group) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Impossible de créer ce group.');
|
||||
return $this->redirect(\descartes\Router::url('Group', 'add'));
|
||||
}
|
||||
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('success', 'Le group a bien été créé.');
|
||||
return $this->redirect(\descartes\Router::url('Group', 'list'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Cette fonction met à jour une group
|
||||
* @param $csrf : Le jeton CSRF
|
||||
* @param array $_POST['groups'] : Un tableau des groups avec leur nouvelle valeurs & une entrée 'contacts_id' avec les ids des contacts pour chaque group
|
||||
* @return boolean;
|
||||
*/
|
||||
public function update($csrf)
|
||||
{
|
||||
if (!$this->verify_csrf($csrf)) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !');
|
||||
$this->redirect(\descartes\Router::url('Group', 'list'));
|
||||
return false;
|
||||
}
|
||||
|
||||
$groups = $_POST['groups'] ?? [];
|
||||
|
||||
$nb_groups_update = 0;
|
||||
foreach ($groups as $id => $group) {
|
||||
$nb_groups_update += (int) $this->internal_group->update($id, $group['name'], $group['contacts_ids']);
|
||||
}
|
||||
|
||||
if ($nb_groups_update != count($groups)) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Certains groups n\'ont pas pu êtres mis à jour.');
|
||||
return $this->redirect(\descartes\Router::url('Group', 'list'));
|
||||
}
|
||||
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('success', 'Tous les groups ont été modifiés avec succès.');
|
||||
return $this->redirect(\descartes\Router::url('Group', 'list'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Cette fonction retourne la liste des groups sous forme JSON
|
||||
*/
|
||||
public function json_list()
|
||||
{
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode($this->internal_group->get_list());
|
||||
}
|
||||
}
|
|
@ -1,158 +0,0 @@
|
|||
<?php
|
||||
namespace controllers\publics;
|
||||
|
||||
/**
|
||||
* Page des groupes
|
||||
*/
|
||||
class Groupe extends \descartes\Controller
|
||||
{
|
||||
/**
|
||||
* Cette fonction est appelée avant toute les autres :
|
||||
* Elle vérifie que l'utilisateur est bien connecté
|
||||
* @return void;
|
||||
*/
|
||||
public function _before()
|
||||
{
|
||||
global $bdd;
|
||||
$this->bdd = $bdd;
|
||||
|
||||
$this->internalGroupe = new \controllers\internals\Groupe($this->bdd);
|
||||
$this->internalContact = new \controllers\internals\Contact($this->bdd);
|
||||
$this->internalEvent = new \controllers\internals\Event($this->bdd);
|
||||
|
||||
\controllers\internals\Tool::verify_connect();
|
||||
}
|
||||
|
||||
/**
|
||||
* Cette fonction retourne tous les groupes, sous forme d'un tableau permettant l'administration de ces groupes
|
||||
*/
|
||||
public function list($page = 0)
|
||||
{
|
||||
$page = (int) $page;
|
||||
$groupes = $this->internalGroupe->get_list(25, $page);
|
||||
|
||||
foreach ($groupes as $key => $groupe) {
|
||||
$contacts = $this->internalGroupe->get_contact($groupe['id']);
|
||||
$groupes[$key]['nb_contacts'] = count($contacts);
|
||||
}
|
||||
|
||||
$this->render('groupe/list', ['groupes' => $groupes]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Cette fonction va supprimer une liste de groupes
|
||||
* @param array int $_GET['ids'] : Les id des groupes à supprimer
|
||||
* @return boolean;
|
||||
*/
|
||||
public function delete($csrf)
|
||||
{
|
||||
if (!$this->verifyCSRF($csrf)) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !');
|
||||
header('Location: ' . \descartes\Router::url('Groupe', 'list'));
|
||||
return false;
|
||||
}
|
||||
|
||||
$ids = $_GET['ids'] ?? [];
|
||||
$this->internalGroupe->delete($ids);
|
||||
|
||||
header('Location: ' . \descartes\Router::url('Groupe', 'list'));
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Cette fonction retourne la page d'ajout d'un groupe
|
||||
*/
|
||||
public function add()
|
||||
{
|
||||
$this->render('groupe/add');
|
||||
}
|
||||
|
||||
/**
|
||||
* Cette fonction retourne la page d'édition des groupes
|
||||
* @param int... $ids : Les id des groupes à supprimer
|
||||
*/
|
||||
public function edit()
|
||||
{
|
||||
$ids = $_GET['ids'] ?? [];
|
||||
|
||||
$groupes = $this->internalGroupe->get_by_ids($ids);
|
||||
|
||||
foreach ($groupes as $key => $groupe) {
|
||||
$groupes[$key]['contacts'] = $this->internalGroupe->get_contact($groupe['id']);
|
||||
}
|
||||
|
||||
$this->render('groupe/edit', array(
|
||||
'groupes' => $groupes,
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
* Cette fonction insert un nouveau groupe
|
||||
* @param $csrf : Le jeton CSRF
|
||||
* @param string $_POST['name'] : Le nom du groupe
|
||||
* @param array $_POST['contacts'] : Les ids des contacts à mettre dans le groupe
|
||||
*/
|
||||
public function create($csrf)
|
||||
{
|
||||
if (!$this->verifyCSRF($csrf)) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !');
|
||||
return header('Location: ' . \descartes\Router::url('Groupe', 'add'));
|
||||
}
|
||||
|
||||
$name = $_POST['name'] ?? false;
|
||||
$contacts_ids = $_POST['contacts'] ?? false;
|
||||
|
||||
if (!$name || !$contacts_ids) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Des champs sont manquants !');
|
||||
return header('Location: ' . \descartes\Router::url('Groupe', 'add'));
|
||||
}
|
||||
|
||||
$id_groupe = $this->internalGroupe->create($name, $contacts_ids);
|
||||
if (!$id_groupe) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Impossible de créer ce groupe.');
|
||||
return header('Location: ' . \descartes\Router::url('Groupe', 'add'));
|
||||
}
|
||||
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('success', 'Le groupe a bien été créé.');
|
||||
return header('Location: ' . \descartes\Router::url('Groupe', 'list'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Cette fonction met à jour une groupe
|
||||
* @param $csrf : Le jeton CSRF
|
||||
* @param array $_POST['groupes'] : Un tableau des groupes avec leur nouvelle valeurs & une entrée 'contacts_id' avec les ids des contacts pour chaque groupe
|
||||
* @return boolean;
|
||||
*/
|
||||
public function update($csrf)
|
||||
{
|
||||
if (!$this->verifyCSRF($csrf)) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !');
|
||||
header('Location: ' . \descartes\Router::url('Groupe', 'list'));
|
||||
return false;
|
||||
}
|
||||
|
||||
$groupes = $_POST['groupes'] ?? [];
|
||||
|
||||
$nb_groupes_update = 0;
|
||||
foreach ($groupes as $id => $groupe) {
|
||||
$nb_groupes_update += (int) $this->internalGroupe->update($id, $groupe['name'], $groupe['contacts_ids']);
|
||||
}
|
||||
|
||||
if ($nb_groupes_update != count($groupes)) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Certains groupes n\'ont pas pu êtres mis à jour.');
|
||||
return header('Location: ' . \descartes\Router::url('Groupe', 'list'));
|
||||
}
|
||||
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('success', 'Tous les groupes ont été modifiés avec succès.');
|
||||
return header('Location: ' . \descartes\Router::url('Groupe', 'list'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Cette fonction retourne la liste des groupes sous forme JSON
|
||||
*/
|
||||
public function json_list()
|
||||
{
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode($this->internalGroupe->get_list());
|
||||
}
|
||||
}
|
|
@ -6,20 +6,21 @@ namespace controllers\publics;
|
|||
*/
|
||||
class Received extends \descartes\Controller
|
||||
{
|
||||
private $internal_received;
|
||||
private $internal_contact;
|
||||
|
||||
/**
|
||||
* Cette fonction est appelée avant toute les autres :
|
||||
* Elle vérifie que l'utilisateur est bien connecté
|
||||
* @return void;
|
||||
*/
|
||||
public function _before()
|
||||
public function __construct()
|
||||
{
|
||||
global $bdd;
|
||||
$this->bdd = $bdd;
|
||||
$bdd = \descartes\Model::_connect(DATABASE_HOST, DATABASE_NAME, DATABASE_USER, DATABASE_PASSWORD);
|
||||
$this->internal_received = new \controllers\internals\Received($bdd);
|
||||
$this->internal_contact = new \controllers\internals\Contact($bdd);
|
||||
|
||||
$this->internalReceived = new \controllers\internals\Received($this->bdd);
|
||||
$this->internalContact = new \controllers\internals\Contact($this->bdd);
|
||||
|
||||
\controllers\internals\Tool::verify_connect();
|
||||
\controllers\internals\Tool::verifyconnect();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -29,10 +30,10 @@ namespace controllers\publics;
|
|||
{
|
||||
$page = (int) $page;
|
||||
$limit = 25;
|
||||
$receiveds = $this->internalReceived->get_list($limit, $page);
|
||||
$receiveds = $this->internal_received->get_list($limit, $page);
|
||||
|
||||
foreach ($receiveds as $key => $received) {
|
||||
if (!$contact = $this->internalContact->get_by_number($received['origin'])) {
|
||||
if (!$contact = $this->internal_contact->get_by_number($received['origin'])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -43,16 +44,16 @@ namespace controllers\publics;
|
|||
}
|
||||
|
||||
/**
|
||||
* Cette fonction retourne tous les SMS reçus aujourd'hui pour la popup
|
||||
* @return json : Un tableau des SMS reçus
|
||||
* Cette fonction retourne tous les Sms reçus aujourd'hui pour la popup
|
||||
* @return string : A JSON Un tableau des Sms reçus
|
||||
*/
|
||||
public function popup()
|
||||
{
|
||||
$now = new \DateTime();
|
||||
$receiveds = $this->internalReceived->get_since_by_date($now->format('Y-m-d'));
|
||||
$receiveds = $this->internal_received->get_since_by_date($now->format('Y-m-d'));
|
||||
|
||||
foreach ($receiveds as $key => $received) {
|
||||
if (!$contact = $this->internalContact->get_by_number($received['origin'])) {
|
||||
if (!$contact = $this->internal_contact->get_by_number($received['origin'])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -61,13 +62,13 @@ namespace controllers\publics;
|
|||
|
||||
$nb_received = count($receiveds);
|
||||
|
||||
if (!isset($_SESSION['popup_nb_receiveds']) || $_SESSION['popup_nb_receiveds'] > $nb_receiveds) {
|
||||
if (!isset($_SESSION['popup_nb_receiveds']) || $_SESSION['popup_nb_receiveds'] > $nb_received) {
|
||||
$_SESSION['popup_nb_receiveds'] = $nb_received;
|
||||
}
|
||||
|
||||
$newly_receiveds = array_slice($receiveds, $_SESSION['popup_nb_receiveds']);
|
||||
|
||||
$_SESSION['popup_nb_receiveds'] = $nb_receiveds;
|
||||
$_SESSION['popup_nb_receiveds'] = $nb_received;
|
||||
|
||||
echo json_encode($newly_receiveds);
|
||||
return true;
|
||||
|
@ -80,21 +81,21 @@ namespace controllers\publics;
|
|||
*/
|
||||
public function delete($csrf)
|
||||
{
|
||||
if (!$this->verifyCSRF($csrf)) {
|
||||
if (!$this->verify_csrf($csrf)) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !');
|
||||
return header('Location: ' . \descartes\Router::url('Received', 'list'));
|
||||
return $this->redirect(\descartes\Router::url('Received', 'list'));
|
||||
}
|
||||
|
||||
if (!\controllers\internals\Tool::is_admin()) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Vous devez être administrateur pour effectuer cette action.');
|
||||
return header('Location: ' . \descartes\Router::url('Received', 'list'));
|
||||
return $this->redirect(\descartes\Router::url('Received', 'list'));
|
||||
}
|
||||
|
||||
$ids = $_GET['ids'] ?? [];
|
||||
foreach ($ids as $id) {
|
||||
$this->internalReceived->delete($id);
|
||||
$this->internal_received->delete($id);
|
||||
}
|
||||
|
||||
return header('Location: ' . \descartes\Router::url('Received', 'list'));
|
||||
return $this->redirect(\descartes\Router::url('Received', 'list'));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,138 +0,0 @@
|
|||
<?php
|
||||
namespace controllers\publics;
|
||||
|
||||
/**
|
||||
* Page des smsapis
|
||||
*/
|
||||
class SMSAPI extends \descartes\Controller
|
||||
{
|
||||
//On défini les constantes qui servent pour les retours d'API
|
||||
const API_ERROR_NO = 0;
|
||||
const API_ERROR_BAD_ID = 1;
|
||||
const API_ERROR_CREATION_FAILED = 2;
|
||||
const API_ERROR_MISSING_FIELD = 3;
|
||||
|
||||
|
||||
/**
|
||||
* Cette fonction est appelée avant toute les autres :
|
||||
* Elle vérifie que l'utilisateur est bien connecté
|
||||
* @return void;
|
||||
*/
|
||||
public function _before()
|
||||
{
|
||||
global $bdd;
|
||||
global $model;
|
||||
$this->bdd = $bdd;
|
||||
$this->model = $model;
|
||||
|
||||
$this->internal_user = new \controllers\internals\User($this->bdd);
|
||||
$this->internalContact = new \controllers\internals\Contact($this->bdd);
|
||||
|
||||
\controllers\internals\Tool::verify_connect();
|
||||
}
|
||||
|
||||
/**
|
||||
* Cette fonction permet d'envoyer un SMS, en passant simplement des arguments à l'URL (ou pas $_GET)
|
||||
* @param string text = Le contenu du SMS
|
||||
* @param mixed numbers = Les numéros auxquels envoyer les SMS. Soit un seul numéro, et il s'agit d'un string. Soit plusieurs numéros, et il s'agit d'un tableau
|
||||
* @param mixed contacts = Les noms des contacts auxquels envoyer les SMS. Soit un seul et il s'agit d'un string. Soit plusieurs, et il s'agit d'un tableau
|
||||
* @param mixed groupes = Les noms des groupes auxquels envoyer les SMS. Soit un seul et il s'agit d'un string. Soit plusieurs, et il s'agit d'un tableau
|
||||
* @param optionnal string date = La date à laquelle doit être envoyé le SMS. Au format 'Y-m-d H:i'. Si non fourni, le SMS sera envoyé dans 2 minutes
|
||||
*/
|
||||
public function api()
|
||||
{
|
||||
//On récupère l'email et le password
|
||||
$email = isset($_GET['email']) ? $_GET['email'] : null;
|
||||
$email = isset($_POST['email']) ? $_POST['email'] : $email;
|
||||
$password = isset($_GET['password']) ? $_GET['password'] : null;
|
||||
$password = isset($_POST['password']) ? $_POST['password'] : $password;
|
||||
|
||||
//Si les identifiants sont incorrect on retourne une erreur
|
||||
$user = $internal_user->check_credentials($email, $password);
|
||||
|
||||
if (!$user) {
|
||||
echo json_encode(array(
|
||||
'error' => self::API_ERROR_BAD_ID,
|
||||
));
|
||||
return true;
|
||||
}
|
||||
|
||||
//On map les variables $_GET
|
||||
$get_numbers = isset($_GET['numbers']) ? $_GET['numbers'] : array();
|
||||
$get_contacts = isset($_GET['contacts']) ? $_GET['contacts'] : array();
|
||||
$get_groupes = isset($_GET['groupes']) ? $_GET['groupes'] : array();
|
||||
|
||||
//On map les variables POST
|
||||
$post_numbers = isset($_POST['numbers']) ? $_POST['numbers'] : array();
|
||||
$post_contacts = isset($_POST['contacts']) ? $_POST['contacts'] : array();
|
||||
$post_groupes = isset($_POST['groupes']) ? $_POST['groupes'] : array();
|
||||
|
||||
//On map le texte et la date à part car c'est les seuls arguments qui ne sera jamais un tableau
|
||||
$text = isset($_GET['text']) ? $_GET['text'] : null;
|
||||
$text = isset($_POST['text']) ? $_POST['text'] : $text;
|
||||
$date = isset($_GET['date']) ? $_GET['date'] : null;
|
||||
$date = isset($_POST['date']) ? $_POST['date'] : $date;
|
||||
|
||||
//On passe tous les paramètres GET en tableau
|
||||
$get_numbers = is_array($get_numbers) ? $get_numbers : ($get_numbers ? array($get_numbers) : array());
|
||||
$get_contacts = is_array($get_contacts) ? $get_contacts : array($get_contacts);
|
||||
$get_groupes = is_array($get_groupes) ? $get_groupes : array($get_groupes);
|
||||
|
||||
//On passe tous les paramètres POST en tableau
|
||||
$post_numbers = is_array($post_numbers) ? $post_numbers : array($post_numbers);
|
||||
$post_contacts = is_array($post_contacts) ? $post_contacts : array($post_contacts);
|
||||
$post_groupes = is_array($post_groupes) ? $post_groupes : array($post_groupes);
|
||||
|
||||
//On merge les données reçus en GET, et celles en POST
|
||||
$numbers = array_merge($get_numbers, $post_numbers);
|
||||
$contacts = array_merge($get_contacts, $post_contacts);
|
||||
$groupes = array_merge($get_groupes, $post_groupes);
|
||||
|
||||
//Pour chaque contact, on récupère l'id du contact
|
||||
foreach ($contacts as $key => $contact) {
|
||||
if (!$contact = $internalContact->get_by_name($contact)) {
|
||||
unset($contacts[$key]);
|
||||
continue;
|
||||
}
|
||||
|
||||
$contacts[$key] = $contact['id'];
|
||||
}
|
||||
|
||||
//Pour chaque groupe, on récupère l'id du groupe
|
||||
foreach ($groupes as $key => $name) {
|
||||
if (!$groupe = $internalContact->get_by_name($groupe)) {
|
||||
unset($groupes[$key]);
|
||||
continue;
|
||||
}
|
||||
|
||||
$groupes[$key] = $groupe['id'];
|
||||
}
|
||||
|
||||
//Si la date n'est pas définie, on la met à la date du jour
|
||||
if (!$date) {
|
||||
$now = new \DateTime();
|
||||
$date = $now->format('Y-m-d H:i');
|
||||
}
|
||||
|
||||
//Si il manque des champs essentiels, on leve une erreur
|
||||
if (!$text || (!$numbers && !$contacts && !$groupes)) {
|
||||
echo json_encode(array(
|
||||
'error' => self::API_ERROR_MISSING_FIELD,
|
||||
));
|
||||
return false;
|
||||
}
|
||||
|
||||
//On assigne les variable POST (après avoir vidé $_POST) en prévision de la création du SMS
|
||||
if (!$this->internalScheduled->create(['at' => $date, 'content' => $text], $numbers, $contacts, $groupes)) {
|
||||
echo json_encode(array(
|
||||
'error' => self::API_ERROR_CREATION_FAILED,
|
||||
));
|
||||
return false;
|
||||
}
|
||||
|
||||
echo json_encode(array(
|
||||
'error' => self::API_ERROR_NO,
|
||||
));
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -6,20 +6,19 @@ namespace controllers\publics;
|
|||
*/
|
||||
class Scheduled extends \descartes\Controller
|
||||
{
|
||||
private $internal_scheduled;
|
||||
|
||||
/**
|
||||
* Cette fonction est appelée avant toute les autres :
|
||||
* Elle vérifie que l'utilisateur est bien connecté
|
||||
* @return void;
|
||||
*/
|
||||
public function _before()
|
||||
public function __construct()
|
||||
{
|
||||
global $bdd;
|
||||
$this->bdd = $bdd;
|
||||
$bdd = \descartes\Model::_connect(DATABASE_HOST, DATABASE_NAME, DATABASE_USER, DATABASE_PASSWORD);
|
||||
$this->internal_scheduled = new \controllers\internals\Scheduled($bdd);
|
||||
|
||||
$this->internalScheduled = new \controllers\internals\Scheduled($this->bdd);
|
||||
$this->internalEvent = new \controllers\internals\Event($this->bdd);
|
||||
|
||||
\controllers\internals\Tool::verify_connect();
|
||||
\controllers\internals\Tool::verifyconnect();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -28,7 +27,7 @@ namespace controllers\publics;
|
|||
public function list($page = 0)
|
||||
{
|
||||
$page = (int) $page;
|
||||
$scheduleds = $this->internalScheduled->get_list(25, $page);
|
||||
$scheduleds = $this->internal_scheduled->get_list(25, $page);
|
||||
$this->render('scheduled/list', ['scheduleds' => $scheduleds]);
|
||||
}
|
||||
|
||||
|
@ -39,17 +38,17 @@ namespace controllers\publics;
|
|||
*/
|
||||
public function delete($csrf)
|
||||
{
|
||||
if (!$this->verifyCSRF($csrf)) {
|
||||
if (!$this->verify_csrf($csrf)) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !');
|
||||
return header('Location: ' . \descartes\Router::url('Scheduled', 'list'));
|
||||
return $this->redirect(\descartes\Router::url('Scheduled', 'list'));
|
||||
}
|
||||
|
||||
$ids = $_GET['ids'] ?? [];
|
||||
foreach ($ids as $id) {
|
||||
$this->internalScheduled->delete($id);
|
||||
$this->internal_scheduled->delete($id);
|
||||
}
|
||||
|
||||
return header('Location: ' . \descartes\Router::url('Scheduled', 'list'));
|
||||
return $this->redirect(\descartes\Router::url('Scheduled', 'list'));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -74,28 +73,28 @@ namespace controllers\publics;
|
|||
{
|
||||
$ids = $_GET['ids'] ?? [];
|
||||
|
||||
$scheduleds = $this->internalScheduled->get_by_ids($ids);
|
||||
$scheduleds = $this->internal_scheduled->get_by_ids($ids);
|
||||
|
||||
//Pour chaque message on ajoute les numéros, les contacts & les groupes
|
||||
//Pour chaque message on ajoute les numéros, les contacts & les groups
|
||||
foreach ($scheduleds as $key => $scheduled) {
|
||||
$scheduleds[$key]['numbers'] = [];
|
||||
$scheduleds[$key]['contacts'] = [];
|
||||
$scheduleds[$key]['groupes'] = [];
|
||||
$scheduleds[$key]['groups'] = [];
|
||||
|
||||
|
||||
$numbers = $this->internalScheduled->get_numbers($scheduled['id']);
|
||||
$numbers = $this->internal_scheduled->get_numbers($scheduled['id']);
|
||||
foreach ($numbers as $number) {
|
||||
$scheduleds[$key]['numbers'][] = $number['number'];
|
||||
}
|
||||
|
||||
$contacts = $this->internalScheduled->get_contacts($scheduled['id']);
|
||||
$contacts = $this->internal_scheduled->get_contacts($scheduled['id']);
|
||||
foreach ($contacts as $contact) {
|
||||
$scheduleds[$key]['contacts'][] = (int) $contact['id'];
|
||||
}
|
||||
|
||||
$groupes = $this->internalScheduled->get_groupes($scheduled['id']);
|
||||
foreach ($groupes as $groupe) {
|
||||
$scheduleds[$key]['groupes'][] = (int) $groupe['id'];
|
||||
$groups = $this->internal_scheduled->get_groups($scheduled['id']);
|
||||
foreach ($groups as $group) {
|
||||
$scheduleds[$key]['groups'][] = (int) $group['id'];
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -112,29 +111,29 @@ namespace controllers\publics;
|
|||
* @param string $_POST['date'] : La date d'envoie du scheduled
|
||||
* @param string $_POST['numbers'] : Les numeros de téléphone du scheduled
|
||||
* @param string $_POST['contacts'] : Les contacts du scheduled
|
||||
* @param string $_POST['groupes'] : Les groupes du scheduled
|
||||
* @param string $_POST['groups'] : Les groups du scheduled
|
||||
*/
|
||||
public function create($csrf)
|
||||
{
|
||||
if (!$this->verifyCSRF($csrf)) {
|
||||
if (!$this->verify_csrf($csrf)) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !');
|
||||
return header('Location: ' . \descartes\Router::url('Scheduled', 'add'));
|
||||
return $this->redirect(\descartes\Router::url('Scheduled', 'add'));
|
||||
}
|
||||
|
||||
$date = $_POST['date'] ?? false;
|
||||
$content = $_POST['content'] ?? false;
|
||||
$numbers = $_POST['numbers'] ?? [];
|
||||
$contacts = $_POST['contacts'] ?? [];
|
||||
$groupes = $_POST['groupes'] ?? [];
|
||||
$groups = $_POST['groups'] ?? [];
|
||||
|
||||
if (!$content) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Vous ne pouvez pas créer un SMS sans message.');
|
||||
return header('Location: ' . \descartes\Router::url('Scheduled', 'add'));
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Vous ne pouvez pas créer un Sms sans message.');
|
||||
return $this->redirect(\descartes\Router::url('Scheduled', 'add'));
|
||||
}
|
||||
|
||||
if (!\controllers\internals\Tool::validate_date($date, 'Y-m-d H:i:s') && !\controllers\internals\Tool::validate_date($date, 'Y-m-d H:i')) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Vous devez fournir une date valide.');
|
||||
return header('Location: ' . \descartes\Router::url('Scheduled', 'add'));
|
||||
return $this->redirect(\descartes\Router::url('Scheduled', 'add'));
|
||||
}
|
||||
|
||||
foreach ($numbers as $key => $number) {
|
||||
|
@ -148,9 +147,9 @@ namespace controllers\publics;
|
|||
$numbers[$key] = $number;
|
||||
}
|
||||
|
||||
if (!$numbers && !$contacts && !$groupes) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Vous devez renseigner au moins un destinataire pour le SMS.');
|
||||
return header('Location: ' . \descartes\Router::url('Scheduled', 'add'));
|
||||
if (!$numbers && !$contacts && !$groups) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Vous devez renseigner au moins un destinataire pour le Sms.');
|
||||
return $this->redirect(\descartes\Router::url('Scheduled', 'add'));
|
||||
}
|
||||
|
||||
$scheduled = [
|
||||
|
@ -160,26 +159,26 @@ namespace controllers\publics;
|
|||
'progress' => false,
|
||||
];
|
||||
|
||||
if (!$scheduled_id = $this->internalScheduled->create($scheduled, $numbers, $contacts, $groupes)) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Impossible de créer le SMS.');
|
||||
return header('Location: ' . \descartes\Router::url('Scheduled', 'add'));
|
||||
if (!$scheduled_id = $this->internal_scheduled->create($scheduled, $numbers, $contacts, $groups)) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Impossible de créer le Sms.');
|
||||
return $this->redirect(\descartes\Router::url('Scheduled', 'add'));
|
||||
}
|
||||
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('success', 'Le SMS a bien été créé pour le ' . $date . '.');
|
||||
return header('Location: ' . \descartes\Router::url('Scheduled', 'list'));
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('success', 'Le Sms a bien été créé pour le ' . $date . '.');
|
||||
return $this->redirect(\descartes\Router::url('Scheduled', 'list'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Cette fonction met à jour une schedulede
|
||||
* @param $csrf : Le jeton CSRF
|
||||
* @param array $_POST['scheduleds'] : Un tableau des scheduledes avec leur nouvelle valeurs + les numbers, contacts et groupes liées
|
||||
* @param array $_POST['scheduleds'] : Un tableau des scheduledes avec leur nouvelle valeurs + les numbers, contacts et groups liées
|
||||
* @return boolean;
|
||||
*/
|
||||
public function update($csrf)
|
||||
{
|
||||
if (!$this->verifyCSRF($csrf)) {
|
||||
if (!$this->verify_csrf($csrf)) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !');
|
||||
return header('Location: ' . \descartes\Router::url('Scheduled', 'list'));
|
||||
return $this->redirect(\descartes\Router::url('Scheduled', 'list'));
|
||||
}
|
||||
|
||||
$scheduleds = $_POST['scheduleds'] ?? [];
|
||||
|
@ -191,7 +190,7 @@ namespace controllers\publics;
|
|||
$content = $scheduled['content'] ?? false;
|
||||
$numbers = $scheduled['numbers'] ?? [];
|
||||
$contacts = $scheduled['contacts'] ?? [];
|
||||
$groupes = $scheduled['groupes'] ?? [];
|
||||
$groups = $scheduled['groups'] ?? [];
|
||||
|
||||
if (!$content) {
|
||||
$all_update_ok = false;
|
||||
|
@ -214,7 +213,7 @@ namespace controllers\publics;
|
|||
$numbers[$key] = $number;
|
||||
}
|
||||
|
||||
if (!$numbers && !$contacts && !$groupes) {
|
||||
if (!$numbers && !$contacts && !$groups) {
|
||||
$all_update_ok = false;
|
||||
continue;
|
||||
}
|
||||
|
@ -229,21 +228,21 @@ namespace controllers\publics;
|
|||
],
|
||||
'numbers' => $numbers,
|
||||
'contacts_ids' => $contacts,
|
||||
'groupes_ids' => $groupes,
|
||||
'groups_ids' => $groups,
|
||||
];
|
||||
|
||||
if (!$this->internalScheduled->update([$scheduled])) {
|
||||
if (!$this->internal_scheduled->update([$scheduled])) {
|
||||
$all_update_ok = false;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if (!$all_update_ok) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Certains SMS n\'ont pas pu êtres mis à jour.');
|
||||
return header('Location: ' . \descartes\Router::url('Scheduled', 'list'));
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Certains Sms n\'ont pas pu êtres mis à jour.');
|
||||
return $this->redirect(\descartes\Router::url('Scheduled', 'list'));
|
||||
}
|
||||
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('success', 'Tous les SMS ont été mis à jour.');
|
||||
return header('Location: ' . \descartes\Router::url('Scheduled', 'list'));
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('success', 'Tous les Sms ont été mis à jour.');
|
||||
return $this->redirect(\descartes\Router::url('Scheduled', 'list'));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,19 +6,19 @@ namespace controllers\publics;
|
|||
*/
|
||||
class Sended extends \descartes\Controller
|
||||
{
|
||||
private $internal_sended;
|
||||
|
||||
/**
|
||||
* Cette fonction est appelée avant toute les autres :
|
||||
* Elle vérifie que l'utilisateur est bien connecté
|
||||
* @return void;
|
||||
*/
|
||||
public function _before()
|
||||
public function __construct()
|
||||
{
|
||||
global $bdd;
|
||||
$this->bdd = $bdd;
|
||||
$bdd = \descartes\Model::_connect(DATABASE_HOST, DATABASE_NAME, DATABASE_USER, DATABASE_PASSWORD);
|
||||
$this->internal_sended = new \controllers\internals\Sended($bdd);
|
||||
|
||||
$this->internalSended = new \controllers\internals\Sended($this->bdd);
|
||||
|
||||
\controllers\internals\Tool::verify_connect();
|
||||
\controllers\internals\Tool::verifyconnect();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -28,7 +28,7 @@ namespace controllers\publics;
|
|||
{
|
||||
$page = (int) $page;
|
||||
$limit = 25;
|
||||
$sendeds = $this->internalSended->get_list($limit, $page);
|
||||
$sendeds = $this->internal_sended->get_list($limit, $page);
|
||||
$this->render('sended/list', ['sendeds' => $sendeds, 'page' => $page, 'limit' => $limit, 'nb_results' => count($sendeds)]);
|
||||
}
|
||||
|
||||
|
@ -39,16 +39,16 @@ namespace controllers\publics;
|
|||
*/
|
||||
public function delete($csrf)
|
||||
{
|
||||
if (!$this->verifyCSRF($csrf)) {
|
||||
if (!$this->verify_csrf($csrf)) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !');
|
||||
return header('Location: ' . \descartes\Router::url('Sended', 'list'));
|
||||
return $this->redirect(\descartes\Router::url('Sended', 'list'));
|
||||
}
|
||||
|
||||
$ids = $_GET['ids'] ?? [];
|
||||
foreach ($ids as $id) {
|
||||
$this->internalSended->delete($id);
|
||||
$this->internal_sended->delete($id);
|
||||
}
|
||||
|
||||
return header('Location: ' . \descartes\Router::url('Sended', 'list'));
|
||||
return $this->redirect(\descartes\Router::url('Sended', 'list'));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,11 +10,11 @@ namespace controllers\publics;
|
|||
|
||||
public function __construct()
|
||||
{
|
||||
$bdd = Model::connect(DATABASE_HOST, DATABASE_NAME, DATABASE_USER, DATABASE_PASSWORD);
|
||||
$bdd = \descartes\Model::_connect(DATABASE_HOST, DATABASE_NAME, DATABASE_USER, DATABASE_PASSWORD);
|
||||
$this->internal_setting = new \controllers\internals\Setting($bdd);
|
||||
|
||||
|
||||
\controllers\internals\Tool::verify_connect();
|
||||
\controllers\internals\Tool::verifyconnect();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -34,30 +34,30 @@ namespace controllers\publics;
|
|||
*/
|
||||
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 (!$this->verify_csrf($csrf)) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !');
|
||||
return $this->redirect(\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'));
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::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 ($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'));
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::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);
|
||||
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'));
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Impossible de mettre à jour ce réglage.');
|
||||
return $this->redirect(\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'));
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('success', 'Le réglage a bien été mis à jour.');
|
||||
return $this->redirect(\descartes\Router::url('Setting', 'show'));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,21 +4,21 @@ namespace controllers\publics;
|
|||
/**
|
||||
* Page des smsstops
|
||||
*/
|
||||
class SMSStop extends \descartes\Controller
|
||||
class SmsStop extends \descartes\Controller
|
||||
{
|
||||
private $internal_sms_stop;
|
||||
|
||||
/**
|
||||
* Cette fonction est appelée avant toute les autres :
|
||||
* Elle vérifie que l'utilisateur est bien connecté
|
||||
* @return void;
|
||||
*/
|
||||
public function _before()
|
||||
public function __construct()
|
||||
{
|
||||
global $bdd;
|
||||
$this->bdd = $bdd;
|
||||
$bdd = \descartes\Model::_connect(DATABASE_HOST, DATABASE_NAME, DATABASE_USER, DATABASE_PASSWORD);
|
||||
$this->internal_sms_stop = new \controllers\internals\SmsStop($bdd);
|
||||
|
||||
$this->internalSMSStop = new \controllers\internals\SMSStop($this->bdd);
|
||||
|
||||
\controllers\internals\Tool::verify_connect();
|
||||
\controllers\internals\Tool::verifyconnect();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -28,7 +28,7 @@ namespace controllers\publics;
|
|||
{
|
||||
$page = (int) $page;
|
||||
$limit = 25;
|
||||
$smsstops = $this->internalSMSStop->get_list($limit, $page);
|
||||
$smsstops = $this->internal_sms_stop->get_list($limit, $page);
|
||||
$this->render('smsstop/list', ['page' => $page, 'smsstops' => $smsstops, 'limit' => $limit, 'nb_results' => count($smsstops)]);
|
||||
}
|
||||
|
||||
|
@ -39,21 +39,21 @@ namespace controllers\publics;
|
|||
*/
|
||||
public function delete($csrf)
|
||||
{
|
||||
if (!$this->verifyCSRF($csrf)) {
|
||||
if (!$this->verify_csrf($csrf)) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !');
|
||||
return header('Location: ' . \descartes\Router::url('SMSStop', 'list'));
|
||||
return $this->redirect(\descartes\Router::url('SmsStop', 'list'));
|
||||
}
|
||||
|
||||
if (!\controllers\internals\Tool::is_admin()) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Vous devez être administrateur pour pouvoir supprimer un "STOP SMS" !');
|
||||
return header('Location: ' . \descartes\Router::url('SMSStop', 'list'));
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Vous devez être administrateur pour pouvoir supprimer un "STOP Sms" !');
|
||||
return $this->redirect(\descartes\Router::url('SmsStop', 'list'));
|
||||
}
|
||||
|
||||
$ids = $_GET['ids'] ?? [];
|
||||
foreach ($ids as $id) {
|
||||
$this->internalSMSStop->delete($id);
|
||||
$this->internal_sms_stop->delete($id);
|
||||
}
|
||||
|
||||
return header('Location: ' . \descartes\Router::url('SMSStop', 'list'));
|
||||
return $this->redirect(\descartes\Router::url('SmsStop', 'list'));
|
||||
}
|
||||
}
|
|
@ -1,110 +1,112 @@
|
|||
<?php
|
||||
namespace controllers\publics;
|
||||
namespace controllers\publics;
|
||||
|
||||
/**
|
||||
* Page des users
|
||||
*/
|
||||
class User extends \descartes\Controller
|
||||
class User extends \descartes\Controller
|
||||
{
|
||||
private $internal_user;
|
||||
|
||||
/**
|
||||
* Cette fonction est appelée avant toute les autres :
|
||||
* Elle vérifie que l'utilisateur est bien connecté
|
||||
* @return void;
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
/**
|
||||
* Cette fonction est appelée avant toute les autres :
|
||||
* Elle vérifie que l'utilisateur est bien connecté
|
||||
* @return void;
|
||||
*/
|
||||
public function _before()
|
||||
{
|
||||
$bdd = Model::connect(DATABASE_HOST, DATABASE_NAME, DATABASE_USER, DATABASE_PASSWORD);
|
||||
$this->internal_user = new \controllers\internals\User($bdd);
|
||||
$bdd = \descartes\Model::_connect(DATABASE_HOST, DATABASE_NAME, DATABASE_USER, DATABASE_PASSWORD);
|
||||
$this->internal_user = new \controllers\internals\User($bdd);
|
||||
|
||||
\controllers\internals\Tool::verify_connect();
|
||||
}
|
||||
|
||||
/**
|
||||
* Cette fonction retourne tous les users, sous forme d'un tableau permettant l'administration de ces users
|
||||
*/
|
||||
public function list($page = 0)
|
||||
{
|
||||
$page = (int) $page;
|
||||
$users = $this->internal_user->list(25, $page);
|
||||
$this->render('user/list', ['users' => $users]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Cette fonction va supprimer une liste de users
|
||||
* @param array int $_GET['ids'] : Les id des useres à supprimer
|
||||
* @return boolean;
|
||||
*/
|
||||
public function delete($csrf)
|
||||
{
|
||||
if (!$this->verifyCSRF($csrf)) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !');
|
||||
return header('Location: ' . \descartes\Router::url('User', 'list'));
|
||||
}
|
||||
|
||||
if (!\controllers\internals\Tool::is_admin()) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Vous devez être administrateur pour supprimer un utilisateur !');
|
||||
return header('Location: ' . \descartes\Router::url('User', 'list'));
|
||||
}
|
||||
|
||||
$ids = $_GET['ids'] ?? [];
|
||||
foreach ($ids as $id) {
|
||||
$this->internal_user->delete($id);
|
||||
}
|
||||
|
||||
return header('Location: ' . \descartes\Router::url('User', 'list'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Cette fonction retourne la page d'ajout d'un user
|
||||
*/
|
||||
public function add()
|
||||
{
|
||||
return $this->render('user/add');
|
||||
}
|
||||
|
||||
/**
|
||||
* Cette fonction insert un nouveau user
|
||||
* @param $csrf : Le jeton CSRF
|
||||
* @param string $_POST['email'] : L'email de l'utilisateur
|
||||
* @param string $_POST['email_confirm'] : Verif de l'email de l'utilisateur
|
||||
* @param optional string $_POST['password'] : Le mot de passe de l'utilisateur (si vide, généré automatiquement)
|
||||
* @param optional string $_POST['password_confirm'] : Confirmation du mot de passe de l'utilisateur
|
||||
* @param optional boolean $_POST['admin'] : Si vrai, l'utilisateur est admin, si vide non
|
||||
*/
|
||||
public function create($csrf)
|
||||
{
|
||||
if (!$this->verifyCSRF($csrf)) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !');
|
||||
return header('Location: ' . \descartes\Router::url('User', 'add'));
|
||||
}
|
||||
|
||||
$email = $_POST['email'] ?? false;
|
||||
$password = $_POST['password'] ?? \controllers\internals\Tool::generate_password(rand(6, 12));
|
||||
$admin = $_POST['admin'] ?? false;
|
||||
|
||||
if (!$email) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Vous devez au moins fournir une adresse e-mail pour l\'utilisateur.');
|
||||
return header('Location: ' . \descartes\Router::url('User', 'add'));
|
||||
}
|
||||
|
||||
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'L\'adresse e-mail n\'est pas valide.');
|
||||
return header('Location: ' . \descartes\Router::url('User', 'add'));
|
||||
}
|
||||
|
||||
$email_send = \controllers\internals\Tool::send_email($email, EMAIL_CREATE_USER, ['email' => $email, 'password' => $password]);
|
||||
if (!$email_send) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Impossible d\'envoyer l\'e-mail à l\'utilisateur, le compte n\'a donc pas été créé.');
|
||||
return header('Location: ' . \descartes\Router::url('User', 'add'));
|
||||
}
|
||||
|
||||
$user_id = $this->internal_user->create($email, $password, $admin);
|
||||
if (!$user_id) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Impossible de créer ce user.');
|
||||
return header('Location: ' . \descartes\Router::url('User', 'add'));
|
||||
}
|
||||
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('success', 'L\'utilisateur a bien été créé.');
|
||||
return header('Location: ' . \descartes\Router::url('User', 'list'));
|
||||
}
|
||||
\controllers\internals\Tool::verifyconnect();
|
||||
}
|
||||
|
||||
/**
|
||||
* Cette fonction retourne tous les users, sous forme d'un tableau permettant l'administration de ces users
|
||||
*/
|
||||
public function list($page = 0)
|
||||
{
|
||||
$page = (int) $page;
|
||||
$users = $this->internal_user->list(25, $page);
|
||||
$this->render('user/list', ['users' => $users]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Cette fonction va supprimer une liste de users
|
||||
* @param array int $_GET['ids'] : Les id des useres à supprimer
|
||||
* @return boolean;
|
||||
*/
|
||||
public function delete($csrf)
|
||||
{
|
||||
if (!$this->verify_csrf($csrf)) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !');
|
||||
return $this->redirect(\descartes\Router::url('User', 'list'));
|
||||
}
|
||||
|
||||
if (!\controllers\internals\Tool::is_admin()) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Vous devez être administrateur pour supprimer un utilisateur !');
|
||||
return $this->redirect(\descartes\Router::url('User', 'list'));
|
||||
}
|
||||
|
||||
$ids = $_GET['ids'] ?? [];
|
||||
foreach ($ids as $id) {
|
||||
$this->internal_user->delete($id);
|
||||
}
|
||||
|
||||
return $this->redirect(\descartes\Router::url('User', 'list'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Cette fonction retourne la page d'ajout d'un user
|
||||
*/
|
||||
public function add()
|
||||
{
|
||||
return $this->render('user/add');
|
||||
}
|
||||
|
||||
/**
|
||||
* Cette fonction insert un nouveau user
|
||||
* @param $csrf : Le jeton CSRF
|
||||
* @param string $_POST['email'] : L'email de l'utilisateur
|
||||
* @param string $_POST['email_confirm'] : Verif de l'email de l'utilisateur
|
||||
* @param optional string $_POST['password'] : Le mot de passe de l'utilisateur (si vide, généré automatiquement)
|
||||
* @param optional string $_POST['password_confirm'] : Confirmation du mot de passe de l'utilisateur
|
||||
* @param optional boolean $_POST['admin'] : Si vrai, l'utilisateur est admin, si vide non
|
||||
*/
|
||||
public function create($csrf)
|
||||
{
|
||||
if (!$this->verify_csrf($csrf)) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !');
|
||||
return $this->redirect(\descartes\Router::url('User', 'add'));
|
||||
}
|
||||
|
||||
$email = $_POST['email'] ?? false;
|
||||
$password = $_POST['password'] ?? \controllers\internals\Tool::generate_password(rand(6, 12));
|
||||
$admin = $_POST['admin'] ?? false;
|
||||
|
||||
if (!$email) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Vous devez au moins fournir une adresse e-mail pour l\'utilisateur.');
|
||||
return $this->redirect(\descartes\Router::url('User', 'add'));
|
||||
}
|
||||
|
||||
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'L\'adresse e-mail n\'est pas valide.');
|
||||
return $this->redirect(\descartes\Router::url('User', 'add'));
|
||||
}
|
||||
|
||||
$email_send = \controllers\internals\Tool::send_email($email, EMAIL_CREATE_USER, ['email' => $email, 'password' => $password]);
|
||||
if (!$email_send) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Impossible d\'envoyer l\'e-mail à l\'utilisateur, le compte n\'a donc pas été créé.');
|
||||
return $this->redirect(\descartes\Router::url('User', 'add'));
|
||||
}
|
||||
|
||||
$user_id = $this->internal_user->create($email, $password, $admin);
|
||||
if (!$user_id) {
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Impossible de créer ce user.');
|
||||
return $this->redirect(\descartes\Router::url('User', 'add'));
|
||||
}
|
||||
|
||||
\modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('success', 'L\'utilisateur a bien été créé.');
|
||||
return $this->redirect(\descartes\Router::url('User', 'list'));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue