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
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->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 | ?> | ... | ... |
... | ... | @@ -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 | 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
... | ... | @@ -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 | +?> | ... | ... |