diff --git a/controllers/internals/Console.php b/controllers/internals/Console.php index f9d59c9..ee649e7 100755 --- a/controllers/internals/Console.php +++ b/controllers/internals/Console.php @@ -68,7 +68,7 @@ class Console extends \descartes\InternalController $ids_scheduleds[] = $scheduled['id']; } - if (!count($ids_scheduleds)) + if (!\count($ids_scheduleds)) { continue; } @@ -187,12 +187,12 @@ class Console extends \descartes\InternalController foreach (scandir(PWD_RECEIVEDS) as $dir) { //Si le fichier est un fichier système, on passe à l'itération suivante - if (mb_substr($dir, 0, 1) == '.') + if ('.' === mb_substr($dir, 0, 1)) { continue; } - echo 'Analyse du Sms ' . $dir . "\n"; + echo 'Analyse du Sms '.$dir."\n"; //On récupère la date du Sms à la seconde près grâce au nom du fichier (Cf. parseSms.sh) //Il faut mettre la date au format Y-m-d H:i:s diff --git a/controllers/internals/Received.php b/controllers/internals/Received.php index b53c282..62d7f0f 100755 --- a/controllers/internals/Received.php +++ b/controllers/internals/Received.php @@ -116,7 +116,7 @@ class Received extends \descartes\InternalController /** * Cette fonction insert une nouvelle receivede. * - * @param array $received : Un tableau représentant la receivede à insérer + * @param array $received : Un tableau représentant la receivede à insérer * @param mixed $at * @param mixed $origin * @param mixed $content diff --git a/controllers/internals/Scheduled.php b/controllers/internals/Scheduled.php index e83e0e3..67abce0 100755 --- a/controllers/internals/Scheduled.php +++ b/controllers/internals/Scheduled.php @@ -95,13 +95,17 @@ namespace controllers\internals; * @param array $numbers : Les numéros auxquels envoyer le scheduled * @param array $contacts_ids : Les ids des contact auquels envoyer le scheduled * @param array $groups_ids : Les ids des group auxquels envoyer le scheduled + * @param mixed $at + * @param mixed $text + * @param mixed $flash + * @param mixed $progress * * @return mixed bool|int : false si echec, sinon l'id du nouveau scheduled inséré */ public function create($at, $text, $flash = false, $progress = false, $numbers = [], $contacts_ids = [], $groups_ids = []) { $scheduled = [ - 'at' => $at, + 'at' => $at, 'text' => $text, 'flash' => $flash, 'progress' => $progress, diff --git a/controllers/internals/Sended.php b/controllers/internals/Sended.php index a64d1e5..f2f609d 100755 --- a/controllers/internals/Sended.php +++ b/controllers/internals/Sended.php @@ -144,17 +144,18 @@ namespace controllers\internals; } /** - * Update status + * Update status. + * + * @param int $id_sended : id of the sended to mark as delivered + * @param string $status : new status * - * @param int $id_sended : id of the sended to mark as delivered - * @param string $status : new status * @return int */ public function update_status($id_sended, $status) { return $this->model_sended->update($id_sended, ['status' => $status]); } - + /** * Update sended to delivered. * diff --git a/controllers/internals/SmsApi.php b/controllers/internals/SmsApi.php deleted file mode 100755 index fb73de1..0000000 --- a/controllers/internals/SmsApi.php +++ /dev/null @@ -1,144 +0,0 @@ -bdd = $bdd; - $this->model = $model; - - $this->internal_user = new \controllers\internals\User($this->bdd); - $this->internal_scheduled = new \controllers\internals\Scheduled($this->bdd); - $this->internal_contact = new \controllers\internals\Contact($this->bdd); - - \controllers\internals\Tool::verifyconnect(); - } - - /** - * Cette fonction permet d'envoyer un Sms, en passant simplement des arguments à l'URL (ou pas $_GET) - * @param string text = Le contenu du Sms - * @param mixed numbers = Les numéros auxquels envoyer les Sms. Soit un seul numéro, et il s'agit d'un string. Soit plusieurs numéros, et il s'agit d'un tableau - * @param mixed contacts = Les noms des contacts auxquels envoyer les Sms. Soit un seul et il s'agit d'un string. Soit plusieurs, et il s'agit d'un tableau - * @param mixed groupes = Les noms des groupes auxquels envoyer les Sms. Soit un seul et il s'agit d'un string. Soit plusieurs, et il s'agit d'un tableau - * @param optionnal string date = La date à laquelle doit être envoyé le Sms. Au format 'Y-m-d H:i'. Si non fourni, le Sms sera envoyé dans 2 minutes - */ - public function api() - { - //On récupère l'email et le password - $email = isset($_GET['email']) ? $_GET['email'] : null; - $email = isset($_POST['email']) ? $_POST['email'] : $email; - $password = isset($_GET['password']) ? $_GET['password'] : null; - $password = isset($_POST['password']) ? $_POST['password'] : $password; - - //Si les identifiants sont incorrect on retourne une erreur - $user = $internal_user->check_credentials($email, $password); - - if (!$user) { - echo json_encode(array( - 'error' => self::API_ERROR_BAD_ID, - )); - return true; - } - - //On map les variables $_GET - $get_numbers = isset($_GET['numbers']) ? $_GET['numbers'] : array(); - $get_contacts = isset($_GET['contacts']) ? $_GET['contacts'] : array(); - $get_groupes = isset($_GET['groupes']) ? $_GET['groupes'] : array(); - - //On map les variables POST - $post_numbers = isset($_POST['numbers']) ? $_POST['numbers'] : array(); - $post_contacts = isset($_POST['contacts']) ? $_POST['contacts'] : array(); - $post_groupes = isset($_POST['groupes']) ? $_POST['groupes'] : array(); - - //On map le texte et la date à part car c'est les seuls arguments qui ne sera jamais un tableau - $text = isset($_GET['text']) ? $_GET['text'] : null; - $text = isset($_POST['text']) ? $_POST['text'] : $text; - $date = isset($_GET['date']) ? $_GET['date'] : null; - $date = isset($_POST['date']) ? $_POST['date'] : $date; - - //On passe tous les paramètres GET en tableau - $get_numbers = is_array($get_numbers) ? $get_numbers : ($get_numbers ? array($get_numbers) : array()); - $get_contacts = is_array($get_contacts) ? $get_contacts : array($get_contacts); - $get_groupes = is_array($get_groupes) ? $get_groupes : array($get_groupes); - - //On passe tous les paramètres POST en tableau - $post_numbers = is_array($post_numbers) ? $post_numbers : array($post_numbers); - $post_contacts = is_array($post_contacts) ? $post_contacts : array($post_contacts); - $post_groupes = is_array($post_groupes) ? $post_groupes : array($post_groupes); - - //On merge les données reçus en GET, et celles en POST - $numbers = array_merge($get_numbers, $post_numbers); - $contacts = array_merge($get_contacts, $post_contacts); - $groupes = array_merge($get_groupes, $post_groupes); - - //Pour chaque contact, on récupère l'id du contact - foreach ($contacts as $key => $contact) { - if (!$contact = $internal_contact->get_by_name($contact)) { - unset($contacts[$key]); - continue; - } - - $contacts[$key] = $contact['id']; - } - - //Pour chaque groupe, on récupère l'id du groupe - foreach ($groupes as $key => $name) { - if (!$groupe = $internal_contact->get_by_name($groupe)) { - unset($groupes[$key]); - continue; - } - - $groupes[$key] = $groupe['id']; - } - - //Si la date n'est pas définie, on la met à la date du jour - if (!$date) { - $now = new \DateTime(); - $date = $now->format('Y-m-d H:i'); - } - - //Si il manque des champs essentiels, on leve une erreur - if (!$text || (!$numbers && !$contacts && !$groupes)) { - echo json_encode(array( - 'error' => self::API_ERROR_MISSING_FIELD, - )); - return false; - } - - //On assigne les variable POST (après avoir vidé $_POST) en prévision de la création du Sms - if (!$this->internal_scheduled->create(['at' => $date, 'content' => $text], $numbers, $contacts, $groupes)) { - echo json_encode(array( - 'error' => self::API_ERROR_CREATION_FAILED, - )); - return false; - } - - echo json_encode(array( - 'error' => self::API_ERROR_NO, - )); - return true; - } - } diff --git a/controllers/internals/Tool.php b/controllers/internals/Tool.php index bccd1f3..8384e77 100755 --- a/controllers/internals/Tool.php +++ b/controllers/internals/Tool.php @@ -43,6 +43,7 @@ namespace controllers\internals; { $phone_number_util = \libphonenumber\PhoneNumberUtil::getInstance(); $phone_number_o = $phone_number_util->parse($number, null); + return $phone_number_util->format($phone_number_o, \libphonenumber\PhoneNumberFormat::INTERNATIONAL); } @@ -177,8 +178,6 @@ namespace controllers\internals; $controller->render($settings['template'], $datas); $content = ob_get_clean(); - $success = mail($to, $settings['subject'], $content); - - return $success; + return mail($to, $settings['subject'], $content); } } diff --git a/controllers/publics/Account.php b/controllers/publics/Account.php index dea756b..c311e67 100755 --- a/controllers/publics/Account.php +++ b/controllers/publics/Account.php @@ -47,12 +47,14 @@ namespace controllers\publics; if (!$this->verify_csrf($csrf)) { \FlashMessage\FlashMessage::push('danger', 'Jeton CSRF invalid !'); + return $this->redirect(\descartes\Router::url('Account', 'show')); } if (!$password) { \FlashMessage\FlashMessage::push('danger', 'Vous devez renseigner un mot de passe.'); + return $this->redirect(\descartes\Router::url('Account', 'show')); } @@ -60,10 +62,12 @@ namespace controllers\publics; if (!$update_password_result) { \FlashMessage\FlashMessage::push('danger', 'Impossible de mettre à jour le mot de passe.'); + return $this->redirect(\descartes\Router::url('Account', 'show')); } \FlashMessage\FlashMessage::push('success', 'Le mot de passe a bien été mis à jour.'); + return $this->redirect(\descartes\Router::url('Account', 'show')); } diff --git a/controllers/publics/Command.php b/controllers/publics/Command.php index 4266452..4b8b81e 100755 --- a/controllers/publics/Command.php +++ b/controllers/publics/Command.php @@ -108,6 +108,7 @@ namespace controllers\publics; if (!$this->verify_csrf($csrf)) { \FlashMessage\FlashMessage::push('danger', 'Jeton CSRF invalid !'); + return $this->redirect(\descartes\Router::url('Command', 'list')); } @@ -118,16 +119,19 @@ namespace controllers\publics; if (!$name || !$script) { \FlashMessage\FlashMessage::push('danger', 'Renseignez au moins un nom et un script.'); + return $this->redirect(\descartes\Router::url('Command', 'list')); } if (!$this->internal_command->create($name, $script, $admin)) { \FlashMessage\FlashMessage::push('danger', 'Impossible de créer cette commande.'); + return $this->redirect(\descartes\Router::url('commands', 'add')); } \FlashMessage\FlashMessage::push('success', 'La commande a bien été crée.'); + return $this->redirect(\descartes\Router::url('Command', 'list')); } @@ -144,6 +148,7 @@ namespace controllers\publics; if (!$this->verify_csrf($csrf)) { \FlashMessage\FlashMessage::push('danger', 'Jeton CSRF invalid !'); + return $this->redirect(\descartes\Router::url('Command', 'list')); } diff --git a/controllers/publics/Discussion.php b/controllers/publics/Discussion.php index f6a7154..121686f 100755 --- a/controllers/publics/Discussion.php +++ b/controllers/publics/Discussion.php @@ -141,7 +141,7 @@ namespace controllers\publics; * Cette fonction permet d'envoyer facilement un sms à un numéro donné. * * @param string $csrf : Le jeton csrf - * @param string $_POST['text'] : Le contenu du Sms + * @param string $_POST['text'] : Le contenu du Sms * @param string $_POST['numbers'] : Un tableau avec le numero des gens auxquel envoyer le sms * * @return string : json string Le statut de l'envoi diff --git a/controllers/publics/Group.php b/controllers/publics/Group.php index 1a03d3d..f9c0ea3 100755 --- a/controllers/publics/Group.php +++ b/controllers/publics/Group.php @@ -10,7 +10,7 @@ * with this source code in the file LICENSE. */ - namespace controllers\publics; +namespace controllers\publics; /** * Page des groups. diff --git a/controllers/publics/Scheduled.php b/controllers/publics/Scheduled.php index 4e85483..abf098a 100755 --- a/controllers/publics/Scheduled.php +++ b/controllers/publics/Scheduled.php @@ -142,6 +142,7 @@ namespace controllers\publics; if (!$this->verify_csrf($csrf)) { \FlashMessage\FlashMessage::push('danger', 'Jeton CSRF invalid !'); + return $this->redirect(\descartes\Router::url('Scheduled', 'add')); } @@ -154,12 +155,14 @@ namespace controllers\publics; if (empty($text)) { \FlashMessage\FlashMessage::push('danger', 'Vous ne pouvez pas créer un Sms sans message.'); + return $this->redirect(\descartes\Router::url('Scheduled', 'add')); } if (!\controllers\internals\Tool::validate_date($at, 'Y-m-d H:i:s') && !\controllers\internals\Tool::validate_date($at, 'Y-m-d H:i')) { \FlashMessage\FlashMessage::push('danger', 'Vous devez fournir une date valide.'); + return $this->redirect(\descartes\Router::url('Scheduled', 'add')); } @@ -170,28 +173,30 @@ namespace controllers\publics; if (!$number) { unset($numbers[$key]); + continue; } $numbers[$key] = $number; } - if (!$numbers && !$contacts && !$groups) { \FlashMessage\FlashMessage::push('danger', 'Vous devez renseigner au moins un destinataire pour le Sms.'); + return $this->redirect(\descartes\Router::url('Scheduled', 'add')); } - $scheduled_id = $this->internal_scheduled->create($at, $text, false, false, $numbers, $contacts, $groups); if (!$scheduled_id) { \FlashMessage\FlashMessage::push('danger', 'Impossible de créer le Sms.'); + return $this->redirect(\descartes\Router::url('Scheduled', 'add')); } - \FlashMessage\FlashMessage::push('success', 'Le Sms a bien été créé pour le ' . $at . '.'); + \FlashMessage\FlashMessage::push('success', 'Le Sms a bien été créé pour le '.$at.'.'); + return $this->redirect(\descartes\Router::url('Scheduled', 'list')); } @@ -227,12 +232,14 @@ namespace controllers\publics; if (empty($text)) { $all_update_ok = false; + continue; } if (!\controllers\internals\Tool::validate_date($at, 'Y-m-d H:i:s') && !\controllers\internals\Tool::validate_date($at, 'Y-m-d H:i')) { $all_update_ok = false; + continue; } @@ -243,6 +250,7 @@ namespace controllers\publics; if (!$number) { unset($numbers[$key]); + continue; } @@ -252,6 +260,7 @@ namespace controllers\publics; if (!$numbers && !$contacts && !$groups) { $all_update_ok = false; + continue; } @@ -259,6 +268,7 @@ namespace controllers\publics; if (!$success) { $all_update_ok = false; + continue; } } @@ -266,10 +276,12 @@ namespace controllers\publics; if (!$all_update_ok) { \FlashMessage\FlashMessage::push('danger', 'Certains SMS n\'ont pas pu êtres mis à jour.'); + return $this->redirect(\descartes\Router::url('Scheduled', 'list')); } \FlashMessage\FlashMessage::push('success', 'Tous les SMS ont été mis à jour.'); + return $this->redirect(\descartes\Router::url('Scheduled', 'list')); } } diff --git a/controllers/publics/Setting.php b/controllers/publics/Setting.php index 8450b01..1dc11ac 100755 --- a/controllers/publics/Setting.php +++ b/controllers/publics/Setting.php @@ -49,12 +49,14 @@ namespace controllers\publics; if (!$this->verify_csrf($csrf)) { \FlashMessage\FlashMessage::push('danger', 'Jeton CSRF invalid !'); + return $this->redirect(\descartes\Router::url('Setting', 'show')); } if (!\controllers\internals\Tool::is_admin()) { \FlashMessage\FlashMessage::push('danger', 'Vous devez être administrateur pour pouvoir modifier un réglage.'); + return $this->redirect(\descartes\Router::url('Setting', 'show')); } @@ -63,6 +65,7 @@ namespace controllers\publics; if (false === $setting_value) { \FlashMessage\FlashMessage::push('danger', 'Vous devez renseigner une valeure pour le réglage.'); + return $this->redirect(\descartes\Router::url('Setting', 'show')); } @@ -70,10 +73,12 @@ namespace controllers\publics; if (false === $update_setting_result) { \FlashMessage\FlashMessage::push('danger', 'Impossible de mettre à jour ce réglage.'); + return $this->redirect(\descartes\Router::url('Setting', 'show')); } \FlashMessage\FlashMessage::push('success', 'Le réglage a bien été mis à jour.'); + return $this->redirect(\descartes\Router::url('Setting', 'show')); } } diff --git a/controllers/publics/User.php b/controllers/publics/User.php index e3f7b6a..fbe77e6 100755 --- a/controllers/publics/User.php +++ b/controllers/publics/User.php @@ -101,6 +101,7 @@ class User extends \descartes\Controller if (!$this->verify_csrf($csrf)) { \FlashMessage\FlashMessage::push('danger', 'Jeton CSRF invalid !'); + return $this->redirect(\descartes\Router::url('User', 'add')); } @@ -111,12 +112,14 @@ class User extends \descartes\Controller if (!$email) { \FlashMessage\FlashMessage::push('danger', 'Vous devez au moins fournir une adresse e-mail pour l\'utilisateur.'); + return $this->redirect(\descartes\Router::url('User', 'add')); } if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { \FlashMessage\FlashMessage::push('danger', 'L\'adresse e-mail n\'est pas valide.'); + return $this->redirect(\descartes\Router::url('User', 'add')); } @@ -124,6 +127,7 @@ class User extends \descartes\Controller if (!$user_id) { \FlashMessage\FlashMessage::push('danger', 'Impossible de créer ce user.'); + return $this->redirect(\descartes\Router::url('User', 'add')); } @@ -134,6 +138,7 @@ class User extends \descartes\Controller } \FlashMessage\FlashMessage::push('success', 'L\'utilisateur a bien été créé.'); + return $this->redirect(\descartes\Router::url('User', 'list')); } }