Commit 35c0c64ddfcf46dee003d13c16161ea339ed0db0

Authored by Geoffrey PREUD'HOMME
1 parent 3fa29605

api/utilisateur/{ajout,supprim}er

@@ -2,7 +2,7 @@ CREATE TABLE Utilisateurs ( @@ -2,7 +2,7 @@ CREATE TABLE Utilisateurs (
2 loginLille1 char(30), 2 loginLille1 char(30),
3 idCarte char(8), 3 idCarte char(8),
4 login char(30) PRIMARY KEY, 4 login char(30) PRIMARY KEY,
5 - mdp char(60), 5 + mdp char(255),
6 droit integer DEFAULT '0' 6 droit integer DEFAULT '0'
7 ); 7 );
8 8
@@ -33,7 +33,9 @@ function donne($parametre) { // Vérifie si le paramètre est donné @@ -33,7 +33,9 @@ function donne($parametre) { // Vérifie si le paramètre est donné
33 function supprimerJeton($jeton) { 33 function supprimerJeton($jeton) {
34 $requete = $db->prepare("DELETE FROM Sessions WHERE jeton=?"); 34 $requete = $db->prepare("DELETE FROM Sessions WHERE jeton=?");
35 $requete->bind_param("s", $jeton); 35 $requete->bind_param("s", $jeton);
36 - $requete->execute(); 36 + if (!$requete->execute()) {
  37 + retour("erreur_bdd", ["message" => $requete->error]);
  38 + }
37 $requete->close(); 39 $requete->close();
38 } 40 }
39 41
@@ -41,7 +43,9 @@ function verifierJeton($jeton) { @@ -41,7 +43,9 @@ function verifierJeton($jeton) {
41 global $db, $login, $droit; 43 global $db, $login, $droit;
42 $requete = $db->prepare("SELECT Utilisateurs.login, Utilisateurs.droit, UNIX_TIMESTAMP(Sessions.date) FROM Utilisateurs JOIN Sessions ON Utilisateurs.login=Sessions.utilisateur WHERE Sessions.jeton=?"); 44 $requete = $db->prepare("SELECT Utilisateurs.login, Utilisateurs.droit, UNIX_TIMESTAMP(Sessions.date) FROM Utilisateurs JOIN Sessions ON Utilisateurs.login=Sessions.utilisateur WHERE Sessions.jeton=?");
43 $requete->bind_param("s", $jeton); 45 $requete->bind_param("s", $jeton);
44 - $requete->execute(); 46 + if (!$requete->execute()) {
  47 + retour("erreur_bdd", ["message" => $requete->error]);
  48 + }
45 $requete->bind_result($login, $droit, $date); 49 $requete->bind_result($login, $droit, $date);
46 if ($requete->fetch()) { 50 if ($requete->fetch()) {
47 if (time() > $date + JETON_DUREE) { 51 if (time() > $date + JETON_DUREE) {
@@ -53,6 +57,29 @@ function verifierJeton($jeton) { @@ -53,6 +57,29 @@ function verifierJeton($jeton) {
53 $requete->close(); 57 $requete->close();
54 } 58 }
55 59
  60 +function verifierDroit($droitMinimum) {
  61 + global $droit;
  62 + if (donne("jeton")) {
  63 + verifierJeton(donne("jeton"));
  64 + if ($droit < $droitMinimum) {
  65 + retour("droits_insuffisants");
  66 + }
  67 + } else {
  68 + retour("jeton_vide");
  69 + }
  70 +}
  71 +
  72 +function utilisateurExiste($login) {
  73 + global $db;
  74 + $requete = $db->prepare("SELECT login FROM Utilisateurs WHERE login=?");
  75 + $requete->bind_param("s", $login);
  76 + if (!$requete->execute()) {
  77 + retour("erreur_bdd", ["message" => $requete->error]);
  78 + }
  79 + return $requete->fetch();
  80 + $requete->close();
  81 +}
  82 +
56 // Variables globales 83 // Variables globales
57 84
58 $login = ""; 85 $login = "";
@@ -65,11 +92,5 @@ if ($db-&gt;connect_error) { @@ -65,11 +92,5 @@ if ($db-&gt;connect_error) {
65 retour("erreur_bdd", ["message" => $db->connect_error]); 92 retour("erreur_bdd", ["message" => $db->connect_error]);
66 } 93 }
67 94
68 -// Vérification de la présence de bcrypt  
69 -if (!defined("CRYPT_BLOWFISH") || !CRYPT_BLOWFISH) {  
70 - retour("manque_bcrypt");  
71 -}  
72 -  
73 -  
74 95
75 ?> 96 ?>
api/utilisateur/ajouter.php 0 → 100644
@@ -0,0 +1,27 @@ @@ -0,0 +1,27 @@
  1 +<?php
  2 +
  3 +require_once("../commun.php");
  4 +
  5 +verifierDroit(3);
  6 +
  7 +if (!(donne("login") && donne("mdp") && donne("droit"))) {
  8 + retour("requete_malformee");
  9 +}
  10 +
  11 +if (utilisateurExiste(donne("login"))) {
  12 + retour("utilisateur_existant");
  13 +}
  14 +
  15 +$requete = $db->prepare("INSERT INTO Utilisateurs (login, mdp, droit) VALUES (?, ?, ?)");
  16 +$mdpHash = password_hash($_POST["mdp"], PASSWORD_DEFAULT);
  17 +$requete->bind_param("sss", $_POST["login"], $mdpHash, $_POST["droit"]);
  18 +if (!$requete->execute()) {
  19 + retour("erreur_bdd", ["message" => $requete->error]);
  20 +}
  21 +$requete->close();
  22 +
  23 +// TODO loginLille1 && idCarte
  24 +
  25 +retour("ok");
  26 +
  27 +?>
api/utilisateur/connexion.php
@@ -19,7 +19,9 @@ if (donne(&quot;login&quot;) &amp;&amp; donne(&quot;mdp&quot;)) { @@ -19,7 +19,9 @@ if (donne(&quot;login&quot;) &amp;&amp; donne(&quot;mdp&quot;)) {
19 $login = donne("login"); 19 $login = donne("login");
20 $requete = $db->prepare("SELECT mdp FROM Utilisateurs WHERE login = ?"); 20 $requete = $db->prepare("SELECT mdp FROM Utilisateurs WHERE login = ?");
21 $requete->bind_param("s", $login); 21 $requete->bind_param("s", $login);
22 - $requete->execute(); 22 + if (!$requete->execute()) {
  23 + retour("erreur_bdd", ["message" => $requete->error]);
  24 + }
23 $requete->bind_result($mdpHash); 25 $requete->bind_result($mdpHash);
24 if ($requete->fetch()) { 26 if ($requete->fetch()) {
25 if (!password_verify(donne("mdp"), $mdpHash)) { 27 if (!password_verify(donne("mdp"), $mdpHash)) {
@@ -42,14 +44,18 @@ $jeton = random_str(JETON_TAILLE); @@ -42,14 +44,18 @@ $jeton = random_str(JETON_TAILLE);
42 44
43 $requete = $db->prepare("INSERT INTO Sessions (jeton, utilisateur) VALUES (?, ?)"); 45 $requete = $db->prepare("INSERT INTO Sessions (jeton, utilisateur) VALUES (?, ?)");
44 $requete->bind_param("ss", $jeton, $login); 46 $requete->bind_param("ss", $jeton, $login);
45 -$requete->execute(); 47 +if (!$requete->execute()) {
  48 + retour("erreur_bdd", ["message" => $requete->error]);
  49 +}
46 $requete->close(); 50 $requete->close();
47 51
48 // Récupération des données de l'utilisateur 52 // Récupération des données de l'utilisateur
49 53
50 $requete = $db->prepare("SELECT droit FROM Utilisateurs WHERE login = ?"); 54 $requete = $db->prepare("SELECT droit FROM Utilisateurs WHERE login = ?");
51 $requete->bind_param("s", $login); 55 $requete->bind_param("s", $login);
52 -$requete->execute(); 56 +if (!$requete->execute()) {
  57 + retour("erreur_bdd", ["message" => $requete->error]);
  58 +}
53 $requete->bind_result($droit); 59 $requete->bind_result($droit);
54 $requete->fetch(); 60 $requete->fetch();
55 $requete->close(); 61 $requete->close();
api/utilisateur/deconnexion.php
@@ -2,14 +2,7 @@ @@ -2,14 +2,7 @@
2 2
3 require_once("../commun.php"); 3 require_once("../commun.php");
4 4
5 -  
6 -// Vérification des paramètres  
7 -  
8 -if (!donne("jeton")) {  
9 - retour("requete_malformee");  
10 -}  
11 -  
12 -verifierJeton(donne("jeton")); 5 +verifierDroit(0);
13 6
14 supprimerJeton(donne("jeton")); 7 supprimerJeton(donne("jeton"));
15 8
api/utilisateur/supprimer.php 0 → 100644
@@ -0,0 +1,24 @@ @@ -0,0 +1,24 @@
  1 +<?php
  2 +
  3 +require_once("../commun.php");
  4 +
  5 +verifierDroit(3);
  6 +
  7 +if (!(donne("login"))) {
  8 + retour("requete_malformee");
  9 +}
  10 +
  11 +if (!utilisateurExiste(donne("login"))) {
  12 + retour("utilisateur_inconnu");
  13 +}
  14 +
  15 +$requete = $db->prepare("DELETE FROM Utilisateurs WHERE login=?");
  16 +$requete->bind_param("s", $_POST["login"]);
  17 +if (!$requete->execute()) {
  18 + retour("erreur_bdd", ["message" => $requete->error]);
  19 +}
  20 +$requete->close();
  21 +
  22 +retour("ok");
  23 +
  24 +?>