authentification.php (3349B)
1 <?php 2 3 class Authentification { 4 private static function singleton() { 5 return new Chemin("/admin/utilisateurs/"); 6 } 7 8 public static function connexion($nom_utilisateur, $mdp) { 9 $ch_utilisateur = self::singleton()->enfant($nom_utilisateur); 10 $mdp_réel = self::get_mot_de_passe($nom_utilisateur, true); // true => forcer permissions. 11 $peut_se_connecter = self::get_peut_se_connecter($nom_utilisateur, true); // true => forcer permissions. 12 if ($mdp == $mdp_réel && $peut_se_connecter) { 13 // TODO : Vérifier si c'est sécurisé => stocké _uniquement_ sur le serveur. 14 Session::put("utilisateur", $nom_utilisateur); 15 return true; 16 } else { 17 Session::effacer("utilisateur"); 18 return false; 19 } 20 } 21 22 public static function est_connecté() { 23 return self::get_utilisateur() != "Anonyme"; 24 } 25 26 public static function déconnexion() { 27 Session::effacer("utilisateur"); 28 } 29 30 public static function get_utilisateur() { 31 $u = Session::get("utilisateur"); 32 return (Erreur::is_erreur($u)) ? "Anonyme" : $u; 33 } 34 35 public static function nouvel_utilisateur($nom_utilisateur) { 36 // TODO : SECURITE : Si la page existe déjà, laisser tomber ! 37 Stockage::nouvelle_page(self::singleton(), $nom_utilisateur, "admin-utilisateur"); 38 self::set_mot_de_passe_aléatoire($nom_utilisateur); 39 self::set_groupe($nom_utilisateur, "Anonymes"); 40 self::set_peut_se_connecter($nom_utilisateur, false); 41 } 42 43 public static function supprimer_utilisateur($nom_utilisateur) { 44 Stockage::supprimer(self::singleton()->enfant($nom_utilisateur)); 45 } 46 47 public static function renomer_utilisateur($nom_utilisateur, $nouveau_nom) { 48 Stockage::renomer(self::singleton()->enfant($nom_utilisateur), $nouveau_nom); 49 } 50 51 public static function liste_utilisateurs() { 52 $liste = array(); 53 foreach (stockage::liste_enfants(self::singleton()) as $k) { 54 array_push($liste, $k->dernier()); 55 } 56 sort($liste); 57 return $liste; 58 } 59 60 public static function set_groupe($nom_utilisateur, $groupe) { 61 // TODO : Vérifier si le groupe existe ? 62 Stockage::set_pop(self::singleton()->enfant($nom_utilisateur), "groupe", $groupe); 63 } 64 65 public static function get_groupe($nom_utilisateur, $forcer_permissions = false) { 66 return Stockage::get_prop(self::singleton()->enfant($nom_utilisateur), "groupe", $forcer_permissions); 67 } 68 69 public static function set_mot_de_passe($nom_utilisateur, $mot_de_passe) { 70 Stockage::set_pop(self::singleton()->enfant($nom_utilisateur), "mot_de_passe", $mot_de_passe); 71 } 72 73 public static function set_mot_de_passe_aléatoire($utilisateur) { 74 self::set_mot_de_passe($utilisateur, substr(md5($utilisateur . rand() . microtime()) , 0, 8)); 75 } 76 77 public static function get_mot_de_passe($nom_utilisateur, $forcer_permissions = false) { 78 return Stockage::get_prop(self::singleton()->enfant($nom_utilisateur), "mot_de_passe", $forcer_permissions); 79 } 80 81 public static function set_peut_se_connecter($nom_utilisateur, $valeur) { 82 Stockage::set_pop(self::singleton()->enfant($nom_utilisateur), "peut_se_connecter", $valeur ? "oui" : "non"); 83 } 84 85 public static function get_peut_se_connecter($nom_utilisateur, $forcer_permissions = false) { 86 $peut_se_connecter = Stockage::get_prop(self::singleton()->enfant($nom_utilisateur), "peut_se_connecter", $forcer_permissions); 87 return ($peut_se_connecter == "oui") ? true : false; 88 } 89 } 90 91 ?>