/** * Charge un droit identifié par son ID. * * @param string $right */ public static function findByName($right) { // Vérifie que l'email est de format text. if (!Tools::isStringValid($right)) { return null; } try { // Effectue une connexion à la DB. $pdo = DBconnect(); // Prépare la requête. $stmt = $pdo->prepare("SELECT * FROM t_right WHERE `right` = :right"); // Set les paramètres $stmt->bindParam(':right', $right); // Execute la requête. if ($stmt->execute()) { // Set le type de traitement de la réponse. $stmt->setFetchMode(PDO::FETCH_CLASS, 'Right'); // Récupère le résultat de la requête. if ($r = $stmt->fetch()) { return $r; } } // Retourne un objet null si l'utilisateur n'a pas été récuperé. return null; } catch (Exception $e) { // Retourne un objet null si une erreur c'est produite. return null; } finally { // Ferme le traitement. $stmt->closeCursor(); // Ferme la connexion vers la base de donnée. $pdo = null; } }
if (Right::findByName($right) == null) { $formValid = false; $errors["right"] = "You must select a correct user right."; } if ($formValid) { try { User::create($email, $pwd, $right, $actif); } catch (Exception $e) { $formValid = false; $errors["other"] = $e->getMessage(); } } } } else { if (isset($get)) { if (Tools::isStringValid($get) && isDetail($get)) { $type = $get; $id = Tools::prepareUserArgInteger($_GET["id"]); $usr = User::findById($id); if ($usr == null) { $errors["id"] = "The user " . $id . " doesn't exist."; } } } } } } ?> <!DOCTYPE html> <html lang="en">
/** * Vérifie que le mot de passe est valide. * * @param string $pwd * @return boolean */ public function isPasswordCorrect($pwd) { // Vérifie que l'email est de format text. if (!Tools::isStringValid($pwd)) { // Do a dummy hash to remains in constant time. Tools::doHash("1234", "12345678"); return false; } return Tools::doHash($pwd, $this->salt) === $this->password; }
<?php include_once 'includes/config.php'; /* * Traitement */ if (Session::isAlreadyConnected()) { $page = "inbox"; $get = Tools::prepareUserArgString($_GET["page"]); if (isset($get)) { if (Tools::isStringValid($get) && ($get == "inbox" || $get == "send")) { $page = $get; } } } ?> <!DOCTYPE html> <html lang="en"> <head> <title>STI 2</title> <?php include $BOOTSTRAP_STYLE; ?> </head> <body> <?php include $HEADER; ?> <div class="container-fluid"> <?php
if (!Tools::verifyEmail($to)) { $errors["email"] = "Invalid email format"; } else { if (User::findByEmail($to) == null) { $errors["email"] = "Unknow email address"; } else { try { $message = Message::create($subject, $texte, Session::getSessionEmail(), $to); } catch (Exception $e) { $errors["other"] = $e->getMessage(); } } } } else { if (isset($get)) { if (Tools::isStringValid($get) && isGetType($type)) { $type = $get; if (!isNew($type)) { $id = Tools::prepareUserArgInteger($_GET["id"]); try { $message = Message::readMessage($get, Session::getSessionEmail(), $id); if (isReceive($type)) { $message->setUnread(false, Session::getSessionEmail())->doUpdate(); } } catch (Exception $e) { $validRequest = false; } } } } }
/** * * @param unknown $type * @param unknown $email * @param unknown $id * @throws Exception */ public static function readMessage($type, $email, $id) { // Vérifie que les champs soit du bon format. if (!Tools::isStringValid($type) || !Tools::isStringValid($email) || !Tools::isIntegerValid($id)) { throw new Exception("Invalid argument"); } $message = self::findById($id); if ($message == null) { throw new Exception("Invalid id message"); } $validRequest = true; switch ($type) { case "modify": case "send": $validRequest = $message->sender == $email; break; case "receive": case "answer": $validRequest = $message->receiver == $email; break; default: throw new Exception("Unknown type"); break; } if ($validRequest) { return $message; } else { throw new Exception("Incorrect action"); } }