Connexion (mais pas encore déconnexion :-p)
This commit is contained in:
parent
a789019f84
commit
5b3e7db376
|
@ -3,19 +3,19 @@
|
|||
class AdminConnexion {
|
||||
public static function action($chemin, $action, $paramètres) {
|
||||
if ($action == "connexion") {
|
||||
if (connexion($paramètres["utilisateur"], $paramètres["mdp"])) {
|
||||
return self::vue("connexion réussie");
|
||||
if (Authentification::connexion($paramètres["utilisateur"], $paramètres["mdp"])) {
|
||||
return self::vue($chemin, "connexion réussie");
|
||||
} else {
|
||||
return self::vue("connexion échouée");
|
||||
return self::vue($chemin, "connexion échouée");
|
||||
}
|
||||
} else if ($action == "déconnexion") {
|
||||
déconnexion();
|
||||
return self::vue("déconnexion");
|
||||
Authentification::déconnexion();
|
||||
return self::vue($chemin, "déconnexion");
|
||||
} else {
|
||||
if (isset($paramètres["vue"])) {
|
||||
self::vue($chemin, $paramètres["vue"]);
|
||||
return self::vue($chemin, $paramètres["vue"]);
|
||||
} else {
|
||||
self::vue($chemin);
|
||||
return self::vue($chemin);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -26,32 +26,45 @@ class AdminConnexion {
|
|||
// Les quatre vues ("connexion réussie", "déconnexion réussie",
|
||||
// formulaire de connexion, formulaire + "mauvais mdp")
|
||||
if ($vue == "normal") {
|
||||
return formulaire_connexion();
|
||||
$ret = self::formulaire_connexion($chemin);
|
||||
return new Page($ret, "Connexion");
|
||||
} else if ($vue == "connexion réussie") {
|
||||
$ret = "<h2>Connexion réussie</h2>";
|
||||
$ret .= "<p>Pour vous déconnecter, utilisez le lien «déconnexion» en haut à droite.</p>";
|
||||
$ret .= "<p><a href=\"" . Config::get("url_base") . "\">Retour à la page d'accueil</a>.</p>";
|
||||
return $ret;
|
||||
return new Page($ret, "Connexion réussie");
|
||||
}else if ($vue == "connexion échouée") {
|
||||
$msg = "<p><strong>Mauvais mot de passe et/ou nom d'utilisateur. Ré-essayez ou retournez à la ";
|
||||
$msg .= "<a href=\"" . Config::get("url_base") . "\">page d'accueil</a>";
|
||||
$msg .= ".</strong></p>";
|
||||
return formulaire_connexion($msg);
|
||||
|
||||
$ret = self::formulaire_connexion($chemin, "Connexion échouée", $msg);
|
||||
return new Page($ret, "Connexion échouée");
|
||||
}else if ($vue == "déconnexion") {
|
||||
$ret = "<h2>Déconnexion réussie</h2>";
|
||||
$ret .= "<p>Vous êtes déconnecté. Vous pouvez à présent retourner à la ";
|
||||
$ret .= "<a href=\"" . Config::get("url_base") . "\">page d'accueil</a>";
|
||||
$ret .= ".</p>";
|
||||
return $ret;
|
||||
return new Page($ret, "Déconnexion réussie");
|
||||
}
|
||||
}
|
||||
|
||||
public static function formulaire_connexion($message = "") {
|
||||
public static function formulaire_connexion($chemin, $titre = "Connexion", $message = "") {
|
||||
// TODO
|
||||
return "<h2>Connexion</h2>" . $message . "<input type=\"text\" name=\"nom\" value=\"Nom\" />...";
|
||||
$ret = "<h2>" . $titre . "</h2>";
|
||||
$ret .= $message;
|
||||
$ret .= '<form method="post" action="' . $chemin->get_url() . '">';
|
||||
$ret .= '<label for="utilisateur">Nom : </label><input type="text" name="utilisateur" value="" />';
|
||||
$ret .= '<br />';
|
||||
$ret .= '<label for="mdp">Mot de passe : </label><input type="password" name="mdp" value="" />';
|
||||
$ret .= '<br />';
|
||||
$ret .= '<input type="hidden" name="action" value="connexion" />';
|
||||
$ret .= '<input type="submit" value="Connexion" />';
|
||||
$ret .= '</form>';
|
||||
return $ret;
|
||||
}
|
||||
}
|
||||
|
||||
Modules::enregister_module("AdminConnexion", "admin-connexion", "vue");
|
||||
Modules::enregister_module("AdminConnexion", "admin-connexion", "vue", "utilisateur mdp");
|
||||
|
||||
?>
|
|
@ -9,7 +9,7 @@ class Authentification {
|
|||
$ch_utilisateur = self::singleton()->enfant($nom_utilisateur);
|
||||
$mdp_réel = self::get_mot_de_passe($nom_utilisateur, true); // true => forcer permissions.
|
||||
$peut_se_connecter = self::get_peut_se_connecter($nom_utilisateur, true); // true => forcer permissions.
|
||||
if ($mdp == $mdp_réel && $peut_se_connecter === "true") { // Triple égale. Pas d'entourloupe avec des casts miteux !
|
||||
if ($mdp == $mdp_réel && $peut_se_connecter) {
|
||||
// TODO : Vérifier si c'est sécurisé => stocké _uniquement_ sur le serveur.
|
||||
Session::put("utilisateur", $nom_utilisateur);
|
||||
return true;
|
||||
|
@ -75,12 +75,12 @@ class Authentification {
|
|||
}
|
||||
|
||||
public static function set_peut_se_connecter($nom_utilisateur, $valeur) {
|
||||
Stockage::set_pop(self::singleton()->enfant($nom_utilisateur), "peut_se_connecter", $valeur ? "true" : "false");
|
||||
Stockage::set_pop(self::singleton()->enfant($nom_utilisateur), "peut_se_connecter", $valeur ? "oui" : "non");
|
||||
}
|
||||
|
||||
public static function get_peut_se_connecter($nom_utilisateur, $forcer_permissions = false) {
|
||||
$peut_se_connecter = Stockage::get_pop(self::singleton()->enfant($nom_utilisateur), "peut_se_connecter", $forcer_permissions);
|
||||
return ($peut_se_connecter == "true") ? true : false;
|
||||
$peut_se_connecter = Stockage::get_prop(self::singleton()->enfant($nom_utilisateur), "peut_se_connecter", $forcer_permissions);
|
||||
return ($peut_se_connecter == "oui") ? true : false;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -73,7 +73,8 @@ class Stockage {
|
|||
if ($forcer_permissions || Permissions::vérifier_permission($chemin, "get_prop")) {
|
||||
return Système_fichiers::lire(self::fichier_prop($chemin, $prop));
|
||||
} else {
|
||||
return false;
|
||||
Erreur::fatale("Permission non accordée pour la lecture de chemin: " . $chemin->get() . " propriété: " . $prop);
|
||||
// return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ class Système_fichiers {
|
|||
}
|
||||
|
||||
public static function lire($chemin_fs) {
|
||||
if (!file_exists($chemin_fs)) return false;
|
||||
if (!file_exists($chemin_fs)) Erreur::fatale("Ne peut lire le fichier " . $chemin_fs); // return false;
|
||||
return file_get_contents($chemin_fs);
|
||||
}
|
||||
|
||||
|
|
1
__cms__/donnees/admin/connexion/__prop__type
Normal file
1
__cms__/donnees/admin/connexion/__prop__type
Normal file
|
@ -0,0 +1 @@
|
|||
admin-connexion
|
|
@ -1,7 +1,8 @@
|
|||
/**|*|Administrateurs|oui|Les administrateurs ont tous les droits
|
||||
/**|*|Administrateurs|oui|Les administrateurs ont tous les droits.
|
||||
/admin/**|*|Administrateurs|oui|Les administrateurs peuvent administer (redondant avec la règle ci-dessus).
|
||||
/admin/connexion/**|*|*|oui|Tout le monde peut se connecter.
|
||||
/admin/**|*|*|non|Les non-administrateur n'ont pas accès à la section "admin".
|
||||
/forum/|nouvelle_page|Utilisateurs|oui|Les utilisateurs peuvent créer de nouveaux sujets de discussion dans le forum.
|
||||
/forum/*|nouvelle_page|Utilisateurs|oui|Les utilisateurs peuvent créer des messages dans les sujets de discussion.
|
||||
/forum/*/*|set_prop|Propriétaire|oui|L'auteur d'un message peut en définir le contenu (pas les autres, ce n'est pas un wiki).
|
||||
/forum/*/*|set_prop|Propriétaire|oui|L'auteur d'un message peut en définir le contenu (pas les autres, ce n'est pas un wiki).
|
||||
/**|get_prop|Anonymes|oui|Le reste du monde peut consulter le site.
|
1
__cms__/donnees/admin/utilisateurs/admin/__prop__groupe
Normal file
1
__cms__/donnees/admin/utilisateurs/admin/__prop__groupe
Normal file
|
@ -0,0 +1 @@
|
|||
Administrateurs
|
|
@ -0,0 +1 @@
|
|||
admin
|
|
@ -0,0 +1 @@
|
|||
oui
|
7
admin/connexion/index.php
Normal file
7
admin/connexion/index.php
Normal file
|
@ -0,0 +1,7 @@
|
|||
<?php
|
||||
|
||||
require_once(dirname(__FILE) . "/./../../__cms__/cms.php");
|
||||
|
||||
CMS::page("/admin/connexion");
|
||||
|
||||
?>
|
7
permissions.sh
Normal file
7
permissions.sh
Normal file
|
@ -0,0 +1,7 @@
|
|||
#!/bin/sh
|
||||
|
||||
fichiers="index.php galerie admin __cms__/donnees"
|
||||
|
||||
chgrp -R www-data $fichiers
|
||||
chmod 664 $fichiers
|
||||
find $fichiers -type d -print0 | xargs -0 chmod 775
|
Loading…
Reference in New Issue
Block a user