www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

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 ?>