Commit 35c0c64ddfcf46dee003d13c16161ea339ed0db0
1 parent
3fa29605
api/utilisateur/{ajout,supprim}er
Showing
6 changed files
with
91 additions
and
20 deletions
Show diff stats
BDD.sql
@@ -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 |
api/commun.php
@@ -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->connect_error) { | @@ -65,11 +92,5 @@ if ($db->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 | ?> |
@@ -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("login") && donne("mdp")) { | @@ -19,7 +19,9 @@ if (donne("login") && donne("mdp")) { | ||
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 |
@@ -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 | +?> |