diff --git a/automate.php b/automate.php index a39ec9b..bbafc6c 100755 --- a/automate.php +++ b/automate.php @@ -50,7 +50,13 @@ echo $num.' <> '.$name.'
'; } - parseCallLog(); + // parseCallLog(); + + $username = ' '; + $firstname = ''; + $lastname = ''; + + var_dump( !!strlen($username.$firstname.$lastname) ); // Pseudo, prénom, ou nom, au moins un n'est pas vide diff --git a/config/modules.json b/config/modules.json index bbc9a44..c57a69d 100755 --- a/config/modules.json +++ b/config/modules.json @@ -52,7 +52,7 @@ "getById": { "description": "Retourne les informations d'un utilisateur.", "permissions": ["admin"], - "parameters": { + "parameters": { "id_user": { "description": "UID de l'utilisateur recherche.", "type": "id" } } }, @@ -69,11 +69,11 @@ "description": "Creation d'un nouvel utilisateur.", "permissions": ["admin"], "parameters": { - "login" : { "description": "Login de l'utilisateur, 30 caracteres maximum.", "type": "varchar(3,30)" }, - "password" : { "description": "Mot de passe de l'utilisateur.", "type": "text" }, - "mail" : { "description": "Adresse mail de l'utilisateur.", "type": "mail" }, - "reference" : { "description": "UID d'une personne d'un sondage, peut etre vide.", "type": "text" }, - "permission" : { "description": "Permissions de l'utilisateur : 'admin' ou 'subject'", "type": "varchar(5,7)" } + "login": { "description": "Login de l'utilisateur, 30 caracteres maximum.", "type": "varchar(3,30)" }, + "password": { "description": "Mot de passe de l'utilisateur.", "type": "text" }, + "mail": { "description": "Adresse mail de l'utilisateur.", "type": "mail" }, + "reference": { "description": "UID d'une personne d'un sondage, peut etre vide.", "type": "text" }, + "permission": { "description": "Permissions de l'utilisateur : 'admin' ou 'subject'", "type": "varchar(5,7)" } } }, @@ -132,7 +132,7 @@ "description": "Creation d'un token de nom et de duree donnee", "permissions": ["admin"], "parameters": { - "name" : { "description": "Nom attribue au token", "type": "varchar(3,50)" }, + "name": { "description": "Nom attribue au token", "type": "varchar(3,50)" }, "duration": { "description": "Duree du token en nombre de jours", "type": "numeric" } } } @@ -160,11 +160,11 @@ "description": "Creation d'un nouveau sujet.", "permissions": ["admin"], "parameters": { - "username" : { "description": "Pseudo du sujet, 30 caracteres maximum.", "type": "varchar(3,30)" }, - "firstname" : { "description": "Prénom du sujet, 30 caracteres maximum.", "type": "varchar(3,30)" }, - "lastname" : { "description": "Nom du sujet, 30 caracteres maximum.", "type": "varchar(3,30)" }, + "username" : { "description": "Pseudo du sujet, 30 caracteres maximum.", "type": "varchar(0,30)" }, + "firstname" : { "description": "Prénom du sujet, 30 caracteres maximum.", "type": "varchar(0,30)" }, + "lastname" : { "description": "Nom du sujet, 30 caracteres maximum.", "type": "varchar(0,30)" }, "id_facebook": { "description": "Id facebook du sujet (optionnel).", "type": "id", "optional": true }, - "number" : { "description": "Numéro de téléphone du sujet (optionnel).", "type": "text", "optional": true } + "number" : { "description": "Numéro de téléphone du sujet (optionnel).", "type": "number", "optional": true } } }, diff --git a/js/includes/sociogram.js b/js/includes/sociogram.js index 2a44e92..588fe3c 100644 --- a/js/includes/sociogram.js +++ b/js/includes/sociogram.js @@ -14,7 +14,7 @@ */ /* [1] Récupération du conteneur -=========================================================*/ +======================================*/ function sociogramClass(container){ this.container = container; this.log('sociogram created'); @@ -23,7 +23,7 @@ function sociogramClass(container){ /* [2] Construction de la classe -=========================================================*/ +======================================*/ sociogramClass.prototype = { container: this.container, sigma: null, @@ -122,7 +122,7 @@ sociogramClass.prototype.load = function(){ thisPtr.log(response); // Si erreur, on quitte - if( response.ModuleError !== 0 ) return; + if( response.ModuleError != 0 ) return; // On enregistre la réponse thisPtr.response = response; @@ -206,7 +206,7 @@ sociogramClass.prototype.nodeAt = function(x, y){ var minDistance = null; for( var nodeId in nodes ){ var distance = Math.sqrt( Math.pow(x-nodes[nodeId].x, 2) + Math.pow(y-nodes[nodeId].y, 2) ); - if( minDistance === null || distance < minDistance ) + if( minDistance == null || distance < minDistance ) minDistance = distance; } @@ -231,9 +231,9 @@ sociogramClass.prototype.arrange = function(nodeId, pos, alone){ var node = this.sigma.graph.nodes(nodeId); // Si le noeud est deja place, on ne fais rien - if( node.x !== 0 || node.y !== 0 ) return; + if( node.x != 0 || node.y != 0 ) return; - pos = (pos===null) ? {x: node.x, y: node.y} : pos; // On recupere la position + pos = (pos==null) ? {x: node.x, y: node.y} : pos; // On recupere la position // Tant que le noeud est trop proche d'un autre, on l'eloigne // UNIQUEMENT si alone n'est pas NULL @@ -278,7 +278,7 @@ sociogramClass.prototype.arrange = function(nodeId, pos, alone){ for( neighborId in neighbors ){ var current = this.sigma.graph.nodes(neighborId); // Si n'est pas deja positionne - if( current.x === 0 && current.y === 0 ){ + if( current.x == 0 && current.y == 0 ){ // On cherche un angle tant qu'il est pas trop pres d'un deja pris var angle, alreadyUsed = false; do{ @@ -328,7 +328,7 @@ sociogramClass.prototype.overload.nodeNeighbors = function(nodeId){ var subneighbors = this.allNeighborsIndex[stack[0]]; for( var subId in subneighbors ) // Si le voisin est pas deja dans la liste/pile, on l'ajoute a la liste des voisins - if( neighbors[subId] === null ){ + if( neighbors[subId] == null ){ stack.push(subId); // On ajoute a la pile neighbors[subId] = subneighbors[subId]; // On ajoute a la liste complete } @@ -455,7 +455,7 @@ sociogramClass.prototype.bindings.clickNode = function(thisPtr, e){ neighborNodes[nodeId] = e.data.node; // on ajoute le noeud clique thisPtr.sigma.graph.nodes().forEach(function(n) { - if( neighborNodes[n.id] !== null ) n.color = n.originalColor; + if( neighborNodes[n.id] != null ) n.color = n.originalColor; else n.color = '#eee'; }); diff --git a/manager/Database.php b/manager/Database.php index 7c63de4..53683dc 100755 --- a/manager/Database.php +++ b/manager/Database.php @@ -262,6 +262,32 @@ } + + + + /* FONCTION QUI FORMATTE UN NUMÉRO DE TÉLÉPHONE + * + * @number Numéro de téléphone en +336/336/06/0336/00336 + * + * @return formatted Numéro formatté (06), on FALSE si erreur + * + */ + public static function formatNumber($number){ + // On met en quel que soit le type + $number = (string) $number; + + // On supprime tous les espaces + $number = str_replace(' ', '', $number); + + // On formatte le numéro + if( preg_match("/^(?:\+33|0?0?33|0)(.+)/", $number, $m) ) + $number = '0'.$m[1]; + + // On retourne le numéro formatté + return $number; + } + + //////////////////////////////////// // _ _ // __| | __ _| |_ ___ ___ diff --git a/manager/module/call_log.php b/manager/module/call_log.php index 71bd603..eb46446 100644 --- a/manager/module/call_log.php +++ b/manager/module/call_log.php @@ -9,34 +9,6 @@ class call_log{ - /* FONCTION QUI FORMATTE UN NUMÉRO DE TÉLÉPHONE - * - * @number Numéro de téléphone en +336/336/06 - * - * @return formatted Numéro formatté (06), on FALSE si erreur - * - */ - private static function formatNumber($number){ - // On met en quel que soit le type - $number = (string) $number; - - // On supprime tous les espaces - $number = str_replace(' ', '', $number); - - // On formatte le numéro - if( preg_match("/^(?:\+33|0?0?33|0)(.+)/", $number, $m) ) - $number = '0'.$m[1]; - - // On retourne le numéro formatté - return $number; - } - - - - - - - /* DESERIALISATION D'UN JOURNAL D'APPEL * * @content Le contenu du journal d'appel a deserialiser @@ -51,7 +23,7 @@ extract($params); // On formatte le numéro de téléphone - $phone_number = self::formatNumber($phone_number); + $phone_number = Database::formatNumber($phone_number); /* [1] On parse/récupère le xml =========================================================*/ @@ -68,7 +40,7 @@ foreach($xml->Item as $log){ /* (1) On formatte le numéro */ - $number = self::formatNumber($log['Number']); + $number = Database::formatNumber($log['Number']); /* (2) On enregistre le contact dans l'annuaire s'il y est pas déjà */ if( !isset($phone_directory[$number]) ) @@ -76,8 +48,8 @@ /* (3) On complète le log */ $phone_log = array( - 'source' => ($log['Direction']=='INCOMING') ? $number : self::formatNumber($phone_number), - 'target' => ($log['Direction']=='INCOMING') ? self::formatNumber($phone_number) : $number, + 'source' => ($log['Direction']=='INCOMING') ? $number : Database::formatNumber($phone_number), + 'target' => ($log['Direction']=='INCOMING') ? Database::formatNumber($phone_number) : $number, 'type' => strtolower($log['Type']), 'date' => strtotime($log['Date']), 'duration' => (int) $log['Duration'] diff --git a/manager/module/subject.php b/manager/module/subject.php index eaaabc7..ce94c1a 100644 --- a/manager/module/subject.php +++ b/manager/module/subject.php @@ -68,29 +68,26 @@ /* CREATION D'UN SUJET * - * @login Login (identifiant) du sujet - * @password Password du sujet - * @mail Adresse mail du sujet - * @reference Reference vers une Personne (sinon NULL) - * @permissions Liste des permissions du sujet + * @username Pseudo du sujet + * @firstname Prénom du sujet + * @lastname Nom du sujet + * @id_facebook Id facebook du sujet (optionnel) + * @number Numéro de téléphone du sujet (optionnel) * * @return id_subject Renvoie l'id du sujet cree * */ public static function create($params){ - var_dump($params); extract($params); /* [0] Verification et formattage des INPUT =========================================================*/ - $password = sessionManager::sha1($password); - $reference = (is_numeric($reference)) ? (int) $reference : null; - $permission = ($permission=='admin') ? 'admin' : 'subject'; - + $id_facebook = !is_null($id_facebook) ? (int) $id_facebook : null; + $number = !is_null($number) ? Database::formatNumber($number) : null; /* [1] Creation du sujet =========================================================*/ - $create = new Repo('subject/create', array($login, $password, $mail, $reference, $permission)); + $create = new Repo('subject/create', array($username, $firstname, $lastname, $id_facebook, $number)); $created_id = $create->answer(); // Si erreur de creation, on retourne une erreur @@ -100,7 +97,7 @@ =========================================================*/ return array( 'ModuleError' => ManagerError::Success, - 'id_subject' => $created_id + 'id_subject' => $created_id ); } diff --git a/manager/repo/subject.php b/manager/repo/subject.php index 9402b41..0b364f9 100644 --- a/manager/repo/subject.php +++ b/manager/repo/subject.php @@ -71,47 +71,41 @@ /* CREE UN SUJET * - * @login Login (identifiant) du sujet - * @password Password du sujet - * @mail Adresse mail du sujet - * @reference Reference vers une Personne (sinon NULL) - * @permissions Liste des permissions du sujet + * @username Pseudo du sujet + * @firstname Prénom du sujet + * @lastname Nom du sujet + * @id_facebook Id facebook du sujet (optionnel) + * @number Numéro de téléphone du sujet (optionnel) * * @return id_subject Renvoie l'id du sujet cree ou FALSE si erreur * */ - public static function create($login, $password, $mail, $reference, $permission){ + public static function create($username, $firstname, $lastname, $id_facebook, $number){ /* [0] Verification et formattage des INPUT =========================================================*/ - $checkInput = Database::check('sha1', $password); - $checkInput = $checkInput && ( Database::check('id', $reference) || $reference === null ); - $checkInput = $checkInput && in_array($permission, array('admin', 'subject')); + $checkInput = Database::check('varchar(0,30)', $username); + $checkInput = $checkInput && Database::check('varchar(0,30)', $firstname); + $checkInput = $checkInput && Database::check('varchar(0,30)', $lastname); + $checkInput = $checkInput && !!strlen($username.$firstname.$lastname); // Pseudo, prénom, ou nom, au moins un n'est pas vide + $checkInput = $checkInput && ( Database::check('id', $id_facebook) || is_null($id_facebook) ); + $checkInput = $checkInput && ( Database::check('number', $number) || is_null($number) ); // Si erreur en entree, on retourne FAUX if( !$checkInput ) return false; - - /* [1] On verifie que le login/mail et reference sont uniques + /* [1] On écrit la requête =========================================================*/ - $checkUnique = Database::getPDO()->prepare("SELECT id_subject - FROM subjects - WHERE login = :login - OR mail = :mail - OR ( reference = :reference AND reference is not NULL )"); - $checkUnique->execute(array( - ':login' => $login, - ':mail' => $mail, - ':reference' => $reference - )); - $unique = $checkUnique->fetch() === false; + $request_create = 'INSERT INTO Personnes(idPersonne, pseudo, nom, prenom, id_facebook, telephone) '; + $request_create .= 'VALUES ('; + $request_create .= 'DEFAULT, '; // idPersone + $request_create .= strlen($username) ? ':pseudo, ' : 'NULL, '; // pseudo + $request_create .= strlen($lastname) ? ':nom, ' : 'NULL, '; // nom + $request_create .= strlen($firstname) ? ':prenom, ' : 'NULL, '; // prenom + $request_create .= !is_null($id_facebook) ? ':id_facebook, ' : 'NULL, '; // Id facebook + $request_create .= !is_null($number) ? ':number, ' : 'NULL, '; // Numéro de tél + $request_create .= ')'; - // Si un sujet a le meme LOGIN/MAIL ou REFERENCE, on retourne une erreur - if( !$unique ) return false; - - - /* [2] Creation du sujet - =========================================================*/ - /* (1) Si reference NULL */ + /* (1) Si id_facebook NULL */ if( $reference == null ){ $create = Database::getPDO()->prepare("INSERT INTO subjects(id_subject, login, password, mail, reference, permission) diff --git a/manager/repo/user.php b/manager/repo/user.php index cd59f20..71a5119 100755 --- a/manager/repo/user.php +++ b/manager/repo/user.php @@ -126,7 +126,7 @@ /* [0] Verification et formattage des INPUT =========================================================*/ $checkInput = Database::check('sha1', $password); - $checkInput = $checkInput && ( Database::check('id', $reference) || $reference === null ); + $checkInput = $checkInput && ( Database::check('id', $reference) || is_null($reference) ); $checkInput = $checkInput && in_array($permission, array('admin', 'subject')); // Si erreur en entree, on retourne FAUX diff --git a/phpunit/coverage/Database.php.html b/phpunit/coverage/Database.php.html index 7822670..8f67e86 100755 --- a/phpunit/coverage/Database.php.html +++ b/phpunit/coverage/Database.php.html @@ -51,22 +51,22 @@
0.00%
0 / 1
-
- 42.86% covered (danger) +
+ 37.50% covered (danger)
-
42.86%
-
3 / 7
+
37.50%
+
3 / 8
CRAP
-
- 83.33% covered (warning) +
+ 78.65% covered (warning)
-
83.33%
-
70 / 84
+
78.65%
+
70 / 89
@@ -80,22 +80,22 @@
0.00%
0 / 1
-
- 42.86% covered (danger) +
+ 37.50% covered (danger)
-
42.86%
-
3 / 7
- 63.04 +
37.50%
+
3 / 8
+ 80.33
-
- 83.33% covered (warning) +
+ 78.65% covered (warning)
-
83.33%
-
70 / 84
+
78.65%
+
70 / 89
@@ -225,7 +225,28 @@ -  frDate +  formatNumber +
+
+ 0.00% covered (danger) +
+
+ +
0.00%
+
0 / 1
+ 6 +
+
+ 0.00% covered (danger) +
+
+ +
0.00%
+
0 / 5
+ + + +  frDate
0.00% covered (danger) @@ -514,45 +535,71 @@         } -         //////////////////////////////////// -         //      _       _ -         //   __| | __ _| |_ ___  ___ -         //  / _` |/ _` | __/ _ \/ __| -         // | (_| | (_| | ||  __/\__ \ -         //  \__,_|\__,_|\__\___||___/ -         // -         //////////////////////////////////// -         // 1) Convertis une date en en francais explicite -         public static function frDate($date){ -             /* [1] On definit les traductions -             =========================================================*/ -             // Jours de la semaine -             $days   = array("Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche"); -             // Mois de l'annee -             $months = array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"); + + + +         /* FONCTION QUI FORMATTE UN NUMÉRO DE TÉLÉPHONE +         * +         * @number<String>                                         Numéro de téléphone en +336/336/06/0336/00336 +         * +         * @return formatted<String>                             Numéro formatté (06), on FALSE si erreur +         * +         */ +         public static function formatNumber($number){ +             // On met en <string> quel que soit le type +             $number = (string) $number; + +             // On supprime tous les espaces +             $number = str_replace(' ', '', $number); -             /* [2] On recupere le timestamp et les indices -             =========================================================*/ -             $time = strtotime($date); // timestamp -             $daynum = intval( date('N', $time)-1 ); // jour dans la semaine -             $monthnum = intval( date('n', $time)-1 ); // numero du mois dans l'annee - - -             /* [3] On recupere les infos independemment -             =========================================================*/ -             $result = array( -                 $days[$daynum],     // nom de jour -                 date('j', $time),   // jour du mois -                 $months[$monthnum], // nom du mois -                 date('Y', $time),   // annee -             ); - - -             return implode(" ", $result); -         } - -     } - ?> +             // On formatte le numéro +             if( preg_match("/^(?:\+33|0?0?33|0)(.+)/", $number, $m) ) +                 $number = '0'.$m[1]; + +             // On retourne le numéro formatté +             return $number; +         } + + +         //////////////////////////////////// +         //      _       _ +         //   __| | __ _| |_ ___  ___ +         //  / _` |/ _` | __/ _ \/ __| +         // | (_| | (_| | ||  __/\__ \ +         //  \__,_|\__,_|\__\___||___/ +         // +         //////////////////////////////////// +         // 1) Convertis une date en en francais explicite +         public static function frDate($date){ +             /* [1] On definit les traductions +             =========================================================*/ +             // Jours de la semaine +             $days   = array("Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche"); +             // Mois de l'annee +             $months = array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"); + +             /* [2] On recupere le timestamp et les indices +             =========================================================*/ +             $time = strtotime($date); // timestamp +             $daynum = intval( date('N', $time)-1 ); // jour dans la semaine +             $monthnum = intval( date('n', $time)-1 ); // numero du mois dans l'annee + + +             /* [3] On recupere les infos independemment +             =========================================================*/ +             $result = array( +                 $days[$daynum],     // nom de jour +                 date('j', $time),   // jour du mois +                 $months[$monthnum], // nom du mois +                 date('Y', $time),   // annee +             ); + + +             return implode(" ", $result); +         } + +     } + ?> @@ -565,7 +612,7 @@ Dead Code

- Generated by PHP_CodeCoverage 2.1.7 using PHP 5.6.11-1ubuntu3.1 and PHPUnit 4.7.6 at Mon Apr 18 17:06:21 UTC 2016. + Generated by PHP_CodeCoverage 2.1.7 using PHP 5.6.11-1ubuntu3.1 and PHPUnit 4.7.6 at Mon Apr 18 20:36:30 UTC 2016.

diff --git a/phpunit/coverage/ManagerError.php.html b/phpunit/coverage/ManagerError.php.html index e1cc099..6051d52 100755 --- a/phpunit/coverage/ManagerError.php.html +++ b/phpunit/coverage/ManagerError.php.html @@ -247,7 +247,7 @@ Dead Code

- Generated by PHP_CodeCoverage 2.1.7 using PHP 5.6.11-1ubuntu3.1 and PHPUnit 4.7.6 at Mon Apr 18 17:06:21 UTC 2016. + Generated by PHP_CodeCoverage 2.1.7 using PHP 5.6.11-1ubuntu3.1 and PHPUnit 4.7.6 at Mon Apr 18 20:36:30 UTC 2016.

diff --git a/phpunit/coverage/ResourceDispatcher.php.html b/phpunit/coverage/ResourceDispatcher.php.html index 93bd24b..9bb2f42 100755 --- a/phpunit/coverage/ResourceDispatcher.php.html +++ b/phpunit/coverage/ResourceDispatcher.php.html @@ -517,7 +517,7 @@ Dead Code

- Generated by PHP_CodeCoverage 2.1.7 using PHP 5.6.11-1ubuntu3.1 and PHPUnit 4.7.6 at Mon Apr 18 17:06:21 UTC 2016. + Generated by PHP_CodeCoverage 2.1.7 using PHP 5.6.11-1ubuntu3.1 and PHPUnit 4.7.6 at Mon Apr 18 20:36:30 UTC 2016.

diff --git a/phpunit/coverage/autoloader.php.html b/phpunit/coverage/autoloader.php.html index c91c9c1..eb4efed 100755 --- a/phpunit/coverage/autoloader.php.html +++ b/phpunit/coverage/autoloader.php.html @@ -214,7 +214,7 @@ Dead Code

- Generated by PHP_CodeCoverage 2.1.7 using PHP 5.6.11-1ubuntu3.1 and PHPUnit 4.7.6 at Mon Apr 18 17:06:21 UTC 2016. + Generated by PHP_CodeCoverage 2.1.7 using PHP 5.6.11-1ubuntu3.1 and PHPUnit 4.7.6 at Mon Apr 18 20:36:30 UTC 2016.

diff --git a/phpunit/coverage/index.html b/phpunit/coverage/index.html index c7cb0bc..fc1de51 100755 --- a/phpunit/coverage/index.html +++ b/phpunit/coverage/index.html @@ -43,21 +43,21 @@ Total
-
- 67.67% covered (warning) +
+ 66.83% covered (warning)
-
67.67%
-
270 / 399
+
66.83%
+
270 / 404
-
- 45.45% covered (danger) +
+ 44.44% covered (danger)
-
45.45%
-
20 / 44
+
44.44%
+
20 / 45
11.11% covered (danger) @@ -127,21 +127,21 @@ Database.php
-
- 83.33% covered (warning) +
+ 78.65% covered (warning)
-
83.33%
-
70 / 84
+
78.65%
+
70 / 89
-
- 42.86% covered (danger) +
+ 37.50% covered (danger)
-
42.86%
-
3 / 7
+
37.50%
+
3 / 8
0.00% covered (danger) @@ -350,7 +350,7 @@ High: 90% to 100%

- Generated by PHP_CodeCoverage 2.1.7 using PHP 5.6.11-1ubuntu3.1 and PHPUnit 4.7.6 at Mon Apr 18 17:06:21 UTC 2016. + Generated by PHP_CodeCoverage 2.1.7 using PHP 5.6.11-1ubuntu3.1 and PHPUnit 4.7.6 at Mon Apr 18 20:36:30 UTC 2016.

diff --git a/phpunit/coverage/sessionManager.php.html b/phpunit/coverage/sessionManager.php.html index 5859ff4..f0d06d6 100755 --- a/phpunit/coverage/sessionManager.php.html +++ b/phpunit/coverage/sessionManager.php.html @@ -315,7 +315,7 @@ Dead Code

- Generated by PHP_CodeCoverage 2.1.7 using PHP 5.6.11-1ubuntu3.1 and PHPUnit 4.7.6 at Mon Apr 18 17:06:21 UTC 2016. + Generated by PHP_CodeCoverage 2.1.7 using PHP 5.6.11-1ubuntu3.1 and PHPUnit 4.7.6 at Mon Apr 18 20:36:30 UTC 2016.