Remplissage des fonctions de Authentification + Session.
Les fonctions de gestion des donnes de session on t dplaces dans une classe spare. Le code de manipulation des comptes utilisateurs a t dplac depuis le module AdminUtilisateurs vers Authentification.
This commit is contained in:
parent
ad971299fb
commit
96c1d1d375
|
@ -19,23 +19,26 @@ class AdminUtilisateurs {
|
|||
// Solution B :
|
||||
} else {
|
||||
if (is_set($paramètres["nouveau_nom"]) && ($action == "nouvelle_page")) {
|
||||
// TODO : SECURITE : Si la page existe déjà, laisser tomber !
|
||||
Stockage::nouvelle_page($singleton, $paramètres["nouveau_nom"]);
|
||||
Authentification::nouvel_utilisateur($paramètres["nouveau_nom"]);
|
||||
$paramètres["nom"] = $paramètres["nouveau_nom"];
|
||||
// TODO : message de confirmation quelque part ?
|
||||
}
|
||||
|
||||
if (is_set($paramètres["nouveau_nom"]) && is_set($paramètres["nom"])) {
|
||||
// renomer la page $paramètres["nom"]
|
||||
if (is_set($paramètres["nom"]) && is_set($paramètres["nouveau_nom"]) && ($action != "nouvelle_page")) {
|
||||
Authentification::renomer_utilisateur($paramètres["nom"], $paramètres["nouveau_nom"]);
|
||||
$paramètres["nom"] = $paramètres["nouveau_nom"];
|
||||
}
|
||||
|
||||
if (is_set($paramètres["mot_de_passe"]) && is_set($paramètres["nom"])) {
|
||||
Stockage::set_pop($singleton->enfant($paramètres["nom"]), "mot_de_passe", $paramètres["mot_de_passe"]);
|
||||
if (is_set($paramètres["nom"]) && is_set($paramètres["mot_de_passe"])) {
|
||||
Authentification::set_mot_de_passe($paramètres["nom"], $paramètres["mot_de_passe"]);
|
||||
}
|
||||
|
||||
if (is_set($paramètres["peut_se_connecter"]) && is_set($paramètres["nom"])) {
|
||||
Stockage::set_pop($singleton->enfant($paramètres["nom"]), "peut_se_connecter", $paramètres["peut_se_connecter"]);
|
||||
if (is_set($paramètres["nom"]) && is_set($paramètres["groupe"])) {
|
||||
Authentification::set_groupe($paramètres["nom"], $paramètres["groupe"]);
|
||||
}
|
||||
|
||||
if (is_set($paramètres["nom"]) && is_set($paramètres["peut_se_connecter"])) {
|
||||
Authentification::set_peut_se_connecter($paramètres["nom"], ($paramètres["peut_se_connecter"] == "true"));
|
||||
}
|
||||
|
||||
if (is_set($paramètres["vue"])) {
|
||||
|
|
|
@ -1,41 +1,73 @@
|
|||
<?php
|
||||
|
||||
function connexion($utilisateur, $mdp) {
|
||||
// vérifie si $utilisateur a pour mot de passe $mdp.
|
||||
// Si oui, on place une variable de session, et on renvoie true.
|
||||
// (Note : session_start doit avoir été exécuté avant.)
|
||||
// La variable de session contient $utilisateur (vérifier si c'est sécurisé...)
|
||||
// Si non, on renvoie false.
|
||||
}
|
||||
|
||||
function déconnexion() {
|
||||
// Efface la variable de session positionnée par connexion().
|
||||
}
|
||||
|
||||
function get_utilisateur() {
|
||||
// Renvoie $utilisateur s'il est connecté, false sinon.
|
||||
}
|
||||
|
||||
function nouvel_utilisateur($utilisateur) {
|
||||
// Crée un nouvel utilisateur nommé $utilisateur.
|
||||
// Lui affecte un mot de passe aléatoire.
|
||||
// Positionne son groupe à "anonyme".
|
||||
}
|
||||
|
||||
function set_groupe($utilisateur, $groupe) {
|
||||
// Positionne le groupe de $utilisateur à $groupe.
|
||||
}
|
||||
|
||||
function get_groupe($utilisateur) {
|
||||
// Renvoie le groupe de $utilisateur.
|
||||
}
|
||||
|
||||
function supprimer_utilisateur($utilisateur) {
|
||||
// Supprime l'utilisateur créé par nouvel_utilisateur
|
||||
}
|
||||
|
||||
function get_mot_de_passe($utilisateur) {
|
||||
// Renvoie le mot de passe de $utilisateur
|
||||
class Authentification {
|
||||
private $singleton = new Chemin("/admin/utilisateurs/");
|
||||
|
||||
public function connexion($nom_utilisateur, $mdp) {
|
||||
$mdp_réel = Stockage::get_prop(self::$singleton->enfant($nom_utilisateur), "mot_de_passe");
|
||||
$peut_se_connecter = Stockage::get_prop(self::$singleton->enfant($nom_utilisateur), "peut_se_connecter");
|
||||
if ($mdp == $mdp_réel && $peut_se_connecter === "true") { // Triple égale. Pas d'entourloupe avec des casts miteux !
|
||||
// TODO : Vérifier si c'est sécurisé => stocké _uniquement_ sur le serveur.
|
||||
Session::put("utilisateur", $nom_utilisateur);
|
||||
return true;
|
||||
} else {
|
||||
Session::effacer("utilisateur");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public function déconnexion() {
|
||||
Session::effacer("utilisateur");
|
||||
}
|
||||
|
||||
public function get_utilisateur() {
|
||||
Session::get("utilisateur");
|
||||
}
|
||||
|
||||
public function nouvel_utilisateur($nom_utilisateur) {
|
||||
// TODO : SECURITE : Si la page existe déjà, laisser tomber !
|
||||
Stockage::nouvelle_page(self::$singleton, $nom_utilisateur);
|
||||
self::set_mot_de_passe_aléatoire($nom_utilisateur);
|
||||
self::set_groupe($nom_utilisateur, "Anonymes");
|
||||
self::set_peut_se_connecter($nom_utilisateur, false);
|
||||
}
|
||||
|
||||
public function supprimer_utilisateur($nom_utilisateur) {
|
||||
// Supprime l'utilisateur créé par nouvel_utilisateur
|
||||
}
|
||||
|
||||
public function renomer_utilisateur($nom_utilisateur, $nouveau_nom) {
|
||||
Stockage::renomer($chemin->enfant($nom_utilisateur), $nouveau_nom);
|
||||
}
|
||||
|
||||
public function set_groupe($nom_utilisateur, $groupe) {
|
||||
// TODO : Vérifier si le groupe existe ?
|
||||
Stockage::set_pop($singleton->enfant($nom_utilisateur), "groupe", $groupe);
|
||||
}
|
||||
|
||||
public function get_groupe($nom_utilisateur) {
|
||||
return Stockage::get_prop($singleton->enfant($nom_utilisateur), "groupe");
|
||||
}
|
||||
|
||||
public function set_mot_de_passe($nom_utilisateur, $mot_de_passe) {
|
||||
Stockage::set_pop($singleton->enfant($nom_utilisateur), "mot_de_passe", $mot_de_passe);
|
||||
}
|
||||
|
||||
public function set_mot_de_passe_aléatoire($utilisateur) {
|
||||
self::set_mot_de_passe($utilisateur, substr(md5($utilisateur . rand() . microtime()) , 0, 8));
|
||||
}
|
||||
|
||||
public function get_mot_de_passe($nom_utilisateur) {
|
||||
return Stockage::get_prop($singleton->enfant($nom_utilisateur), "mot_de_passe");
|
||||
}
|
||||
|
||||
public function set_peut_se_connecter($nom_utilisateur, $valeur) {
|
||||
Stockage::set_pop(self::$singleton->enfant($nom_utilisateur), "peut_se_connecter", $valeur ? "true" : "false");
|
||||
}
|
||||
|
||||
public function get_peut_se_connecter($nom_utilisateur) {
|
||||
return (Stockage::get_pop(self::$singleton->enfant($nom_utilisateur), "peut_se_connecter") == "true") ? true : false;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
24
__cms__/stockage/session.php
Normal file
24
__cms__/stockage/session.php
Normal file
|
@ -0,0 +1,24 @@
|
|||
<?php
|
||||
|
||||
class Session {
|
||||
public function démarrer() {
|
||||
return session_id !== "" || session_start();
|
||||
}
|
||||
|
||||
public function put($k, $v) {
|
||||
self::démarrer();
|
||||
$_SESSION[$k] = $v;
|
||||
}
|
||||
|
||||
public function get($k) {
|
||||
self::démarrer();
|
||||
return is_set($_SESSION[$k]) ? $_SESSION[$k] : false;
|
||||
}
|
||||
|
||||
public function effacer($k) {
|
||||
self::démarrer();
|
||||
unset($_SESSION[$k]);
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
Loading…
Reference in New Issue
Block a user