Commit 35c0c64ddfcf46dee003d13c16161ea339ed0db0

Authored by Geoffrey PREUD'HOMME
1 parent 3fa29605

api/utilisateur/{ajout,supprim}er

... ... @@ -2,7 +2,7 @@ CREATE TABLE Utilisateurs (
2 2 loginLille1 char(30),
3 3 idCarte char(8),
4 4 login char(30) PRIMARY KEY,
5   - mdp char(60),
  5 + mdp char(255),
6 6 droit integer DEFAULT '0'
7 7 );
8 8  
... ...
api/commun.php
... ... @@ -33,7 +33,9 @@ function donne($parametre) { // Vérifie si le paramètre est donné
33 33 function supprimerJeton($jeton) {
34 34 $requete = $db->prepare("DELETE FROM Sessions WHERE jeton=?");
35 35 $requete->bind_param("s", $jeton);
36   - $requete->execute();
  36 + if (!$requete->execute()) {
  37 + retour("erreur_bdd", ["message" => $requete->error]);
  38 + }
37 39 $requete->close();
38 40 }
39 41  
... ... @@ -41,7 +43,9 @@ function verifierJeton($jeton) {
41 43 global $db, $login, $droit;
42 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 45 $requete->bind_param("s", $jeton);
44   - $requete->execute();
  46 + if (!$requete->execute()) {
  47 + retour("erreur_bdd", ["message" => $requete->error]);
  48 + }
45 49 $requete->bind_result($login, $droit, $date);
46 50 if ($requete->fetch()) {
47 51 if (time() > $date + JETON_DUREE) {
... ... @@ -53,6 +57,29 @@ function verifierJeton($jeton) {
53 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 83 // Variables globales
57 84  
58 85 $login = "";
... ... @@ -65,11 +92,5 @@ if ($db-&gt;connect_error) {
65 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 @@
  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 19 $login = donne("login");
20 20 $requete = $db->prepare("SELECT mdp FROM Utilisateurs WHERE login = ?");
21 21 $requete->bind_param("s", $login);
22   - $requete->execute();
  22 + if (!$requete->execute()) {
  23 + retour("erreur_bdd", ["message" => $requete->error]);
  24 + }
23 25 $requete->bind_result($mdpHash);
24 26 if ($requete->fetch()) {
25 27 if (!password_verify(donne("mdp"), $mdpHash)) {
... ... @@ -42,14 +44,18 @@ $jeton = random_str(JETON_TAILLE);
42 44  
43 45 $requete = $db->prepare("INSERT INTO Sessions (jeton, utilisateur) VALUES (?, ?)");
44 46 $requete->bind_param("ss", $jeton, $login);
45   -$requete->execute();
  47 +if (!$requete->execute()) {
  48 + retour("erreur_bdd", ["message" => $requete->error]);
  49 +}
46 50 $requete->close();
47 51  
48 52 // Récupération des données de l'utilisateur
49 53  
50 54 $requete = $db->prepare("SELECT droit FROM Utilisateurs WHERE login = ?");
51 55 $requete->bind_param("s", $login);
52   -$requete->execute();
  56 +if (!$requete->execute()) {
  57 + retour("erreur_bdd", ["message" => $requete->error]);
  58 +}
53 59 $requete->bind_result($droit);
54 60 $requete->fetch();
55 61 $requete->close();
... ...
api/utilisateur/deconnexion.php
... ... @@ -2,14 +2,7 @@
2 2  
3 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 7 supprimerJeton(donne("jeton"));
15 8  
... ...
api/utilisateur/supprimer.php 0 → 100644
... ... @@ -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 +?>
... ...