diff --git a/controllers/internals/Command.php b/controllers/internals/Command.php index a6c47c5..4bac805 100755 --- a/controllers/internals/Command.php +++ b/controllers/internals/Command.php @@ -1,40 +1,41 @@ model_command = new \models\Command($bdd); $this->internal_event = new \controllers\internals\Event($bdd); } - /** + /** * Return the list of commands as an array * @param mixed(int|bool) $nb_entry : Le nombre d'entrées à retourner par page * @param mixed(int|bool) $page : Le numéro de page en cours * @return array : La liste des commandes - */ - public function list ($nb_entry = false, $page = false) - { - //Recupération des commandes + */ + public function list($nb_entry = false, $page = false) + { + //Recupération des commandes $model_command = new \models\Command($this->bdd); return $model_command->list($nb_entry, $nb_entry * $page); - } + } - /** + /** * Cette fonction retourne une liste des commandes sous forme d'un tableau * @param array int $ids : Les ids des entrées à retourner * @return array : La liste des commandes - */ - public function get_by_ids ($ids) - { - //Recupération des commandes + */ + public function get_by_ids($ids) + { + //Recupération des commandes $modelCommand = new \models\Command($this->bdd); return $modelCommand->get_by_ids($ids); } @@ -43,29 +44,29 @@ namespace controllers\internals; * Cette fonction permet de compter le nombre de scheduleds * @return int : Le nombre d'entrées dans la table */ - public function count () + public function count() { $modelCommand = new \models\Command($this->bdd); return $modelCommand->count(); } - /** - * Cette fonction va supprimer une commande - * @param array $id : L'id de la commande à supprimer - * @return int : Le nombre de commandes supprimées; - */ - public function delete ($id) + /** + * Cette fonction va supprimer une commande + * @param array $id : L'id de la commande à supprimer + * @return int : Le nombre de commandes supprimées; + */ + public function delete($id) { $modelCommand = new \models\Command($this->bdd); return $modelCommand->delete_by_id($id); - } + } - /** + /** * Cette fonction insert une nouvelle commande * @param array $command : La commande à insérer * @return mixed bool|int : false si echec, sinon l'id de la nouvelle commande insérée - */ - public function create ($name, $script, $admin) + */ + public function create($name, $script, $admin) { $command = [ 'name' => $name, @@ -76,21 +77,20 @@ namespace controllers\internals; $modelCommand = new \models\Command($this->bdd); $result = $modelCommand->insert($command); - if (!$result) - { + if (!$result) { return false; } - $internalEvent = new \controllers\internals\Event($this->bdd); + $internalEvent = new \controllers\internals\Event($this->bdd); $internalEvent->create('COMMAND_ADD', 'Ajout commande : ' . $name . ' => ' . $script); return $result; - } + } - /** + /** * Cette fonction met à jour un commande * @return int : le nombre de ligne modifiées - */ - public function update ($id, $name, $script, $admin) + */ + public function update($id, $name, $script, $admin) { $modelCommand = new \models\Command($this->bdd); @@ -104,4 +104,4 @@ namespace controllers\internals; return $result; } - } + } diff --git a/controllers/internals/Console.php b/controllers/internals/Console.php index 3351e7b..472e5f1 100755 --- a/controllers/internals/Console.php +++ b/controllers/internals/Console.php @@ -1,6 +1,7 @@ $value) - { + foreach ($commands as $name => $value) { $requireds = isset($value['requireds']) ? $value['requireds'] : array(); $optionals = isset($value['optionals']) ? $value['optionals'] : array(); $message .= ' ' . $name . ' : ' . $value['description'] . "\n"; $message .= " Arguments obligatoires : \n"; - if (!count($requireds)) - { + if (!count($requireds)) { $message .= " Pas d'argument\n"; - } - else - { - foreach ($requireds as $argument => $desc) - { + } else { + foreach ($requireds as $argument => $desc) { $message .= ' - ' . $argument . ' : ' . $desc . "\n"; } } $message .= " Arguments optionnels : \n"; - if (!count($optionals)) - { + if (!count($optionals)) { $message .= " Pas d'argument\n"; - } - else - { - foreach ($optionals as $argument => $desc) - { + } else { + foreach ($optionals as $argument => $desc) { $message .= ' - ' . $argument . ' : ' . $desc . "\n"; } } @@ -77,8 +69,7 @@ class Console extends \InternalController //On créé l'objet de base de données global $db; - for ($i = 0; $i < 30; $i++) - { + for ($i = 0; $i < 30; $i++) { $now = new \DateTime(); $now = $now->format('Y-m-d H:i:s'); @@ -89,8 +80,7 @@ class Console extends \InternalController $ids_scheduleds = array(); //On passe en cours de progression tous les SMS - foreach ($scheduleds as $scheduled) - { + foreach ($scheduleds as $scheduled) { $ids_scheduleds[] = $scheduled['id']; } @@ -99,8 +89,7 @@ class Console extends \InternalController $db->updateProgressScheduledIn($ids_scheduleds, true); //Pour chaque SMS à envoyer - foreach ($scheduleds as $scheduled) - { + foreach ($scheduleds as $scheduled) { $id_scheduled = $scheduled['id']; $text_sms = escapeshellarg($scheduled['content']); $flash = $scheduled['flash']; @@ -110,41 +99,33 @@ class Console extends \InternalController //On récupère les numéros pour le SMS et on les ajoute $target_numbers = $db->getNumbersForScheduled($id_scheduled); - foreach ($target_numbers as $target_number) - { + foreach ($target_numbers as $target_number) { $numbers[] = $target_number['number']; } //On récupère les contacts, et on ajoute les numéros $contacts = $db->getContactForScheduled($id_scheduled); - foreach ($contacts as $contact) - { + foreach ($contacts as $contact) { $numbers[] = $contact['number']; } //On récupère les groupes $groupes = $db->getGroupeForScheduled($id_scheduled); - foreach ($groupes as $groupe) - { + foreach ($groupes as $groupe) { //On récupère les contacts du groupe et on les ajoute aux numéros $contacts = $db->getContactForGroupe($groupe['id']); - foreach ($contacts as $contact) - { + foreach ($contacts as $contact) { $numbers[] = $contact['number']; } } $smsStops = $db->getFromTableWhere('smsstop'); - foreach ($numbers as $number) - { + foreach ($numbers as $number) { //Si les SMS STOP sont activés, on passe au numéro suivant si le numéro actuelle fait parti des SMS STOP - if (RASPISMS_SETTINGS_SMSSTOPS) - { - foreach ($smsStops as $smsStop) - { - if (!($number == $smsStop['number'])) - { + if (RASPISMS_SETTINGS_SMSSTOPS) { + foreach ($smsStops as $smsStop) { + if (!($number == $smsStop['number'])) { continue; } @@ -160,8 +141,7 @@ class Console extends \InternalController $now = $now->format('Y-m-d H:i:s'); //On peut maintenant ajouter le SMS - if (!$db->insertIntoTable('sendeds', ['at' => $now, 'target' => $number, 'content' => $scheduled['content'], 'before_delivered' => ceil(mb_strlen($scheduled['content'])/160)])) - { + if (!$db->insertIntoTable('sendeds', ['at' => $now, 'target' => $number, 'content' => $scheduled['content'], 'before_delivered' => ceil(mb_strlen($scheduled['content'])/160)])) { echo 'Impossible d\'inserer le sms pour le numero ' . $number . "\n"; } @@ -170,8 +150,7 @@ class Console extends \InternalController //Commande qui envoie le SMS $commande_send_sms = 'gammu-smsd-inject TEXT ' . escapeshellarg($number) . ' -report -len ' . mb_strlen($text_sms) . ' -text ' . $text_sms; - if (RASPISMS_SETTINGS_SMS_FLASH && $flash) - { + if (RASPISMS_SETTINGS_SMS_FLASH && $flash) { $commande_send_sms .= ' -flash'; } @@ -184,7 +163,7 @@ class Console extends \InternalController } echo "Tous les SMS sont en cours d'envoi.\n"; - //Tous les SMS ont été envoyés. + //Tous les SMS ont été envoyés. $db->deleteScheduledIn($ids_scheduleds); //On dors 2 secondes @@ -200,15 +179,12 @@ class Console extends \InternalController //On créer l'objet de base de données global $db; - for ($i = 0; $i < 30; $i++) - { - foreach (scandir(PWD_RECEIVEDS) as $dir) - { + for ($i = 0; $i < 30; $i++) { + foreach (scandir(PWD_RECEIVEDS) as $dir) { //Si le fichier est un fichier système, on passe à l'itération suivante - if ($dir == '.' || $dir == '..' || $dir == '.tokeep') - { + if ($dir == '.' || $dir == '..' || $dir == '.tokeep') { continue; - } + } echo "Analyse du SMS " . $dir . "\n"; @@ -220,15 +196,13 @@ class Console extends \InternalController $content_file = file_get_contents(PWD_RECEIVEDS . $dir); //Si on peux pas ouvrir le fichier, on quitte en logant une erreur - if ($content_file == false) - { + if ($content_file == false) { $this->wlog('Unable to read file "' . $dir); die(4); } //On supprime le fichier. Si on n'y arrive pas, alors on log - if (!unlink(PWD_RECEIVEDS . $dir)) - { + if (!unlink(PWD_RECEIVEDS . $dir)) { $this->wlog('Unable to delete file "' . $dir); die(8); } @@ -236,8 +210,7 @@ class Console extends \InternalController $content_file = explode(':', $content_file, 2); //Si on a pas passé de numéro ou de message, alors on lève une erreur - if (!isset($content_file[0], $content_file[1])) - { + if (!isset($content_file[0], $content_file[1])) { $this->wlog('Missing params in file "' . $dir); die(5); } @@ -247,8 +220,7 @@ class Console extends \InternalController $text = $content_file[1]; //On gère les SMS STOP - if (trim($text) == 'STOP') - { + if (trim($text) == 'STOP') { echo 'STOP SMS detected ' . $number . "\n"; $this->wlog('STOP SMS detected ' . $number); $db->insertIntoTable('smsstop', ['number' => $number]); @@ -256,8 +228,7 @@ class Console extends \InternalController } //On gère les accusés de reception - if (trim($text) == 'Delivered' || trim($text) == 'Failed') - { + if (trim($text) == 'Delivered' || trim($text) == 'Failed') { echo 'Delivered or Failed SMS for ' . $number . "\n"; $this->wlog('Delivered or Failed SMS for ' . $number); @@ -266,24 +237,21 @@ class Console extends \InternalController $interval = new \DateInterval('PT12H'); $sinceDate = $now->sub($interval)->format('Y-m-d H:i:s'); - if (!$sendeds = $db->getFromTableWhere('sendeds', ['target' => $number, 'delivered' => false, 'failed' => false, '>at' => $sinceDate], 'at', false, 1)) - { + if (!$sendeds = $db->getFromTableWhere('sendeds', ['target' => $number, 'delivered' => false, 'failed' => false, '>at' => $sinceDate], 'at', false, 1)) { continue; } $sended = $sendeds[0]; //On gère les echecs - if (trim($text) == 'Failed') - { + if (trim($text) == 'Failed') { $db->updateTableWhere('sendeds', ['before_delivered' => 0, 'failed' => true], ['id' => $sended['id']]); echo "Sended SMS id " . $sended['id'] . " pass to failed status\n"; continue; } //On gère le cas des messages de plus de 160 caractères, lesquels impliquent plusieurs accusés - if ($sended['before_delivered'] > 1) - { + if ($sended['before_delivered'] > 1) { $db->updateTableWhere('sendeds', ['before_delivered' => $sended['before_delivered'] - 1], ['id' => $sended['id']]); echo "Sended SMS id " . $sended['id'] . " before_delivered decrement\n"; continue; @@ -295,8 +263,7 @@ class Console extends \InternalController continue; } - if (!$number) - { + if (!$number) { $this->wlog('Invalid phone number in file "' . $dir); die(6); } @@ -309,28 +276,23 @@ class Console extends \InternalController $found_commands = array(); //Si on reçu des identifiants - if (array_key_exists('LOGIN', $flags) && array_key_exists('PASSWORD', $flags)) - { + if (array_key_exists('LOGIN', $flags) && array_key_exists('PASSWORD', $flags)) { //Si on a bien un utilisateur avec les identifiants reçus $user = $db->getUserFromEmail($flags['LOGIN']); $this->wlog('We found ' . count($user) . ' users'); - if ($user && $user['password'] == sha1($flags['PASSWORD'])) - { + if ($user && $user['password'] == sha1($flags['PASSWORD'])) { $this->wlog('Password is valid'); //On va passer en revue toutes les commandes, pour voir si on en trouve dans ce message $commands = $db->getFromTableWhere('commands'); $this->wlog('We found ' . count($commands) . ' commands'); - foreach ($commands as $command) - { + foreach ($commands as $command) { $command_name = mb_strtoupper($command['name']); - if (array_key_exists($command_name, $flags)) - { + if (array_key_exists($command_name, $flags)) { $this->wlog('We found command ' . $command_name); //Si la commande ne nécessite pas d'être admin, ou si on est admin - if (!$command['admin'] || $user['admin']) - { + if (!$command['admin'] || $user['admin']) { $this->wlog('And the count is ok'); $found_commands[$command_name] = PWD_SCRIPTS . $command['script'] . escapeshellcmd($flags[$command_name]); } @@ -340,8 +302,7 @@ class Console extends \InternalController } //On va supprimer le mot de passe du SMS pour pouvoir l'enregistrer sans danger - if (isset($flags['PASSWORD'])) - { + if (isset($flags['PASSWORD'])) { $text = str_replace($flags['PASSWORD'], '*****', $text); } @@ -349,8 +310,7 @@ class Console extends \InternalController $send_by = $number; $content = $text; $is_command = count($found_commands); - if (!$db->insertIntoTable('receiveds', ['at' => $date, 'send_by' => $send_by, 'content' => $content, 'is_command' => $is_command])) - { + if (!$db->insertIntoTable('receiveds', ['at' => $date, 'send_by' => $send_by, 'content' => $content, 'is_command' => $is_command])) { echo "Erreur lors de l'enregistrement du SMS\n"; $this->wlog('Unable to process the SMS in file "' . $dir); die(7); @@ -360,8 +320,7 @@ class Console extends \InternalController $db->insertIntoTable('transfers', ['id_received' => $db->lastId(), 'progress' => false]); //Chaque commande sera executée. - foreach ($found_commands as $command_name => $command) - { + foreach ($found_commands as $command_name => $command) { echo 'Execution de la commande : ' . $command_name . ' :: ' . $command . "\n"; exec($command); } @@ -375,10 +334,9 @@ class Console extends \InternalController /** * Cette fonction permet d'envoyer par mail les sms à transférer */ - public function sendTransfers () + public function sendTransfers() { - if (!RASPISMS_SETTINGS_TRANSFER) - { + if (!RASPISMS_SETTINGS_TRANSFER) { echo "Le transfer de SMS est désactivé ! \n"; return false; } @@ -388,8 +346,7 @@ class Console extends \InternalController $ids_transfers = []; $ids_receiveds = []; - foreach ($transfers as $transfer) - { + foreach ($transfers as $transfer) { $ids_transfers[] = $transfer['id']; $ids_receiveds[] = $transfer['id_received']; } @@ -400,10 +357,8 @@ class Console extends \InternalController $users = $db->getFromTableWhere('users', ['transfer' => true]); - foreach ($users as $user) - { - foreach ($receiveds as $received) - { + foreach ($users as $user) { + foreach ($receiveds as $received) { echo "Transfer d'un SMS du " . $received['send_by'] . " à l'email " . $user['email']; $to = $user['email']; $subject = '[RaspiSMS] - Transfert d\'un SMS du ' . $received['send_by']; diff --git a/controllers/internals/Contact.php b/controllers/internals/Contact.php index 34c7ab8..f37d082 100755 --- a/controllers/internals/Contact.php +++ b/controllers/internals/Contact.php @@ -1,32 +1,33 @@ bdd); return $modelContact->get_list($nb_entry, $nb_entry * $page); - } + } - /** + /** * Cette fonction retourne une liste des contactes sous forme d'un tableau * @param array int $ids : Les ids des entrées à retourner * @return array : La liste des contactes - */ - public function get_by_ids ($ids) - { - //Recupération des contactes + */ + public function get_by_ids($ids) + { + //Recupération des contactes $modelContact = new \models\Contact($this->bdd); return $modelContact->get_by_ids($ids); } @@ -35,10 +36,10 @@ namespace controllers\internals; * Cette fonction retourne un contact par son numéro de tel * @param string $number : Le numéro du contact * @return array : Le contact - */ - public function get_by_number ($number) - { - //Recupération des contactes + */ + public function get_by_number($number) + { + //Recupération des contactes $modelContact = new \models\Contact($this->bdd); return $modelContact->get_by_number($number); } @@ -47,10 +48,10 @@ namespace controllers\internals; * Cette fonction retourne un contact par son name * @param string $name : Le name du contact * @return array : Le contact - */ - public function get_by_name ($name) - { - //Recupération des contactes + */ + public function get_by_name($name) + { + //Recupération des contactes $modelContact = new \models\Contact($this->bdd); return $modelContact->get_by_name($name); } @@ -60,29 +61,29 @@ namespace controllers\internals; * Cette fonction permet de compter le nombre de contacts * @return int : Le nombre d'entrées dans la table */ - public function count () + public function count() { $modelContact = new \models\Contact($this->bdd); return $modelContact->count(); } - /** - * Cette fonction va supprimer un contact - * @param array $id : L'id du contact à supprimer - * @return int : Le nombre de contact supprimées; - */ - public function delete ($id) + /** + * Cette fonction va supprimer un contact + * @param array $id : L'id du contact à supprimer + * @return int : Le nombre de contact supprimées; + */ + public function delete($id) { $modelContact = new \models\Contact($this->bdd); return $modelContact->delete_by_id($id); - } + } - /** + /** * Cette fonction insert une nouvelle contacte * @param array $contact : Un tableau représentant la contacte à insérer * @return mixed bool|int : false si echec, sinon l'id de la nouvelle contacte insérée - */ - public function create ($number, $name) + */ + public function create($number, $name) { $contact = [ 'number' => $number, @@ -92,8 +93,7 @@ namespace controllers\internals; $modelContact = new \models\Contact($this->bdd); $result = $modelContact->insert($contact); - if (!$result) - { + if (!$result) { return $result; } @@ -101,13 +101,13 @@ namespace controllers\internals; $internalEvent->create('CONTACT_ADD', 'Ajout contact : ' . $name . ' (' . \controllers\internals\Tool::phone_add_space($number) . ')'); return $result; - } + } - /** + /** * Cette fonction met à jour une série de contactes * @return int : le nombre de ligne modifiées - */ - public function update ($id, $number, $name) + */ + public function update($id, $number, $name) { $modelContact = new \models\Contact($this->bdd); @@ -118,4 +118,4 @@ namespace controllers\internals; return $modelContact->update($id, $contact); } - } + } diff --git a/controllers/internals/Event.php b/controllers/internals/Event.php index 7f58543..51c99b7 100755 --- a/controllers/internals/Event.php +++ b/controllers/internals/Event.php @@ -3,52 +3,52 @@ /** * Classe des Event - */ - class Event extends \InternalController - { + */ + class Event extends \descartes\InternalController + { - /** + /** * Cette fonction retourne une liste des events sous forme d'un tableau * @param PDO $bdd : instance PDO de la base de donnée * @param mixed(int|bool) $nb_entry : Le nombre d'entrées à retourner par page * @param mixed(int|bool) $page : Le numéro de page en cours * @return array : La liste des events - */ - public function get_list ($nb_entry = false, $page = false) - { - //Recupération des events + */ + public function get_list($nb_entry = false, $page = false) + { + //Recupération des events $modelEvent = new \models\Event($this->bdd); return $modelEvent->get_list($nb_entry, $nb_entry * $page); - } + } /** * Cette fonction retourne les X dernières entrées triées par date * @param mixed false|int $nb_entry : Nombre d'entrée à retourner ou faux pour tout * @return array : Les dernières entrées */ - public function get_lasts_by_date ($nb_entry = false) + public function get_lasts_by_date($nb_entry = false) { $modelEvent = new \models\Event($this->bdd); return $modelEvent->get_lasts_by_date($nb_entry); } - /** - * Cette fonction va supprimer une liste de contacts - * @param array $ids : Les id des contactes à supprimer - * @return int : Le nombre de contactes supprimées; - */ - public function delete ($id) + /** + * Cette fonction va supprimer une liste de contacts + * @param array $ids : Les id des contactes à supprimer + * @return int : Le nombre de contactes supprimées; + */ + public function delete($id) { $modelEvent = new \models\Event($this->bdd); return $modelEvent->delete_by_id($id); - } + } - /** + /** * Cette fonction insert un nouvel event * @param array $event : Un tableau représentant l'event à insérer * @return mixed bool|int : false si echec, sinon l'id du nouvel event inséré - */ - public function create ($type, $text) + */ + public function create($type, $text) { $modelEvent = new \models\Event($this->bdd); @@ -58,6 +58,5 @@ ]; return $modelEvent->insert($event); - } - - } + } + } diff --git a/controllers/internals/Groupe.php b/controllers/internals/Groupe.php index 68901e5..319ba79 100755 --- a/controllers/internals/Groupe.php +++ b/controllers/internals/Groupe.php @@ -1,32 +1,33 @@ bdd); return $modelGroupe->get_list($nb_entry, $nb_entry * $page); - } + } - /** + /** * Cette fonction retourne une liste des groupes sous forme d'un tableau * @param array int $ids : Les ids des entrées à retourner * @return array : La liste des groupes - */ - public function get_by_ids ($ids) - { - //Recupération des groupes + */ + public function get_by_ids($ids) + { + //Recupération des groupes $modelGroupe = new \models\Groupe($this->bdd); return $modelGroupe->get_by_ids($ids); } @@ -35,10 +36,10 @@ namespace controllers\internals; * Cette fonction retourne un groupe par son name * @param string $name : Le name du groupe * @return array : Le groupe - */ - public function get_by_name ($name) - { - //Recupération des groupes + */ + public function get_by_name($name) + { + //Recupération des groupes $modelGroupe = new \models\Groupe($this->bdd); return $modelGroupe->get_by_name($name); } @@ -47,45 +48,43 @@ namespace controllers\internals; * Cette fonction permet de compter le nombre de groupe * @return int : Le nombre d'entrées dans la table */ - public function count () + public function count() { $modelGroupe = new \models\Groupe($this->bdd); return $modelGroupe->count(); } - /** - * Cette fonction va supprimer une liste de groupe - * @param array $ids : Les id des groupes à supprimer - * @return int : Le nombre de groupes supprimées; - */ - public function delete ($ids) + /** + * Cette fonction va supprimer une liste de groupe + * @param array $ids : Les id des groupes à supprimer + * @return int : Le nombre de groupes supprimées; + */ + public function delete($ids) { $modelGroupe = new \models\Groupe($this->bdd); return $modelGroupe->delete_by_ids($ids); - } + } - /** + /** * Cette fonction insert une nouvelle groupe * @param array $name : le nom du groupe * @param array $contacts_ids : Un tableau des ids des contact du groupe * @return mixed bool|int : false si echec, sinon l'id de la nouvelle groupe insérée - */ - public function create ($name, $contacts_ids) - { + */ + public function create($name, $contacts_ids) + { $modelGroupe = new \models\Groupe($this->bdd); $groupe = [ 'name' => $name, - ]; + ]; $id_groupe = $modelGroupe->insert($groupe); - if (!$id_groupe) - { + if (!$id_groupe) { return false; } - foreach ($contacts_ids as $contact_id) - { + foreach ($contacts_ids as $contact_id) { $modelGroupe->insert_groupe_contact($id_groupe, $contact_id); } @@ -93,16 +92,16 @@ namespace controllers\internals; $internalEvent->create('GROUP_ADD', 'Ajout groupe : ' . $name); return $id_groupe; - } + } - /** + /** * Cette fonction met à jour un groupe * @param int $id : L'id du groupe à update * @param string $name : Le nom du groupe à update * @param string $contacts_ids : Les ids des contact du groupe * @return bool : True if all update ok, false else - */ - public function update ($id, $name, $contacts_ids) + */ + public function update($id, $name, $contacts_ids) { $modelGroupe = new \models\Groupe($this->bdd); @@ -115,16 +114,13 @@ namespace controllers\internals; $modelGroupe->delete_groupe_contact($id); $nb_contact_insert = 0; - foreach ($contacts_ids as $contact_id) - { - if ($modelGroupe->insert_groupe_contact($id, $contact_id)) - { + foreach ($contacts_ids as $contact_id) { + if ($modelGroupe->insert_groupe_contact($id, $contact_id)) { $nb_contact_insert ++; } } - if (!$result && $nb_contact_insert != count($contacts_ids)) - { + if (!$result && $nb_contact_insert != count($contacts_ids)) { return false; } @@ -135,12 +131,11 @@ namespace controllers\internals; * Cette fonction retourne les contact pour un groupe * @param string $id : L'id du groupe * @return array : Un tableau avec les contact - */ - public function get_contact ($id) - { - //Recupération des groupes + */ + public function get_contact($id) + { + //Recupération des groupes $modelGroupe = new \models\Groupe($this->bdd); return $modelGroupe->get_contact($id); } - - } + } diff --git a/controllers/internals/Received.php b/controllers/internals/Received.php index e6a077a..8024407 100755 --- a/controllers/internals/Received.php +++ b/controllers/internals/Received.php @@ -1,9 +1,10 @@ bdd); @@ -24,8 +25,8 @@ class Received extends \InternalController * Cette fonction retourne une liste des receivedes sous forme d'un tableau * @param array int $ids : Les ids des entrées à retourner * @return array : La liste des receivedes - */ - public function get_by_ids ($ids) + */ + public function get_by_ids($ids) { //Recupération des receivedes $modelReceived = new \models\Received($this->bdd); @@ -37,7 +38,7 @@ class Received extends \InternalController * @param mixed false|int $nb_entry : Nombre d'entrée à retourner ou faux pour tout * @return array : Les dernières entrées */ - public function get_lasts_by_date ($nb_entry = false) + public function get_lasts_by_date($nb_entry = false) { $modelReceived = new \models\Received($this->bdd); return $modelReceived->get_lasts_by_date($nb_entry); @@ -47,8 +48,8 @@ class Received extends \InternalController * Cette fonction retourne une liste des receiveds sous forme d'un tableau * @param string $origin : Le numéro depuis lequel est envoyé le message * @return array : La liste des receiveds - */ - public function get_by_origin ($origin) + */ + public function get_by_origin($origin) { $modelReceived = new \models\Received($this->bdd); return $modelReceived->get_by_origin($origin); @@ -59,7 +60,7 @@ class Received extends \InternalController * @param $date : La date depuis laquelle on veux les SMS (au format 2014-10-25 20:10:05) * @return array : Tableau avec tous les SMS depuis la date */ - public function get_since_by_date ($date) + public function get_since_by_date($date) { $modelReceived = new \models\Received($this->bdd); return $modelReceived->get_since_by_date($date, $number); @@ -71,7 +72,7 @@ class Received extends \InternalController * @param $number : Le numéro * @return array : Tableau avec tous les SMS depuis la date */ - public function get_since_for_number_by_date ($date, $number) + public function get_since_for_number_by_date($date, $number) { $modelReceived = new \models\Received($this->bdd); return $modelReceived->get_since_for_number_by_date($date, $number); @@ -82,7 +83,7 @@ class Received extends \InternalController * @param array $ids : Les id des receivedes à supprimer * @return int : Le nombre de receivedes supprimées; */ - public function delete ($id) + public function delete($id) { $modelReceived = new \models\Received($this->bdd); return $modelReceived->delete_by_id($id); @@ -93,7 +94,7 @@ class Received extends \InternalController * @param array $received : Un tableau représentant la receivede à insérer * @return mixed bool|int : false si echec, sinon l'id de la nouvelle receivede insérée */ - public function create ($at, $origin, $content, $is_command) + public function create($at, $origin, $content, $is_command) { $received = [ 'at' => $at, @@ -110,7 +111,7 @@ class Received extends \InternalController * Cette fonction met à jour une série de receivedes * @return int : le nombre de ligne modifiées */ - public function update ($id, $at, $origin, $content, $is_command) + public function update($id, $at, $origin, $content, $is_command) { $modelReceived = new \models\Received($this->bdd); @@ -128,7 +129,7 @@ class Received extends \InternalController * Cette fonction permet de compter le nombre de receiveds * @return int : Le nombre d'entrées dans la table */ - public function count () + public function count() { $modelReceived = new \models\Received($this->bdd); return $modelReceived->count(); @@ -138,15 +139,14 @@ class Received extends \InternalController * Cette fonction compte le nombre de receiveds par jour depuis une date * @return array : un tableau avec en clef la date et en valeure le nombre de sms envoyés */ - public function count_by_day_since ($date) + public function count_by_day_since($date) { $modelReceived = new \models\Received($this->bdd); $counts_by_day = $modelReceived->count_by_day_since($date); $return = []; - foreach ($counts_by_day as $count_by_day) - { + foreach ($counts_by_day as $count_by_day) { $return[$count_by_day['at_ymd']] = $count_by_day['nb']; } @@ -157,7 +157,7 @@ class Received extends \InternalController * Cette fonction retourne les discussions avec un numéro * @return array : Un tableau avec la date de l'échange et le numéro de la personne */ - public function get_discussions () + public function get_discussions() { $modelReceived = new \models\Received($this->bdd); return $modelReceived->get_discussions(); diff --git a/controllers/internals/SMSStop.php b/controllers/internals/SMSStop.php index fafcbcb..d1e7eef 100755 --- a/controllers/internals/SMSStop.php +++ b/controllers/internals/SMSStop.php @@ -1,31 +1,32 @@ bdd); return $modelSMSStop->get_list($nb_entry, $nb_entry * $page); - } + } - /** + /** * Cette fonction retourne une liste des smsstopes sous forme d'un tableau * @param array int $ids : Les ids des entrées à retourner * @return array : La liste des smsstopes - */ - public function get_by_ids ($ids) - { - //Recupération des smsstopes + */ + public function get_by_ids($ids) + { + //Recupération des smsstopes $modelSMSStop = new \models\SMSStop($this->bdd); return $modelSMSStop->get_by_ids($ids); } @@ -34,10 +35,10 @@ namespace controllers\internals; * Cette fonction retourne un smsstop par son numéro de tel * @param string $number : Le numéro du smsstop * @return array : Le smsstop - */ - public function get_by_number ($number) - { - //Recupération des smsstopes + */ + public function get_by_number($number) + { + //Recupération des smsstopes $modelSMSStop = new \models\SMSStop($this->bdd); return $modelSMSStop->get_by_number($number); } @@ -47,53 +48,51 @@ namespace controllers\internals; * Cette fonction permet de compter le nombre de smsstops * @return int : Le nombre d'entrées dans la table */ - public function count () + public function count() { $modelSMSStop = new \models\SMSStop($this->bdd); return $modelSMSStop->count(); } - /** - * Cette fonction va supprimer une liste de smsstops - * @param array $ids : Les id des smsstopes à supprimer - * @return int : Le nombre de smsstopes supprimées; - */ - public function delete ($id) + /** + * Cette fonction va supprimer une liste de smsstops + * @param array $ids : Les id des smsstopes à supprimer + * @return int : Le nombre de smsstopes supprimées; + */ + public function delete($id) { $modelSMSStop = new \models\SMSStop($this->bdd); return $modelSMSStop->delete_by_id($id); - } + } - /** + /** * Cette fonction insert une nouvelle smsstope * @param array $smsstop : Un tableau représentant la smsstope à insérer * @return mixed bool|int : false si echec, sinon l'id de la nouvelle smsstope insérée - */ - public function create ($smsstop) - { + */ + public function create($smsstop) + { $modelSMSStop = new \models\SMSStop($this->bdd); return $modelSMSStop->insert($smsstop); - } + } - /** + /** * Cette fonction met à jour une série de smsstopes * @return int : le nombre de ligne modifiées - */ - public function update ($smsstops) + */ + public function update($smsstops) { $modelSMSStop = new \models\SMSStop($this->bdd); $nb_update = 0; - foreach ($smsstops as $smsstop) - { + foreach ($smsstops as $smsstop) { $result = $modelSMSStop->update($smsstop['id'], $smsstop); - if ($result) - { + if ($result) { $nb_update ++; } } return $nb_update; } - } + } diff --git a/controllers/internals/Scheduled.php b/controllers/internals/Scheduled.php index b26ac0c..83d6a4c 100755 --- a/controllers/internals/Scheduled.php +++ b/controllers/internals/Scheduled.php @@ -1,32 +1,33 @@ bdd); return $modelScheduled->get_list($nb_entry, $nb_entry * $page); - } + } - /** + /** * Cette fonction retourne une liste des scheduledes sous forme d'un tableau * @param array int $ids : Les ids des entrées à retourner * @return array : La liste des scheduledes - */ - public function get_by_ids ($ids) - { - //Recupération des scheduledes + */ + public function get_by_ids($ids) + { + //Recupération des scheduledes $modelScheduled = new \models\Scheduled($this->bdd); return $modelScheduled->get_by_ids($ids); } @@ -37,7 +38,7 @@ namespace controllers\internals; * @param string $number : Le numéro * @return array : Les messages programmés avant la date */ - public function get_before_date_for_number ($date, $number) + public function get_before_date_for_number($date, $number) { $modelScheduled = new \models\Scheduled($this->bdd); return $modelScheduled->get_before_date_for_number($date, $number); @@ -47,94 +48,86 @@ namespace controllers\internals; * Cette fonction permet de compter le nombre de scheduled * @return int : Le nombre d'entrées dans la table */ - public function count () + public function count() { $modelScheduled = new \models\Scheduled($this->bdd); return $modelScheduled->count(); } - /** - * Cette fonction va supprimer un scheduled - * @param int $id : L'id du scheduled à supprimer - * @return int : Le nombre de scheduledes supprimées; - */ - public function delete ($id) + /** + * Cette fonction va supprimer un scheduled + * @param int $id : L'id du scheduled à supprimer + * @return int : Le nombre de scheduledes supprimées; + */ + public function delete($id) { $modelScheduled = new \models\Scheduled($this->bdd); return $modelScheduled->delete_by_id($id); - } + } - /** + /** * Cette fonction insert un nouveau scheduled * @param array $scheduled : Le scheduled à créer avec at, content, flash, progress * @param array $numbers : Les numéros auxquels envoyer le scheduled * @param array $contacts_ids : Les ids des contact auquels envoyer le scheduled * @param array $groupes_ids : Les ids des groupe auxquels envoyer le scheduled * @return mixed bool|int : false si echec, sinon l'id du nouveau scheduled inséré - */ - public function create ($scheduled, $numbers = [], $contacts_ids = [], $groupes_ids = []) - { + */ + public function create($scheduled, $numbers = [], $contacts_ids = [], $groupes_ids = []) + { $modelScheduled = new \models\Scheduled($this->bdd); - if (!$id_scheduled = $modelScheduled->insert($scheduled)) - { + if (!$id_scheduled = $modelScheduled->insert($scheduled)) { $internalEvent = new \controllers\internals\Event($this->bdd); $internalEvent->create('SCHEDULED_ADD', 'Ajout d\'un SMS pour le ' . $date . '.'); return false; } - foreach ($numbers as $number) - { + foreach ($numbers as $number) { $modelScheduled->insert_scheduled_number($id_scheduled, $number); } - foreach ($contacts_ids as $contact_id) - { + foreach ($contacts_ids as $contact_id) { $modelScheduled->insert_scheduled_contact($id_scheduled, $contact_id); } - foreach ($groupes_ids as $groupe_id) - { + foreach ($groupes_ids as $groupe_id) { $modelScheduled->insert_scheduled_groupe($id_scheduled, $groupe_id); } return $id_scheduled; - } + } - /** + /** * Cette fonction met à jour une série de scheduledes * @param array $scheduleds : Un tableau de scheduled à modifier avec at, content, flash, progress + pour chaque scheduled number, contact_ids, groupe_ids * @param array $numbers : Les numéros auxquels envoyer le scheduled * @param array $contacts_ids : Les ids des contact auquels envoyer le scheduled * @param array $groupes_ids : Les ids des groupe auxquels envoyer le scheduled * @return int : le nombre de ligne modifiées - */ - public function update ($scheduleds) + */ + public function update($scheduleds) { $modelScheduled = new \models\Scheduled($this->bdd); $nb_update = 0; - foreach ($scheduleds as $scheduled) - { + foreach ($scheduleds as $scheduled) { $result = $modelScheduled->update($scheduled['scheduled']['id'], $scheduled['scheduled']); $modelScheduled->delete_scheduled_number($scheduled['scheduled']['id']); $modelScheduled->delete_scheduled_contact($scheduled['scheduled']['id']); $modelScheduled->delete_scheduled_groupe($scheduled['scheduled']['id']); - foreach ($scheduled['number'] as $number) - { + foreach ($scheduled['number'] as $number) { $modelScheduled->insert_scheduled_number($scheduled['scheduled']['id'], $number); } - foreach ($scheduled['contact_ids'] as $contact_id) - { + foreach ($scheduled['contact_ids'] as $contact_id) { $modelScheduled->insert_scheduled_contact($scheduled['scheduled']['id'], $contact_id); } - foreach ($scheduled['groupe_ids'] as $groupe_id) - { + foreach ($scheduled['groupe_ids'] as $groupe_id) { $modelScheduled->insert_scheduled_groupe($scheduled['scheduled']['id'], $groupe_id); } @@ -149,35 +142,35 @@ namespace controllers\internals; * Cette fonction retourne une liste de numéro pour un scheduled * @param int $id_scheduled : L'id du scheduled pour lequel on veux le numéro * @return array : La liste des scheduledes - */ - public function get_number ($id_scheduled) - { - //Recupération des scheduledes + */ + public function get_number($id_scheduled) + { + //Recupération des scheduledes $modelScheduled = new \models\Scheduled($this->bdd); return $modelScheduled->get_number($id_scheduled); - } + } /** * Cette fonction retourne une liste de contact pour un scheduled * @param int $id_scheduled : L'id du scheduled pour lequel on veux le numéro * @return array : La liste des contact - */ - public function get_contact ($id_scheduled) - { - //Recupération des scheduledes + */ + public function get_contact($id_scheduled) + { + //Recupération des scheduledes $modelScheduled = new \models\Scheduled($this->bdd); return $modelScheduled->get_contact($id_scheduled); - } + } /** * Cette fonction retourne une liste de groupe pour un scheduled * @param int $id_scheduled : L'id du scheduled pour lequel on veux le numéro * @return array : La liste des groupe - */ - public function get_groupe ($id_scheduled) - { - //Recupération des scheduledes + */ + public function get_groupe($id_scheduled) + { + //Recupération des scheduledes $modelScheduled = new \models\Scheduled($this->bdd); return $modelScheduled->get_groupe($id_scheduled); - } - } + } + } diff --git a/controllers/internals/Sended.php b/controllers/internals/Sended.php index dbcb07a..cd252a4 100755 --- a/controllers/internals/Sended.php +++ b/controllers/internals/Sended.php @@ -1,32 +1,33 @@ bdd); return $modelSended->get_list($nb_entry, $nb_entry * $page); - } + } - /** + /** * Cette fonction retourne une liste des sendedes sous forme d'un tableau * @param array int $ids : Les ids des entrées à retourner * @return array : La liste des sendedes - */ - public function get_by_ids ($ids) - { - //Recupération des sendedes + */ + public function get_by_ids($ids) + { + //Recupération des sendedes $modelSended = new \models\Sended($this->bdd); return $modelSended->get_by_ids($ids); } @@ -36,7 +37,7 @@ namespace controllers\internals; * @param mixed false|int $nb_entry : Nombre d'entrée à retourner ou faux pour tout * @return array : Les dernières entrées */ - public function get_lasts_by_date ($nb_entry = false) + public function get_lasts_by_date($nb_entry = false) { $modelSended = new \models\Sended($this->bdd); return $modelSended->get_lasts_by_date($nb_entry); @@ -46,52 +47,50 @@ namespace controllers\internals; * Cette fonction retourne une liste des receivedes sous forme d'un tableau * @param string $target : Le numéro de à qui est envoyé le message * @return array : La liste des sendeds - */ - public function get_by_target ($target) - { - //Recupération des sendeds + */ + public function get_by_target($target) + { + //Recupération des sendeds $modelSended = new \models\Sended($this->bdd); return $modelSended->get_by_target($target); } - /** - * Cette fonction va supprimer une liste de sendeds - * @param array $ids : Les id des sendedes à supprimer - * @return int : Le nombre de sendedes supprimées; - */ - public function delete ($id) + /** + * Cette fonction va supprimer une liste de sendeds + * @param array $ids : Les id des sendedes à supprimer + * @return int : Le nombre de sendedes supprimées; + */ + public function delete($id) { $modelSended = new \models\Sended($this->bdd); return $modelSended->delete_by_id($id); - } + } - /** + /** * Cette fonction insert une nouvelle sendede * @param array $sended : Un tableau représentant la sendede à insérer * @return mixed bool|int : false si echec, sinon l'id de la nouvelle sendede insérée - */ - public function create ($sended) - { + */ + public function create($sended) + { $modelSended = new \models\Sended($this->bdd); return $modelSended->create($sended); - } + } - /** + /** * Cette fonction met à jour une série de sendedes * @return int : le nombre de ligne modifiées - */ - public function update ($sendeds) + */ + public function update($sendeds) { $modelSended = new \models\Sended($this->bdd); $nb_update = 0; - foreach ($sendeds as $sended) - { + foreach ($sendeds as $sended) { $result = $modelSended->update($sended['id'], $sended); - if ($result) - { + if ($result) { $nb_update ++; } } @@ -103,7 +102,7 @@ namespace controllers\internals; * Cette fonction permet de compter le nombre de sendeds * @return int : Le nombre d'entrées dans la table */ - public function count () + public function count() { $modelSended = new \models\Sended($this->bdd); return $modelSended->count(); @@ -113,18 +112,17 @@ namespace controllers\internals; * Cette fonction compte le nombre de sendeds par jour depuis une date * @return array : un tableau avec en clef la date et en valeure le nombre de sms envoyés */ - public function count_by_day_since ($date) + public function count_by_day_since($date) { $modelSended = new \models\Sended($this->bdd); $counts_by_day = $modelSended->count_by_day_since($date); $return = []; - foreach ($counts_by_day as $count_by_day) - { + foreach ($counts_by_day as $count_by_day) { $return[$count_by_day['at_ymd']] = $count_by_day['nb']; } return $return; } - } + } diff --git a/controllers/internals/Setting.php b/controllers/internals/Setting.php index f1f1dbc..cd059a4 100755 --- a/controllers/internals/Setting.php +++ b/controllers/internals/Setting.php @@ -1,29 +1,29 @@ model_setting = new \models\Setting($bdd); } - /** + /** * Return all settings * @return array || false - */ - public function all () - { + */ + public function all() + { return $this->model_setting->all(); - } + } - /** + /** * Update a setting by his name - */ - public function update (string $name, $value) : boolean + */ + public function update(string $name, $value) : boolean { return (bool) $this->model_setting->update($name, $value); } - } + } diff --git a/controllers/internals/Tool.php b/controllers/internals/Tool.php index bc2de6d..bcb391c 100755 --- a/controllers/internals/Tool.php +++ b/controllers/internals/Tool.php @@ -1,134 +1,129 @@ format($format) == $date); - } + return $logo; + } - /** - * Cette fonction parse un texte, pour en extraire des données contenu dans des drapeaux au format [FLAG:contenu du drapeau] - * @param string $texte : Le texte à parser - * @return mixed : Tableau de la forme 'FLAG' => 'contenu du drapeau'. si on trouve une forme correcte (Le contenu de FLAG sera mis en majuscule automatiquement). Sinon le tableau vide. - */ - public static function parse_for_flag($texte) - { - $returns = array(); - $results = array(); - while(preg_match('#\[(.*)(?format($format) == $date); + } - /** - * Cette fonction retourne un mot de passe généré aléatoirement - * @param int $length : Taille du mot de passe à générer - * @return string : Le mot de passe aléatoire - */ - public static function generate_password($length) - { - $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-@()?.:!%*$&/'; - $password = ''; - $chars_length = mb_strlen($chars) - 1; - $i = 0; - while ($i < $length) - { - $i ++; - $password .= $chars[rand(0, $chars_length)]; - } - return $password; - } + /** + * Cette fonction parse un texte, pour en extraire des données contenu dans des drapeaux au format [FLAG:contenu du drapeau] + * @param string $texte : Le texte à parser + * @return mixed : Tableau de la forme 'FLAG' => 'contenu du drapeau'. si on trouve une forme correcte (Le contenu de FLAG sera mis en majuscule automatiquement). Sinon le tableau vide. + */ + public static function parse_for_flag($texte) + { + $returns = array(); + $results = array(); + while (preg_match('#\[(.*)(?render($settings['template'], $datas, true); - return true;#mail($to, $settings['subject'], $content); + return true;#mail($to, $settings['subject'], $content); } - } + } diff --git a/controllers/internals/User.php b/controllers/internals/User.php index c07e2d4..fddff42 100755 --- a/controllers/internals/User.php +++ b/controllers/internals/User.php @@ -1,67 +1,65 @@ model_user = new \models\User($bdd); $this->internal_event = new \controllers\internals\Event($bdd); } - /** + /** * Return list of users as an array * @param mixed(int|bool) $nb_entry : Number of entry to return * @param mixed(int|bool) $page : Numero of page * @return array|bool : List of user or false - */ - public function list (?int $nb_entry = null, ?int $page = null) + */ + public function list(?int $nb_entry = null, ?int $page = null) { return $this->model_user->list($nb_entry, $page); } /** - * Cette fonction va supprimer une liste de users - * @param array $ids : Les id des useres à supprimer - * @return int : Le nombre de useres supprimées; - */ - public function delete ($id) + * Cette fonction va supprimer une liste de users + * @param array $ids : Les id des useres à supprimer + * @return int : Le nombre de useres supprimées; + */ + public function delete($id) { return $this->model_user->remove($id); - } + } - /** + /** * Cette fonction vérifie s'il existe un utilisateur qui corresponde à ce couple login/password * @param string $email : L'eamil de l'utilisateur * @param string $password : Le mot de passe de l'utilisateur * @return mixed false | array : False si pas de user, le user correspondant sous forme d'array sinon - */ - public function check_credentials ($email, $password) + */ + public function check_credentials($email, $password) { $user = $this->model_user->get_by_email($email); - if (!$user) - { + if (!$user) { return false; } - if (!password_verify($password, $user['password'])) - { + if (!password_verify($password, $user['password'])) { return false; } return $user; - } + } - /** + /** * Update a user password * @param string $id : User id * @param string $password : New password - * @return boolean; - */ - public function update_password (int $id, string $password) : boolean - { + * @return boolean; + */ + public function update_password(int $id, string $password) : boolean + { $password = password_hash($password, PASSWORD_DEFAULT); return (bool) $this->model_user->update_password($id, $password); } @@ -70,10 +68,10 @@ * Update a user transfer property value * @param string $id : User id * @param string $transfer : New value of property transfer - * @return boolean; - */ - public function update_transfer (int $id, int $transfer) : boolean - { + * @return boolean; + */ + public function update_transfer(int $id, int $transfer) : boolean + { return (bool) $this->model_user->update_transfer($id, $transfer); } @@ -81,10 +79,10 @@ * Update user email * @param string $id : user id * @param string $email : new mail - * @return boolean; - */ - public function update_email ($id, $email) - { + * @return boolean; + */ + public function update_email($id, $email) + { return (bool) $this->model_user->update_email($id, $email); } @@ -93,16 +91,16 @@ * @param string $email : L'email de l'utilisateur * @return mixed boolean | array : false si pas de user pour le mail, le user sinon */ - public function get_by_email ($email) + public function get_by_email($email) { return $model_user->get_by_email($email); } - /** + /** * Cette fonction met à jour une série de users * @return int : le nombre de ligne modifiées - */ - public function update ($id, $email, $password, $admin, $transfer) + */ + public function update($id, $email, $password, $admin, $transfer) { $user = [ 'email' => $email, @@ -111,15 +109,15 @@ 'transfer' => $transfer, ]; - return $model_user->update($id, $user); + return $model_user->update($id, $user); } /** * Cette fonction insert une nouvelle usere * @param array $user : Un tableau représentant la usere à insérer * @return mixed bool|int : false si echec, sinon l'id de la nouvelle usere insérée - */ - public function create ($email, $password, $admin, $transfer = false) + */ + public function create($email, $password, $admin, $transfer = false) { $user = [ 'email' => $email, @@ -130,13 +128,12 @@ $result = $model_user->insert($user); - if (!$result) - { + if (!$result) { return false; } $internal_event->create('CONTACT_ADD', 'Ajout de l\'utilisateur : ' . $email . '.'); return $result; - } - } + } + } diff --git a/controllers/internals/toto.php b/controllers/internals/toto.php index 48d1a82..6d067c8 100755 --- a/controllers/internals/toto.php +++ b/controllers/internals/toto.php @@ -3,7 +3,7 @@ namespace controllers\internals; /** * Classe des commandes */ - class Command extends \InternalController + class Command extends \descartes\InternalController { public function populate_database ($nb_entry = false, $page = false) @@ -19,7 +19,7 @@ namespace controllers\internals; $contact = [ 'name' => 'Contact N°' . $i, 'number' => '06' . rand(10,99) . rand(10,99) . rand(10,99) . rand(10,99), - ] + ]; if (!$id_contact = $internalContact->create($contact)) { diff --git a/controllers/publics/Account.php b/controllers/publics/Account.php index 3efc7e1..8b5300d 100755 --- a/controllers/publics/Account.php +++ b/controllers/publics/Account.php @@ -1,11 +1,11 @@ internal_user = new \controllers\internals\User($bdd); @@ -13,46 +13,43 @@ \controllers\internals\Tool::verify_connect(); } - /** + /** * Show profile page - */ - public function show () + */ + public function show() { $this->render('account/show'); - } + } - /** + /** * Update connected user password * @param $csrf : Le jeton CSRF * @param string $_POST['password'] : The new password * @return void; */ - public function update_password ($csrf) + public function update_password($csrf) { - $password = $_POST['password'] ?? false; + $password = $_POST['password'] ?? false; - if (!$this->verifyCSRF($csrf)) - { + if (!$this->verifyCSRF($csrf)) { \DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !'); - return header('Location: ' . \Router::url('Account', 'show')); + return header('Location: ' . \descartes\Router::url('Account', 'show')); } - if (!$password) - { + if (!$password) { \DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Vous devez renseigner un mot de passe.'); - return header('Location: ' . \Router::url('Account', 'show')); + return header('Location: ' . \descartes\Router::url('Account', 'show')); } $update_password_result = $this->internal_user->update_password($_SESSION['user']['id'], $password); - if (!$update_password_result) - { + if (!$update_password_result) { \DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Impossible de mettre à jour le mot de passe.'); - return header('Location: ' . \Router::url('Account', 'show')); + return header('Location: ' . \descartes\Router::url('Account', 'show')); } \DescartesSessionMessages\internals\DescartesSessionMessages::push('success', 'Le mot de passe a bien été mis à jour.'); - return header('Location: ' . \Router::url('Account', 'show')); + return header('Location: ' . \descartes\Router::url('Account', 'show')); } /** @@ -60,33 +57,30 @@ * @param $csrf : CSRF token * @param string $_POST['transfer'] : New transfer property value */ - public function update_transfer ($csrf) + public function update_transfer($csrf) { $transfer = $_POST['transfer'] ?? false; - if (!$this->verifyCSRF($csrf)) - { + if (!$this->verifyCSRF($csrf)) { \DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !'); - return header('Location: ' . \Router::url('Account', 'show')); + return header('Location: ' . \descartes\Router::url('Account', 'show')); } - if ($transfer === false) - { + if ($transfer === false) { \DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Vous devez choisir une option parmis celles de la liste déroulante.'); - return header('Location: ' . \Router::url('Account', 'show')); + return header('Location: ' . \descartes\Router::url('Account', 'show')); } $transfer_update_result = $this->internal_user->update_transfer($_SESSION['user']['id'], $transfer); - if (!$transfer_update_result) - { + if (!$transfer_update_result) { \DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Impossible de mettre à jour.'); - return header('Location: ' . \Router::url('Account', 'show')); + return header('Location: ' . \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: ' . \Router::url('Account', 'show')); + return header('Location: ' . \descartes\Router::url('Account', 'show')); } /** @@ -95,67 +89,60 @@ * @param string $_POST['email'] : User new email * @param string $_POST['verif_email'] : Verif email */ - public function update_email ($csrf) + public function update_email($csrf) { - if (!$this->verifyCSRF($csrf)) - { + if (!$this->verifyCSRF($csrf)) { \DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !'); - return header('Location: ' . \Router::url('Account', 'show')); + return header('Location: ' . \descartes\Router::url('Account', 'show')); } $email = $_POST['email'] ?? false; - if (!$email) - { + if (!$email) { \DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Vous devez fournir une adresse e-mail !'); - return header('Location: ' . \Router::url('Account', 'show')); + return header('Location: ' . \descartes\Router::url('Account', 'show')); } - if (!filter_var($email, FILTER_VALIDATE_EMAIL)) - { + 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: ' . \Router::url('Account', 'show')); + return header('Location: ' . \descartes\Router::url('Account', 'show')); } $update_email_result = $this->internal_user->update_email($_SESSION['user']['id'], $email); - if (!$update_email_result) - { + if (!$update_email_result) { \DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Impossible de mettre à jour.'); - return header('Location: ' . \Router::url('Account', 'show')); + return header('Location: ' . \descartes\Router::url('Account', 'show')); } $_SESSION['user']['email'] = $email; \DescartesSessionMessages\internals\DescartesSessionMessages::push('success', 'L\'email a bien été mis à jour.'); - return header('Location: ' . \Router::url('Account', 'show')); + return header('Location: ' . \descartes\Router::url('Account', 'show')); } - /** + /** * Delete a user * @param string $_POST['delete_account'] : Boolean to see if we want to delete * @return boolean; */ - public function delete ($csrf) + public function delete($csrf) { - if (!$this->verifyCSRF($csrf)) - { + if (!$this->verifyCSRF($csrf)) { \DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !'); - return header('Location: ' . \Router::url('Account', 'show')); + return header('Location: ' . \descartes\Router::url('Account', 'show')); } $delete_account = $_POST['delete_account'] ?? false; - if (!$delete_account) - { + if (!$delete_account) { \DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Pour supprimer le compte, vous devez cocher la case correspondante.'); - return header('Location: ' . \Router::url('Account', 'show')); + return header('Location: ' . \descartes\Router::url('Account', 'show')); } $delete_account_result = $this->internal_user->delete($_SESSION['user']['id']); - if (!$delete_account_result) - { + if (!$delete_account_result) { \DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Impossible de supprimer le compte.'); - return header('Location: ' . \Router::url('Account', 'show')); + return header('Location: ' . \descartes\Router::url('Account', 'show')); } return $this->logout(); @@ -169,6 +156,6 @@ { session_unset(); session_destroy(); - return header('Location: ' . \Router::url('Connect', 'login')); + return header('Location: ' . \descartes\Router::url('Connect', 'login')); } - } + } diff --git a/controllers/publics/Command.php b/controllers/publics/Command.php index 5c9f184..8f122ca 100755 --- a/controllers/publics/Command.php +++ b/controllers/publics/Command.php @@ -1,14 +1,15 @@ internal_command->list(25, $page); $this->render('command/list', ['commands' => $commands]); - } + } - /** - * Cette fonction va supprimer une liste de commands - * @param array int $_GET['ids'] : Les id des commandes à supprimer - * @return boolean; - */ - public function delete($csrf) - { - if (!$this->verifyCSRF($csrf)) - { + /** + * Cette fonction va supprimer une liste de commands + * @param array int $_GET['ids'] : Les id des commandes à supprimer + * @return boolean; + */ + public function delete($csrf) + { + if (!$this->verifyCSRF($csrf)) { \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !'); - header('Location: ' . \Router::url('Command', 'list')); - return false; - } + header('Location: ' . \descartes\Router::url('Command', 'list')); + return false; + } $ids = $_GET['ids'] ?? []; - foreach ($ids as $id) - { + foreach ($ids as $id) { $this->internalCommand->delete($id); } - header('Location: ' . \Router::url('Command', 'list')); - return true; - } + header('Location: ' . \descartes\Router::url('Command', 'list')); + return true; + } - /** - * Cette fonction retourne la page d'ajout d'une commande - */ - public function add() - { - $this->render('command/add'); - } + /** + * Cette fonction retourne la page d'ajout d'une commande + */ + public function add() + { + $this->render('command/add'); + } - /** - * Cette fonction retourne la page d'édition des commandes - * @param array int $_GET['ids'] : Les id des commandes à editer - */ - public function edit() - { - global $db; + /** + * Cette fonction retourne la page d'édition des commandes + * @param array int $_GET['ids'] : Les id des commandes à editer + */ + public function edit() + { + global $db; $ids = $_GET['ids'] ?? []; $commands = $this->internalCommand->get_by_ids($ids); - $this->render('command/edit', array( - 'commands' => $commands, - )); - } + $this->render('command/edit', array( + 'commands' => $commands, + )); + } - /** - * Cette fonction insert une nouvelle commande - * @param $csrf : Le jeton CSRF - * @param string $_POST['name'] : Le nom de la commande - * @param string $_POST['script'] : Le script a appeler - * @param boolean $_POST['admin'] : Si la commande necessite les droits d'admin (par défaut non) - * @return boolean; - */ - public function create($csrf) - { - if (!$this->verifyCSRF($csrf)) - { + /** + * Cette fonction insert une nouvelle commande + * @param $csrf : Le jeton CSRF + * @param string $_POST['name'] : Le nom de la commande + * @param string $_POST['script'] : Le script a appeler + * @param boolean $_POST['admin'] : Si la commande necessite les droits d'admin (par défaut non) + * @return boolean; + */ + public function create($csrf) + { + if (!$this->verifyCSRF($csrf)) { \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !'); - header('Location: ' . \Router::url('Command', 'list')); - return false; - } + header('Location: ' . \descartes\Router::url('Command', 'list')); + return false; + } - $name = $_POST['name'] ?? false; - $script = $_POST['script'] ?? false; - $admin = (isset($_POST['admin']) ? $_POST['admin'] : false); + $name = $_POST['name'] ?? false; + $script = $_POST['script'] ?? false; + $admin = (isset($_POST['admin']) ? $_POST['admin'] : false); - if (!$name || !$script) - { + if (!$name || !$script) { \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Renseignez au moins un nom et un script.'); - return header('Location: ' . \Router::url('Command', 'list')); + return header('Location: ' . \descartes\Router::url('Command', 'list')); } - if (!$this->internalCommand->create($name, $script, $admin)) - { + if (!$this->internalCommand->create($name, $script, $admin)) { \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Impossible créer cette commande.'); - return header('Location: ' . \Router::url('commands', 'add')); + return header('Location: ' . \descartes\Router::url('commands', 'add')); } - + \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('success', 'La commande a bien été crée.'); - return header('Location: ' . \Router::url('Command', 'list')); - } + return header('Location: ' . \descartes\Router::url('Command', 'list')); + } - /** - * Cette fonction met à jour une commande - * @param $csrf : Le jeton CSRF - * @param array $_POST['commands'] : Un tableau des commandes avec leur nouvelle valeurs - * @return boolean; - */ - public function update($csrf) - { - if (!$this->verifyCSRF($csrf)) - { + /** + * Cette fonction met à jour une commande + * @param $csrf : Le jeton CSRF + * @param array $_POST['commands'] : Un tableau des commandes avec leur nouvelle valeurs + * @return boolean; + */ + public function update($csrf) + { + if (!$this->verifyCSRF($csrf)) { \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !'); - header('Location: ' . \Router::url('Command', 'list')); - return false; + header('Location: ' . \descartes\Router::url('Command', 'list')); + return false; } $nb_commands_update = 0; - foreach ($_POST['commands'] as $command) - { + foreach ($_POST['commands'] as $command) { $update_command = $this->internalCommand->update($command['id'], $command['name'], $command['script'], $command['admin']); $nb_commands_update += (int) $update_command; } - if ($nb_commands_update != count($_POST['commands'])) - { + if ($nb_commands_update != count($_POST['commands'])) { \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Certaines commandes n\'ont pas pu êtres mises à jour.'); - header('Location: ' . \Router::url('Command', 'list')); - return false; + header('Location: ' . \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: ' . \Router::url('Command', 'list')); + header('Location: ' . \descartes\Router::url('Command', 'list')); return true; - } - } + } + } diff --git a/controllers/publics/Connect.php b/controllers/publics/Connect.php index 3115f36..018df9a 100755 --- a/controllers/publics/Connect.php +++ b/controllers/publics/Connect.php @@ -2,15 +2,15 @@ namespace controllers\publics; /** - * Page de connexion - */ - class Connect extends \Controller - { - /** - * Cette fonction est appelée avant toute les autres : - * @return void; - */ - public function _before() + * Page de connexion + */ + class Connect extends \descartes\Controller + { + /** + * Cette fonction est appelée avant toute les autres : + * @return void; + */ + public function _before() { global $bdd; global $model; @@ -20,47 +20,46 @@ $this->internal_user = new \controllers\internals\User($this->bdd); } - /** - * Cette fonction retourne la fenetre de connexion - */ - public function login () - { - $this->render('connect/login'); - } + /** + * Cette fonction retourne la fenetre de connexion + */ + public function login() + { + $this->render('connect/login'); + } /** - * Cette fonction connecte un utilisateur, et le redirige sur la page d'accueil - * @param string $_POST['mail'] : L'email de l'utilisateur - * @param string $_POST['password'] : Le mot de passe de l'utilisateur - * @return void - */ - public function connection() - { - $email = $_POST['mail'] ?? false; + * Cette fonction connecte un utilisateur, et le redirige sur la page d'accueil + * @param string $_POST['mail'] : L'email de l'utilisateur + * @param string $_POST['password'] : Le mot de passe de l'utilisateur + * @return void + */ + public function connection() + { + $email = $_POST['mail'] ?? false; $password = $_POST['password'] ?? false; $user = $this->internal_user->check_credentials($email, $password); - if (!$user) - { + if (!$user) { \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Email ou mot de passe invalide.'); - return header('Location: ' . \Router::url('Connect', 'login')); - } + return header('Location: ' . \descartes\Router::url('Connect', 'login')); + } $_SESSION['connect'] = true; $_SESSION['user'] = $user; - $_SESSION['csrf'] = str_shuffle(uniqid().uniqid()); + $_SESSION['csrf'] = str_shuffle(uniqid().uniqid()); - return header('Location: ' . \Router::url('Dashboard', 'show')); - } + return header('Location: ' . \descartes\Router::url('Dashboard', 'show')); + } - /** - * Cette fonction retourne la fenetre de changement de password - * @return void; - */ - public function forget_password() - { - $this->render('connect/forget-password'); + /** + * Cette fonction retourne la fenetre de changement de password + * @return void; + */ + public function forget_password() + { + $this->render('connect/forget-password'); } /** @@ -68,29 +67,27 @@ * @param string $csrf : jeton csrf * @param string $_POST['email'] : L'email pour lequel on veut envoyer un nouveau password */ - public function send_reset_password ($csrf) + public function send_reset_password($csrf) { - if (!$this->verifyCSRF($csrf)) - { + if (!$this->verifyCSRF($csrf)) { \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !'); - header('Location: ' . \Router::url('Connect', 'forget_password')); + header('Location: ' . \descartes\Router::url('Connect', 'forget_password')); return false; } $email = $_POST['email'] ?? false; $user = $this->internal_user->get_by_email($email); - if (!$email || !$user) - { + if (!$email || !$user) { \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Aucun utilisateur n\'existe pour cette adresse mail.'); - header('Location: ' . \Router::url('Connect', 'forget_password')); + header('Location: ' . \descartes\Router::url('Connect', 'forget_password')); return false; } $Tokenista = new \Ingenerator\Tokenista(APP_SECRET); $token = $Tokenista->generate(3600, ['user_id' => $user['id']]); - $reset_link = \Router::url('Connect', 'reset_password', ['user_id' => $user['id'], 'token' => $token]); + $reset_link = \descartes\Router::url('Connect', 'reset_password', ['user_id' => $user['id'], 'token' => $token]); \controllers\internals\Tool::send_email($email, EMAIL_RESET_PASSWORD, ['reset_link' => $reset_link]); @@ -103,34 +100,32 @@ * @param string $token : Le token permetttant de vérifier que l'opération est légitime * @param optionnal $_POST['password'] : Le nouveau password à utiliser */ - public function reset_password ($user_id, $token) + public function reset_password($user_id, $token) { $password = $_POST['password'] ?? false; $Tokenista = new \Ingenerator\Tokenista(APP_SECRET); - if (!$Tokenista->isValid($token, ['user_id' => $user_id])) - { + if (!$Tokenista->isValid($token, ['user_id' => $user_id])) { return $this->render('connect/reset-password-invalid'); } - if (!$password) - { + if (!$password) { return $this->render('connect/reset-password'); } $this->internal_user->update_password($user_id, $password); return $this->render('connect/reset-password-done'); } - - /** - * Cette fonction déconnecte un utilisateur et le renvoie sur la page d'accueil - * @return void - */ - public function logout() - { - session_unset(); - session_destroy(); - header('Location: ' . \Router::url('Connect', 'login')); - } - } + + /** + * Cette fonction déconnecte un utilisateur et le renvoie sur la page d'accueil + * @return void + */ + public function logout() + { + session_unset(); + session_destroy(); + header('Location: ' . \descartes\Router::url('Connect', 'login')); + } + } diff --git a/controllers/publics/Contact.php b/controllers/publics/Contact.php index 197badc..0518d35 100755 --- a/controllers/publics/Contact.php +++ b/controllers/publics/Contact.php @@ -1,16 +1,17 @@ bdd = $bdd; @@ -18,55 +19,53 @@ namespace controllers\publics; $this->internalContact = new \controllers\internals\Contact($this->bdd); $this->internalEvent = new \controllers\internals\Event($this->bdd); - \controllers\internals\Tool::verify_connect(); + \controllers\internals\Tool::verify_connect(); } - /** - * Cette fonction retourne tous les contacts, sous forme d'un tableau permettant l'administration de ces contacts - */ - public function list ($page = 0) + /** + * Cette fonction retourne tous les contacts, sous forme d'un tableau permettant l'administration de ces contacts + */ + public function list($page = 0) { $page = (int) $page; $contacts = $this->internalContact->get_list(25, $page); $this->render('contact/list', ['contacts' => $contacts]); - } - - /** + } + + /** * Cette fonction va supprimer une liste de contacts * @param array int $_GET['ids'] : Les id des contactes à supprimer * @return boolean; */ - public function delete ($csrf) + public function delete($csrf) { - if (!$this->verifyCSRF($csrf)) - { + if (!$this->verifyCSRF($csrf)) { \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !'); - return header('Location: ' . \Router::url('Contact', 'list')); + return header('Location: ' . \descartes\Router::url('Contact', 'list')); } $ids = $_GET['ids'] ?? []; - foreach ($ids as $id) - { + foreach ($ids as $id) { $this->internalContact->delete($id); } - header('Location: ' . \Router::url('Contact', 'list')); + header('Location: ' . \descartes\Router::url('Contact', 'list')); return true; } - /** - * Cette fonction retourne la page d'ajout d'un contact - */ - public function add() - { - $this->render('contact/add'); - } + /** + * Cette fonction retourne la page d'ajout d'un contact + */ + public function add() + { + $this->render('contact/add'); + } - /** - * Cette fonction retourne la page d'édition des contacts - * @param int... $ids : Les id des contactes à supprimer - */ - public function edit() + /** + * Cette fonction retourne la page d'édition des contacts + * @param int... $ids : Les id des contactes à supprimer + */ + public function edit() { global $db; $ids = $_GET['ids'] ?? []; @@ -78,47 +77,43 @@ namespace controllers\publics; )); } - /** - * Cette fonction insert un nouveau contact - * @param $csrf : Le jeton CSRF - * @param string $_POST['name'] : Le nom du contact - * @param string $_POST['phone'] : Le numero de téléphone du contact - */ - public function create($csrf) - { - if (!$this->verifyCSRF($csrf)) - { + /** + * Cette fonction insert un nouveau contact + * @param $csrf : Le jeton CSRF + * @param string $_POST['name'] : Le nom du contact + * @param string $_POST['phone'] : Le numero de téléphone du contact + */ + public function create($csrf) + { + if (!$this->verifyCSRF($csrf)) { \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !'); - return header('Location: ' . \Router::url('Contact', 'add')); + return header('Location: ' . \descartes\Router::url('Contact', 'add')); } - - $name = $_POST['name'] ?? false; - $number = $_POST['number'] ?? false; + + $name = $_POST['name'] ?? false; + $number = $_POST['number'] ?? false; - if (!$name || !$number) - { + if (!$name || !$number) { \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Des champs sont manquants !'); - return header('Location: ' . \Router::url('Contact', 'add')); - } + return header('Location: ' . \descartes\Router::url('Contact', 'add')); + } $number = \controllers\internals\Tool::parse_phone($number); - if (!$number) - { + if (!$number) { \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Numéro de téléphone incorrect.'); - return header('Location: ' . \Router::url('Contact', 'add')); - } + return header('Location: ' . \descartes\Router::url('Contact', 'add')); + } - if (!$this->internalContact->create($number, $name)) - { + if (!$this->internalContact->create($number, $name)) { \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Impossible de créer ce contact.'); - return header('Location: ' . \Router::url('Contact', 'add')); - } + return header('Location: ' . \descartes\Router::url('Contact', 'add')); + } - \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('success', 'Le contact a bien été créé.'); - return header('Location: ' . \Router::url('Contact', 'list')); - } + \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('success', 'Le contact a bien été créé.'); + return header('Location: ' . \descartes\Router::url('Contact', 'list')); + } - /** + /** * Cette fonction met à jour une contacte * @param $csrf : Le jeton CSRF * @param array $_POST['contacts'] : Un tableau des contactes avec leur nouvelle valeurs @@ -126,35 +121,32 @@ namespace controllers\publics; */ public function update($csrf) { - if (!$this->verifyCSRF($csrf)) - { + if (!$this->verifyCSRF($csrf)) { \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !'); - return header('Location: ' . \Router::url('Contact', 'list')); + return header('Location: ' . \descartes\Router::url('Contact', 'list')); } $nb_contacts_update = 0; - foreach ($_POST['contacts'] as $contact) - { + foreach ($_POST['contacts'] as $contact) { $nb_contacts_update += $this->internalContact->update($contact['id'], $contact['number'], $contact['name']); } - if ($nb_contacts_update != count($_POST['contacts'])) - { + 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: ' . \Router::url('Contact', 'list')); + return header('Location: ' . \descartes\Router::url('Contact', 'list')); } \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('success', 'Tous les contacts ont été modifiés avec succès.'); - return header('Location: ' . \Router::url('Contact', 'list')); + return header('Location: ' . \descartes\Router::url('Contact', 'list')); } - /** - * Cette fonction retourne la liste des contacts sous forme JSON - */ - public function json_list() + /** + * Cette fonction retourne la liste des contacts sous forme JSON + */ + public function json_list() { header('Content-Type: application/json'); echo json_encode($this->internalContact->get_list()); - } - } + } + } diff --git a/controllers/publics/Dashboard.php b/controllers/publics/Dashboard.php index 6b71caf..49d6de2 100755 --- a/controllers/publics/Dashboard.php +++ b/controllers/publics/Dashboard.php @@ -1,16 +1,17 @@ bdd = $bdd; @@ -23,19 +24,19 @@ namespace controllers\publics; $this->internalCommand = new \controllers\internals\Command($this->bdd); $this->internalEvent = new \controllers\internals\Event($this->bdd); - \controllers\internals\Tool::verify_connect(); + \controllers\internals\Tool::verify_connect(); } - /** - * Cette fonction est un alias de show - * @return void; - */ - public function show () - { - //Creation de l'object de base de données - global $db; - - //Recupération des nombres des 4 panneaux d'accueil + /** + * Cette fonction est un alias de show + * @return void; + */ + public function show() + { + //Creation de l'object de base de données + 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(); @@ -43,78 +44,74 @@ namespace controllers\publics; $nb_sendeds = $this->internalSended->count(); $nb_receiveds = $this->internalReceived->count(); - //Création de la date d'il y a une semaine - $now = new \DateTime(); - $one_week = new \DateInterval('P7D'); - $date = $now->sub($one_week); - $formated_date = $date->format('Y-m-d'); + //Création de la date d'il y a une semaine + $now = new \DateTime(); + $one_week = new \DateInterval('P7D'); + $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. + //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 du nombre de SMS envoyés et reçus depuis les 7 derniers jours + //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); - //On va traduire ces données pour les afficher en graphique - $array_area_chart = array(); - - $today_less_7_day = new \DateTime(); - $today_less_7_day->sub(new \DateInterval('P7D')); - $increment_day = new \DateInterval('P1D'); - $i = 0; + //On va traduire ces données pour les afficher en graphique + $array_area_chart = array(); + + $today_less_7_day = new \DateTime(); + $today_less_7_day->sub(new \DateInterval('P7D')); + $increment_day = new \DateInterval('P1D'); + $i = 0; - //On va construire un tableau avec la date en clef, et les données pour chaque date - while ($i < 7) - { - $today_less_7_day->add($increment_day); - $i ++; - $date_f = $today_less_7_day->format('Y-m-d'); - $array_area_chart[$date_f] = array( - 'period' => $date_f, - 'sendeds' => 0, - 'receiveds' => 0, - ); - } + //On va construire un tableau avec la date en clef, et les données pour chaque date + while ($i < 7) { + $today_less_7_day->add($increment_day); + $i ++; + $date_f = $today_less_7_day->format('Y-m-d'); + $array_area_chart[$date_f] = array( + 'period' => $date_f, + 'sendeds' => 0, + 'receiveds' => 0, + ); + } - $total_sendeds = 0; - $total_receiveds = 0; + $total_sendeds = 0; + $total_receiveds = 0; - //0n remplie le tableau avec les données adaptées - foreach ($nb_sendeds_by_day as $date => $nb_sended) - { + //0n remplie le tableau avec les données adaptées + foreach ($nb_sendeds_by_day as $date => $nb_sended) { $array_area_chart[$date]['sendeds'] = $nb_sended; $total_sendeds += $nb_sended; } - foreach ($nb_receiveds_by_day as $date => $nb_received) - { + foreach ($nb_receiveds_by_day as $date => $nb_received) { $array_area_chart[$date]['receiveds'] = $nb_received; $total_receiveds += $nb_received; - } + } - $avg_sendeds = round($total_sendeds / 7, 2); - $avg_receiveds = round($total_receiveds / 7, 2); + $avg_sendeds = round($total_sendeds / 7, 2); + $avg_receiveds = round($total_receiveds / 7, 2); - $array_area_chart = array_values($array_area_chart); + $array_area_chart = array_values($array_area_chart); - $this->render('dashboard/show', array( - 'nb_contacts' => $nb_contacts, - 'nb_groupes' => $nb_groupes, - 'nb_scheduleds' => $nb_scheduleds, - 'nb_commands' => $nb_commands, - 'nb_sendeds' => $nb_sendeds, - 'nb_receiveds' => $nb_receiveds, - 'avg_sendeds' => $avg_sendeds, - 'avg_receiveds' => $avg_receiveds, - 'sendeds' => $sendeds, - 'receiveds' => $receiveds, - 'events' => $events, - 'datas_area_chart' => json_encode($array_area_chart), - )); - - } - } + $this->render('dashboard/show', array( + 'nb_contacts' => $nb_contacts, + 'nb_groupes' => $nb_groupes, + 'nb_scheduleds' => $nb_scheduleds, + 'nb_commands' => $nb_commands, + 'nb_sendeds' => $nb_sendeds, + 'nb_receiveds' => $nb_receiveds, + 'avg_sendeds' => $avg_sendeds, + 'avg_receiveds' => $avg_receiveds, + 'sendeds' => $sendeds, + 'receiveds' => $receiveds, + 'events' => $events, + 'datas_area_chart' => json_encode($array_area_chart), + )); + } + } diff --git a/controllers/publics/Discussion.php b/controllers/publics/Discussion.php index 5de1ed0..c2699e0 100755 --- a/controllers/publics/Discussion.php +++ b/controllers/publics/Discussion.php @@ -1,17 +1,18 @@ bdd = $bdd; @@ -22,218 +23,204 @@ namespace controllers\publics; $this->internalReceived = new \controllers\internals\Received($this->bdd); $this->internalContact = new \controllers\internals\Contact($this->bdd); - \controllers\internals\Tool::verify_connect(); - } + \controllers\internals\Tool::verify_connect(); + } - /** - * Cette fonction retourne toutes les discussions, sous forme d'un tableau permettant l'administration de ces contacts - */ - public function list () - { - $discussions = $this->internalReceived->get_discussions(); + /** + * Cette fonction retourne toutes les discussions, sous forme d'un tableau permettant l'administration de ces contacts + */ + public function list() + { + $discussions = $this->internalReceived->get_discussions(); - foreach ($discussions as $key => $discussion) - { - if (!$contact = $this->internalContact->get_by_number($discussion['number'])) - { - continue; - } + foreach ($discussions as $key => $discussion) { + if (!$contact = $this->internalContact->get_by_number($discussion['number'])) { + continue; + } - $discussions[$key]['contact'] = $contact['name']; - } + $discussions[$key]['contact'] = $contact['name']; + } - $this->render('discussion/list', array( - 'discussions' => $discussions, - )); - } - - /** - * Cette fonction permet d'afficher la discussion avec un numero - * @param string $number : La numéro de téléphone avec lequel on discute - */ - public function show ($number) - { + $this->render('discussion/list', array( + 'discussions' => $discussions, + )); + } + + /** + * Cette fonction permet d'afficher la discussion avec un numero + * @param string $number : La numéro de téléphone avec lequel on discute + */ + public function show($number) + { $contact = $this->internalContact->get_by_number($number); - $this->render('discussion/show', array( - 'number' => $number, - 'contact' => $contact, - )); - } + $this->render('discussion/show', array( + 'number' => $number, + 'contact' => $contact, + )); + } - /** - * Cette fonction récupère l'ensemble des messages pour un numéro, recçus, envoyés, en cours - * @param string $number : Le numéro cible - * @param string $transaction_id : Le numéro unique de la transaction ajax (sert à vérifier si la requete doit être prise en compte) - */ - function get_messages($number, $transaction_id) - { - $now = new \DateTime(); - $now = $now->format('Y-m-d H:i:s'); + /** + * Cette fonction récupère l'ensemble des messages pour un numéro, recçus, envoyés, en cours + * @param string $number : Le numéro cible + * @param string $transaction_id : Le numéro unique de la transaction ajax (sert à vérifier si la requete doit être prise en compte) + */ + public function get_messages($number, $transaction_id) + { + $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); + $scheduleds = $this->internalScheduled->get_before_date_for_number($now, $number); - $messages = []; + $messages = []; - foreach ($sendeds as $sended) - { - $messages[] = array( - 'date' => htmlspecialchars($sended['at']), - 'text' => htmlspecialchars($sended['content']), - 'type' => 'sended', - 'status' => ($sended['delivered'] ? 'delivered' : ($sended['failed'] ? 'failed' : '')), - ); - } + foreach ($sendeds as $sended) { + $messages[] = array( + 'date' => htmlspecialchars($sended['at']), + 'text' => htmlspecialchars($sended['content']), + 'type' => 'sended', + 'status' => ($sended['delivered'] ? 'delivered' : ($sended['failed'] ? 'failed' : '')), + ); + } - foreach ($receiveds as $received) - { - $messages[] = array( - 'date' => htmlspecialchars($received['at']), - 'text' => htmlspecialchars($received['content']), - 'type' => 'received', - 'md5' => md5($received['at'] . $received['content']), - ); - } + foreach ($receiveds as $received) { + $messages[] = array( + 'date' => htmlspecialchars($received['at']), + 'text' => htmlspecialchars($received['content']), + 'type' => 'received', + 'md5' => md5($received['at'] . $received['content']), + ); + } - foreach ($scheduleds as $scheduled) - { - $messages[] = array( - 'date' => htmlspecialchars($scheduled['at']), - 'text' => htmlspecialchars($scheduled['content']), - 'type' => 'inprogress', - ); - } + foreach ($scheduleds as $scheduled) { + $messages[] = array( + 'date' => htmlspecialchars($scheduled['at']), + 'text' => htmlspecialchars($scheduled['content']), + 'type' => 'inprogress', + ); + } - //On va trier le tableau des messages - usort($messages, function($a, $b) { - return strtotime($a["date"]) - strtotime($b["date"]); - }); + //On va trier le tableau des messages + usort($messages, function ($a, $b) { + return strtotime($a["date"]) - strtotime($b["date"]); + }); - //On récupère uniquement les 25 derniers messages sur l'ensemble - $messages = array_slice($messages, -25); + //On récupère uniquement les 25 derniers messages sur l'ensemble + $messages = array_slice($messages, -25); - echo json_encode(['transaction_id' => $transaction_id, 'messages' => $messages]); - return true; - } + echo json_encode(['transaction_id' => $transaction_id, 'messages' => $messages]); + return true; + } - /** - * 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['numbers'] : Un tableau avec le numero des gens auxquel envoyer le sms - * @return json : Le statut de l'envoi - */ - function send ($csrf) - { + /** + * 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['numbers'] : Un tableau avec le numero des gens auxquel envoyer le sms + * @return json : 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)) - { - $return['success'] = false; - $return['message'] = 'Jeton CSRF invalide'; - echo json_encode($return); - return false; - } + //On vérifie que le jeton csrf est bon + if (!$this->verifyCSRF($csrf)) { + $return['success'] = false; + $return['message'] = 'Jeton CSRF invalide'; + echo json_encode($return); + return false; + } - $now = new \DateTime(); - $now = $now->format('Y-m-d H:i:s'); + $now = new \DateTime(); + $now = $now->format('Y-m-d H:i:s'); $scheduled = []; - $scheduled['at'] = $now; + $scheduled['at'] = $now; $scheduled['content'] = $_POST['content'] ?? ''; $numbers = $_POST['numbers'] ?? false; - if (!$numbers) - { - $return['success'] = false; + if (!$numbers) { + $return['success'] = false; $return['message'] = 'Vous devez renseigner un numéro valide'; - echo json_encode($return); - return false; + echo json_encode($return); + return false; } - if (!$this->internalScheduled->create($scheduled, $numbers)) - { - $return['success'] = false; - $return['message'] = 'Impossible de créer le SMS'; - echo json_encode($return); - return false; - } + if (!$this->internalScheduled->create($scheduled, $numbers)) { + $return['success'] = false; + $return['message'] = 'Impossible de créer le SMS'; + echo json_encode($return); + return false; + } - echo json_encode($return); - return true; - } + echo json_encode($return); + return true; + } - /** - * Cette fonction retourne les id des sms qui sont envoyés - * @return json : Tableau des ids des sms qui sont envoyés - */ - function checksendeds () - { - $_SESSION['discussion_wait_progress'] = isset($_SESSION['discussion_wait_progress']) ? $_SESSION['discussion_wait_progress'] : []; + /** + * Cette fonction retourne les id des sms qui sont envoyés + * @return json : 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']); - //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']) - { - $found = true; - } - } + //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']) { + $found = true; + } + } - if (!$found) - { - unset($_SESSION['discussion_wait_progress'][$key]); - $sendeds[] = $id; - } - } + if (!$found) { + unset($_SESSION['discussion_wait_progress'][$key]); + $sendeds[] = $id; + } + } - echo json_encode($sendeds); - return true; - } + echo json_encode($sendeds); + return true; + } - /** - * 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 - */ - function checkreceiveds ($number) - { - $now = new \DateTime(); - $now = $now->format('Y-m-d H:i'); - - $_SESSION['discussion_last_checkreceiveds'] = isset($_SESSION['discussion_last_checkreceiveds']) ? $_SESSION['discussion_last_checkreceiveds'] : $now; + /** + * 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 + */ + public function checkreceiveds($number) + { + $now = new \DateTime(); + $now = $now->format('Y-m-d H:i'); + + $_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 = $internalReceived->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'] : []; + //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'] : []; - foreach ($receiveds as $key => $received) - { - //Sms jamais recu - if (array_search($received['id'], $_SESSION['discussion_already_receiveds']) === false) - { - $_SESSION['discussion_already_receiveds'][] = $received['id']; - continue; - } + foreach ($receiveds as $key => $received) { + //Sms jamais recu + if (array_search($received['id'], $_SESSION['discussion_already_receiveds']) === false) { + $_SESSION['discussion_already_receiveds'][] = $received['id']; + continue; + } - //Sms déjà reçu => on le supprime des resultats - unset($receiveds[$key]); - } + //Sms déjà reçu => on le supprime des resultats + unset($receiveds[$key]); + } - //On met à jour la date de dernière verif - $_SESSION['discussion_last_checkreceiveds'] = $now; - - echo json_encode($receiveds); - } - } + //On met à jour la date de dernière verif + $_SESSION['discussion_last_checkreceiveds'] = $now; + + echo json_encode($receiveds); + } + } diff --git a/controllers/publics/Event.php b/controllers/publics/Event.php index 61b60c1..db55491 100755 --- a/controllers/publics/Event.php +++ b/controllers/publics/Event.php @@ -1,61 +1,59 @@ bdd = $bdd; $this->internalEvent = new \controllers\internals\Event($this->bdd); - \controllers\internals\Tool::verify_connect(); + \controllers\internals\Tool::verify_connect(); } - /** - * Cette fonction retourne tous les events, sous forme d'un tableau permettant l'administration de ces events - */ - public function list ($page = 0) + /** + * Cette fonction retourne tous les events, sous forme d'un tableau permettant l'administration de ces events + */ + public function list($page = 0) { $page = (int) $page; $limit = 25; $events = $this->internalEvent->get_list($limit, $page); $this->render('event/list', ['events' => $events, 'limit' => $limit, 'page' => $page, 'nb_results' => count($events)]); - } - - /** + } + + /** * Cette fonction va supprimer une liste de events * @param array int $_GET['ids'] : Les id des eventes à supprimer * @return boolean; */ - public function delete ($csrf) + public function delete($csrf) { - if (!$this->verifyCSRF($csrf)) - { + if (!$this->verifyCSRF($csrf)) { \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !'); - return header('Location: ' . \Router::url('Event', 'list')); + return header('Location: ' . \descartes\Router::url('Event', 'list')); } - if (!\controllers\internals\Tool::is_admin()) - { + if (!\controllers\internals\Tool::is_admin()) { \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Vous devez être admin pour pouvoir supprimer des events.'); - return header('Location: ' . \Router::url('Event', 'list')); + return header('Location: ' . \descartes\Router::url('Event', 'list')); } $ids = $_GET['ids'] ?? []; - foreach ($ids as $id) - { + foreach ($ids as $id) { $this->internalEvent->delete($id); } - return header('Location: ' . \Router::url('Event', 'list')); + return header('Location: ' . \descartes\Router::url('Event', 'list')); } - } + } diff --git a/controllers/publics/Groupe.php b/controllers/publics/Groupe.php index 529ada6..c92cb8c 100755 --- a/controllers/publics/Groupe.php +++ b/controllers/publics/Groupe.php @@ -1,16 +1,17 @@ bdd = $bdd; @@ -19,68 +20,64 @@ namespace controllers\publics; $this->internalContact = new \controllers\internals\Contact($this->bdd); $this->internalEvent = new \controllers\internals\Event($this->bdd); - \controllers\internals\Tool::verify_connect(); + \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) + /** + * 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) - { + 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)) - { + if (!$this->verifyCSRF($csrf)) { \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !'); - header('Location: ' . \Router::url('Groupe', 'list')); + header('Location: ' . \descartes\Router::url('Groupe', 'list')); return false; } $ids = $_GET['ids'] ?? []; $this->internalGroupe->delete($ids); - header('Location: ' . \Router::url('Groupe', 'list')); + 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'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() + /** + * 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); + $groupes = $this->internalGroupe->get_by_ids($ids); - foreach ($groupes as $key => $groupe) - { + foreach ($groupes as $key => $groupe) { $groupes[$key]['contacts'] = $this->internalGroupe->get_contact($groupe['id']); } @@ -89,79 +86,73 @@ namespace controllers\publics; )); } - /** - * Cette fonction insert un nouveau groupe - * @param $csrf : Le jeton CSRF - * @param string $_POST['name'] : Le nom du groupe + /** + * 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)) - { + */ + public function create($csrf) + { + if (!$this->verifyCSRF($csrf)) { \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !'); - return header('Location: ' . \Router::url('Groupe', 'add')); + return header('Location: ' . \descartes\Router::url('Groupe', 'add')); } - - $name = $_POST['name'] ?? false; - $contacts_ids = $_POST['contacts'] ?? false; + + $name = $_POST['name'] ?? false; + $contacts_ids = $_POST['contacts'] ?? false; - if (!$name || !$contacts_ids) - { + if (!$name || !$contacts_ids) { \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Des champs sont manquants !'); - return header('Location: ' . \Router::url('Groupe', 'add')); - } + return header('Location: ' . \descartes\Router::url('Groupe', 'add')); + } - $id_groupe = $this->internalGroupe->create($name, $contacts_ids); - if (!$id_groupe) - { + $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: ' . \Router::url('Groupe', 'add')); - } + return header('Location: ' . \descartes\Router::url('Groupe', 'add')); + } \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('success', 'Le groupe a bien été créé.'); - return header('Location: ' . \Router::url('Groupe', 'list')); - } + 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) + public function update($csrf) { - if (!$this->verifyCSRF($csrf)) - { + if (!$this->verifyCSRF($csrf)) { \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !'); - header('Location: ' . \Router::url('Groupe', 'list')); + header('Location: ' . \descartes\Router::url('Groupe', 'list')); return false; } $groupes = $_POST['groupes'] ?? []; $nb_groupes_update = 0; - foreach ($groupes as $id => $groupe) - { + foreach ($groupes as $id => $groupe) { $nb_groupes_update += (int) $this->internalGroupe->update($id, $groupe['name'], $groupe['contacts_ids']); } - if ($nb_groupes_update != count($groupes)) - { + if ($nb_groupes_update != count($groupes)) { \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Certains groupes n\'ont pas pu êtres mis à jour.'); - return header('Location: ' . \Router::url('Groupe', 'list')); + 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: ' . \Router::url('Groupe', 'list')); + return header('Location: ' . \descartes\Router::url('Groupe', 'list')); } - /** - * Cette fonction retourne la liste des groupes sous forme JSON - */ - public function json_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()); - } - } + } + } diff --git a/controllers/publics/Received.php b/controllers/publics/Received.php index 3b6748d..2a21cba 100755 --- a/controllers/publics/Received.php +++ b/controllers/publics/Received.php @@ -1,16 +1,17 @@ bdd = $bdd; @@ -18,22 +19,20 @@ namespace controllers\publics; $this->internalReceived = new \controllers\internals\Received($this->bdd); $this->internalContact = new \controllers\internals\Contact($this->bdd); - \controllers\internals\Tool::verify_connect(); + \controllers\internals\Tool::verify_connect(); } - /** - * Cette fonction retourne tous les receiveds, sous forme d'un tableau permettant l'administration de ces receiveds - */ - public function list ($page = 0) + /** + * Cette fonction retourne tous les receiveds, sous forme d'un tableau permettant l'administration de ces receiveds + */ + public function list($page = 0) { $page = (int) $page; $limit = 25; $receiveds = $this->internalReceived->get_list($limit, $page); - foreach ($receiveds as $key => $received) - { - if (!$contact = $this->internalContact->get_by_number($received['origin'])) - { + foreach ($receiveds as $key => $received) { + if (!$contact = $this->internalContact->get_by_number($received['origin'])) { continue; } @@ -41,21 +40,19 @@ namespace controllers\publics; } $this->render('received/list', ['receiveds' => $receiveds, 'page' => $page, 'limit' => $limit, 'nb_results' => count($receiveds)]); - } + } /** * Cette fonction retourne tous les SMS reçus aujourd'hui pour la popup * @return json : Un tableau des SMS reçus */ - public function popup () + public function popup() { $now = new \DateTime(); $receiveds = $this->internalReceived->get_since_by_date($now->format('Y-m-d')); - foreach ($receiveds as $key => $received) - { - if (!$contact = $this->internalContact->get_by_number($received['origin'])) - { + foreach ($receiveds as $key => $received) { + if (!$contact = $this->internalContact->get_by_number($received['origin'])) { continue; } @@ -64,8 +61,7 @@ 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_receiveds) { $_SESSION['popup_nb_receiveds'] = $nb_received; } @@ -77,31 +73,28 @@ namespace controllers\publics; return true; } - /** + /** * Cette fonction va supprimer une liste de receiveds * @param array int $_GET['ids'] : Les id des receivedes à supprimer * @return boolean; */ - public function delete ($csrf) + public function delete($csrf) { - if (!$this->verifyCSRF($csrf)) - { + if (!$this->verifyCSRF($csrf)) { \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !'); - return header('Location: ' . \Router::url('Received', 'list')); + return header('Location: ' . \descartes\Router::url('Received', 'list')); } - if (!\controllers\internals\Tool::is_admin()) - { + if (!\controllers\internals\Tool::is_admin()) { \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Vous devez être administrateur pour effectuer cette action.'); - return header('Location: ' . \Router::url('Received', 'list')); + return header('Location: ' . \descartes\Router::url('Received', 'list')); } $ids = $_GET['ids'] ?? []; - foreach ($ids as $id) - { + foreach ($ids as $id) { $this->internalReceived->delete($id); } - return header('Location: ' . \Router::url('Received', 'list')); + return header('Location: ' . \descartes\Router::url('Received', 'list')); } - } + } diff --git a/controllers/publics/SMSAPI.php b/controllers/publics/SMSAPI.php index cc18f6e..d3a0147 100755 --- a/controllers/publics/SMSAPI.php +++ b/controllers/publics/SMSAPI.php @@ -1,23 +1,24 @@ internal_user = new \controllers\internals\User($this->bdd); $this->internalContact = new \controllers\internals\Contact($this->bdd); - \controllers\internals\Tool::verify_connect(); + \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 () + /** + * 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; + //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); + //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; - } + 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 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 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 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 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); + //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; - } + //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']; - } + $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; - } + //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']; - } + $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 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; - } + //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( + //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; + )); + return false; } - echo json_encode(array( - 'error' => self::API_ERROR_NO, - )); - return true; + echo json_encode(array( + 'error' => self::API_ERROR_NO, + )); + return true; } - - } + } diff --git a/controllers/publics/SMSStop.php b/controllers/publics/SMSStop.php index afa6972..8e366fb 100755 --- a/controllers/publics/SMSStop.php +++ b/controllers/publics/SMSStop.php @@ -1,62 +1,59 @@ bdd = $bdd; $this->internalSMSStop = new \controllers\internals\SMSStop($this->bdd); - \controllers\internals\Tool::verify_connect(); + \controllers\internals\Tool::verify_connect(); } - /** - * Cette fonction retourne tous les smsstops, sous forme d'un tableau permettant l'administration de ces smsstops - */ - public function list ($page = 0) + /** + * Cette fonction retourne tous les smsstops, sous forme d'un tableau permettant l'administration de ces smsstops + */ + public function list($page = 0) { $page = (int) $page; $limit = 25; $smsstops = $this->internalSMSStop->get_list($limit, $page); $this->render('smsstop/list', ['page' => $page, 'smsstops' => $smsstops, 'limit' => $limit, 'nb_results' => count($smsstops)]); - } - - /** + } + + /** * Cette fonction va supprimer une liste de smsstops * @param array int $_GET['ids'] : Les id des smsstopes à supprimer * @return boolean; */ public function delete($csrf) { - if (!$this->verifyCSRF($csrf)) - { + if (!$this->verifyCSRF($csrf)) { \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !'); - return header('Location: ' . \Router::url('SMSStop', 'list')); + return header('Location: ' . \descartes\Router::url('SMSStop', 'list')); } - if (!\controllers\internals\Tool::is_admin()) - { + 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: ' . \Router::url('SMSStop', 'list')); + return header('Location: ' . \descartes\Router::url('SMSStop', 'list')); } $ids = $_GET['ids'] ?? []; - foreach ($ids as $id) - { + foreach ($ids as $id) { $this->internalSMSStop->delete($id); } - return header('Location: ' . \Router::url('SMSStop', 'list')); + return header('Location: ' . \descartes\Router::url('SMSStop', 'list')); } - - } + } diff --git a/controllers/publics/Scheduled.php b/controllers/publics/Scheduled.php index 704692c..0c71e38 100755 --- a/controllers/publics/Scheduled.php +++ b/controllers/publics/Scheduled.php @@ -1,16 +1,17 @@ bdd = $bdd; @@ -18,45 +19,43 @@ namespace controllers\publics; $this->internalScheduled = new \controllers\internals\Scheduled($this->bdd); $this->internalEvent = new \controllers\internals\Event($this->bdd); - \controllers\internals\Tool::verify_connect(); + \controllers\internals\Tool::verify_connect(); } - /** - * Cette fonction retourne tous les scheduleds, sous forme d'un tableau permettant l'administration de ces scheduleds - */ - public function list ($page = 0) + /** + * Cette fonction retourne tous les scheduleds, sous forme d'un tableau permettant l'administration de ces scheduleds + */ + public function list($page = 0) { $page = (int) $page; $scheduleds = $this->internalScheduled->get_list(25, $page); $this->render('scheduled/list', ['scheduleds' => $scheduleds]); - } - - /** + } + + /** * Cette fonction va supprimer une liste de scheduleds * @param array int $_GET['ids'] : Les id des scheduledes à supprimer * @return boolean; */ - public function delete ($csrf) + public function delete($csrf) { - if (!$this->verifyCSRF($csrf)) - { + if (!$this->verifyCSRF($csrf)) { \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !'); - return header('Location: ' . \Router::url('Scheduled', 'list')); + return header('Location: ' . \descartes\Router::url('Scheduled', 'list')); } $ids = $_GET['ids'] ?? []; - foreach ($ids as $id) - { + foreach ($ids as $id) { $this->internalScheduled->delete($id); } - return header('Location: ' . \Router::url('Scheduled', 'list')); + return header('Location: ' . \descartes\Router::url('Scheduled', 'list')); } - /** - * Cette fonction retourne la page d'ajout d'un scheduled - */ - public function add() + /** + * Cette fonction retourne la page d'ajout d'un scheduled + */ + public function add() { $now = new \DateTime(); $less_one_minute = new \DateInterval('PT1M'); @@ -65,41 +64,37 @@ namespace controllers\publics; $this->render('scheduled/add', [ 'now' => $now->format('Y-m-d H:i'), ]); - } + } - /** - * Cette fonction retourne la page d'édition des scheduleds - * @param int... $ids : Les id des scheduledes à supprimer - */ - public function edit() + /** + * Cette fonction retourne la page d'édition des scheduleds + * @param int... $ids : Les id des scheduledes à supprimer + */ + public function edit() { $ids = $_GET['ids'] ?? []; $scheduleds = $this->internalScheduled->get_by_ids($ids); //Pour chaque message on ajoute les numéros, les contacts & les groupes - foreach ($scheduleds as $key => $scheduled) - { + foreach ($scheduleds as $key => $scheduled) { $scheduleds[$key]['numbers'] = []; $scheduleds[$key]['contacts'] = []; $scheduleds[$key]['groupes'] = []; $numbers = $this->internalScheduled->get_numbers($scheduled['id']); - foreach ($numbers as $number) - { + foreach ($numbers as $number) { $scheduleds[$key]['numbers'][] = $number['number']; } $contacts = $this->internalScheduled->get_contacts($scheduled['id']); - foreach ($contacts as $contact) - { + foreach ($contacts as $contact) { $scheduleds[$key]['contacts'][] = (int) $contact['id']; } $groupes = $this->internalScheduled->get_groupes($scheduled['id']); - foreach ($groupes as $groupe) - { + foreach ($groupes as $groupe) { $scheduleds[$key]['groupes'][] = (int) $groupe['id']; } } @@ -110,58 +105,52 @@ namespace controllers\publics; )); } - /** - * Cette fonction insert un nouveau scheduled - * @param $csrf : Le jeton CSRF - * @param string $_POST['name'] : Le nom du scheduled - * @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 - */ - public function create($csrf) - { - if (!$this->verifyCSRF($csrf)) - { + /** + * Cette fonction insert un nouveau scheduled + * @param $csrf : Le jeton CSRF + * @param string $_POST['name'] : Le nom du scheduled + * @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 + */ + public function create($csrf) + { + if (!$this->verifyCSRF($csrf)) { \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !'); - return header('Location: ' . \Router::url('Scheduled', 'add')); + return header('Location: ' . \descartes\Router::url('Scheduled', 'add')); } - - $date = $_POST['date'] ?? false; + + $date = $_POST['date'] ?? false; $content = $_POST['content'] ?? false; $numbers = $_POST['numbers'] ?? []; $contacts = $_POST['contacts'] ?? []; $groupes = $_POST['groupes'] ?? []; - if (!$content) - { + if (!$content) { \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Vous ne pouvez pas créer un SMS sans message.'); - return header('Location: ' . \Router::url('Scheduled', 'add')); + return header('Location: ' . \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')) - { + 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: ' . \Router::url('Scheduled', 'add')); + return header('Location: ' . \descartes\Router::url('Scheduled', 'add')); } - foreach ($numbers as $key => $number) - { + foreach ($numbers as $key => $number) { $number = \controllers\internals\Tool::parse_phone($number); - if (!$number) - { + if (!$number) { unset($numbers[$key]); continue; } - $numbers[$key] = $number; + $numbers[$key] = $number; } - if (!$numbers && !$contacts && !$groupes) - { + if (!$numbers && !$contacts && !$groupes) { \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Vous devez renseigner au moins un destinataire pour le SMS.'); - return header('Location: ' . \Router::url('Scheduled', 'add')); + return header('Location: ' . \descartes\Router::url('Scheduled', 'add')); } $scheduled = [ @@ -171,17 +160,16 @@ namespace controllers\publics; 'progress' => false, ]; - if (!$scheduled_id = $this->internalScheduled->create($scheduled, $numbers, $contacts, $groupes)) - { + 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: ' . \Router::url('Scheduled', 'add')); + return header('Location: ' . \descartes\Router::url('Scheduled', 'add')); } - \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('success', 'Le SMS a bien été créé pour le ' . $date . '.'); - return header('Location: ' . \Router::url('Scheduled', 'list')); - } + \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('success', 'Le SMS a bien été créé pour le ' . $date . '.'); + return header('Location: ' . \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 @@ -189,52 +177,44 @@ namespace controllers\publics; */ public function update($csrf) { - if (!$this->verifyCSRF($csrf)) - { + if (!$this->verifyCSRF($csrf)) { \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !'); - return header('Location: ' . \Router::url('Scheduled', 'list')); + return header('Location: ' . \descartes\Router::url('Scheduled', 'list')); } $scheduleds = $_POST['scheduleds'] ?? []; $all_update_ok = true; - foreach ($scheduleds as $id_scheduled => $scheduled) - { - + foreach ($scheduleds as $id_scheduled => $scheduled) { $date = $scheduled['date'] ?? false; $content = $scheduled['content'] ?? false; $numbers = $scheduled['numbers'] ?? []; $contacts = $scheduled['contacts'] ?? []; $groupes = $scheduled['groupes'] ?? []; - if (!$content) - { + if (!$content) { $all_update_ok = false; continue; } - if (!\controllers\internals\Tool::validate_date($date, 'Y-m-d H:i:s') && !\controllers\internals\Tool::validate_date($date, 'Y-m-d H:i')) - { + if (!\controllers\internals\Tool::validate_date($date, 'Y-m-d H:i:s') && !\controllers\internals\Tool::validate_date($date, 'Y-m-d H:i')) { $all_update_ok = false; continue; } - foreach ($numbers as $key => $number) - { + foreach ($numbers as $key => $number) { $number = \controllers\internals\Tool::parse_phone($number); - if (!$number) - { + if (!$number) { unset($numbers[$key]); continue; } - $numbers[$key] = $number; + $numbers[$key] = $number; } - if (!$numbers && !$contacts && !$groupes) - { + if (!$numbers && !$contacts && !$groupes) { $all_update_ok = false; continue; } @@ -252,20 +232,18 @@ namespace controllers\publics; 'groupes_ids' => $groupes, ]; - if (!$this->internalScheduled->update([$scheduled])) - { + if (!$this->internalScheduled->update([$scheduled])) { $all_update_ok = false; continue; } } - if (!$all_update_ok) - { + if (!$all_update_ok) { \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Certains SMS n\'ont pas pu êtres mis à jour.'); - return header('Location: ' . \Router::url('Scheduled', 'list')); + return header('Location: ' . \descartes\Router::url('Scheduled', 'list')); } \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('success', 'Tous les SMS ont été mis à jour.'); - return header('Location: ' . \Router::url('Scheduled', 'list')); + return header('Location: ' . \descartes\Router::url('Scheduled', 'list')); } - } + } diff --git a/controllers/publics/Sended.php b/controllers/publics/Sended.php index c72a824..67f6413 100755 --- a/controllers/publics/Sended.php +++ b/controllers/publics/Sended.php @@ -1,55 +1,54 @@ bdd = $bdd; $this->internalSended = new \controllers\internals\Sended($this->bdd); - \controllers\internals\Tool::verify_connect(); + \controllers\internals\Tool::verify_connect(); } - /** - * Cette fonction retourne tous les sendeds, sous forme d'un tableau permettant l'administration de ces sendeds - */ - public function list ($page = 0) + /** + * Cette fonction retourne tous les sendeds, sous forme d'un tableau permettant l'administration de ces sendeds + */ + public function list($page = 0) { $page = (int) $page; $limit = 25; $sendeds = $this->internalSended->get_list($limit, $page); $this->render('sended/list', ['sendeds' => $sendeds, 'page' => $page, 'limit' => $limit, 'nb_results' => count($sendeds)]); - } - - /** + } + + /** * Cette fonction va supprimer une liste de sendeds * @param array int $_GET['ids'] : Les id des sendedes à supprimer * @return boolean; */ public function delete($csrf) { - if (!$this->verifyCSRF($csrf)) - { + if (!$this->verifyCSRF($csrf)) { \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !'); - return header('Location: ' . \Router::url('Sended', 'list')); + return header('Location: ' . \descartes\Router::url('Sended', 'list')); } $ids = $_GET['ids'] ?? []; - foreach ($ids as $id) - { + foreach ($ids as $id) { $this->internalSended->delete($id); } - return header('Location: ' . \Router::url('Sended', 'list')); + return header('Location: ' . \descartes\Router::url('Sended', 'list')); } - } + } diff --git a/controllers/publics/Setting.php b/controllers/publics/Setting.php index 16fac0b..7845c28 100755 --- a/controllers/publics/Setting.php +++ b/controllers/publics/Setting.php @@ -1,13 +1,14 @@ internal_setting = new \controllers\internals\Setting($bdd); @@ -18,12 +19,12 @@ namespace controllers\publics; /** * Return all settings to administrate them - */ - public function show () + */ + 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 @@ -31,37 +32,32 @@ namespace controllers\publics; * @param string $_POST['setting_value'] : Setting's new value * @return boolean; */ - public function update (string $setting_name, string $csrf) + public function update(string $setting_name, string $csrf) { - if (!$this->verifyCSRF($csrf)) - { + if (!$this->verifyCSRF($csrf)) { \DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !'); - return header('Location: ' . \Router::url('Setting', 'show')); + return header('Location: ' . \descartes\Router::url('Setting', 'show')); } - if (!\controllers\internals\Tool::is_admin()) - { + if (!\controllers\internals\Tool::is_admin()) { \DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Vous devez être administrateur pour pouvoir modifier un réglage.'); - return header('Location: ' . \Router::url('Setting', 'show')); + return header('Location: ' . \descartes\Router::url('Setting', 'show')); } $setting_value = $_POST['setting_value'] ?? false; - if ($setting_value === false) - { + if ($setting_value === false) { \DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Vous devez renseigner une valeure pour le réglage.'); - return header('Location: ' . \Router::url('Setting', 'show')); + return header('Location: ' . \descartes\Router::url('Setting', 'show')); } $update_setting_result = $this->internal_setting->update($setting_name, $setting_value); - if ($update_setting_result === false) - { + if ($update_setting_result === false) { \DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Impossible de mettre à jour ce réglage.'); - return header('Location: ' . \Router::url('Setting', 'show')); + return header('Location: ' . \descartes\Router::url('Setting', 'show')); } \DescartesSessionMessages\internals\DescartesSessionMessages::push('success', 'Le réglage a bien été mis à jour.'); - return header('Location: ' . \Router::url('Setting', 'show')); + return header('Location: ' . \descartes\Router::url('Setting', 'show')); } - - } + } diff --git a/controllers/publics/User.php b/controllers/publics/User.php index 1d44d5e..50a0b17 100755 --- a/controllers/publics/User.php +++ b/controllers/publics/User.php @@ -1,117 +1,110 @@ internal_user = new \controllers\internals\User($bdd); - \controllers\internals\Tool::verify_connect(); + \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) + /** + * 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) + public function delete($csrf) { - if (!$this->verifyCSRF($csrf)) - { + if (!$this->verifyCSRF($csrf)) { \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !'); - return header('Location: ' . \Router::url('User', 'list')); + return header('Location: ' . \descartes\Router::url('User', 'list')); } - if (!\controllers\internals\Tool::is_admin()) - { + if (!\controllers\internals\Tool::is_admin()) { \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Vous devez être administrateur pour supprimer un utilisateur !'); - return header('Location: ' . \Router::url('User', 'list')); + return header('Location: ' . \descartes\Router::url('User', 'list')); } $ids = $_GET['ids'] ?? []; - foreach ($ids as $id) - { + foreach ($ids as $id) { $this->internal_user->delete($id); } - return header('Location: ' . \Router::url('User', 'list')); + 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 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 + /** + * 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)) - { + */ + public function create($csrf) + { + if (!$this->verifyCSRF($csrf)) { \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Jeton CSRF invalid !'); - return header('Location: ' . \Router::url('User', 'add')); + 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; + + $email = $_POST['email'] ?? false; + $password = $_POST['password'] ?? \controllers\internals\Tool::generate_password(rand(6, 12)); + $admin = $_POST['admin'] ?? false; - if (!$email) - { + if (!$email) { \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Vous devez au moins fournir une adresse e-mail pour l\'utilisateur.'); - return header('Location: ' . \Router::url('User', 'add')); + return header('Location: ' . \descartes\Router::url('User', 'add')); } - if (!filter_var($email, FILTER_VALIDATE_EMAIL)) - { + if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'L\'adresse e-mail n\'est pas valide.'); - return header('Location: ' . \Router::url('User', 'add')); + 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) - { + 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: ' . \Router::url('User', 'add')); + return header('Location: ' . \descartes\Router::url('User', 'add')); } $user_id = $this->internal_user->create($email, $password, $admin); - if (!$user_id) - { + if (!$user_id) { \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('danger', 'Impossible de créer ce user.'); - return header('Location: ' . \Router::url('User', 'add')); - } + return header('Location: ' . \descartes\Router::url('User', 'add')); + } - \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('success', 'L\'utilisateur a bien été créé.'); - return header('Location: ' . \Router::url('User', 'list')); - } - } + \modules\DescartesSessionMessages\internals\DescartesSessionMessages::push('success', 'L\'utilisateur a bien été créé.'); + return header('Location: ' . \descartes\Router::url('User', 'list')); + } + }