fix: back to password in session, add list users in admin panel, modify, delete, logout
This commit is contained in:
48
views/delete_user.php
Normal file
48
views/delete_user.php
Normal file
@@ -0,0 +1,48 @@
|
||||
<?php
|
||||
session_start();
|
||||
|
||||
// Vérifier si l'utilisateur est admin
|
||||
if (!isset($_SESSION["login"]) || !$_SESSION["is_admin"]) {
|
||||
header("Location: ../index.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
require_once __DIR__ . '/../controllers/controllerAdmin.php';
|
||||
|
||||
if (!isset($_POST['user_dn'])) {
|
||||
echo "Utilisateur non spécifié.";
|
||||
exit;
|
||||
}
|
||||
|
||||
$user_dn = $_POST['user_dn'];
|
||||
|
||||
deleteUser($user_dn); // Fonction à implémenter pour supprimer l'utilisateur
|
||||
|
||||
echo "Utilisateur supprimé avec succès.";
|
||||
header("Location: list_users.php");
|
||||
exit;
|
||||
|
||||
function deleteUser($user_dn)
|
||||
{
|
||||
if (session_status() == PHP_SESSION_NONE) {
|
||||
session_start();
|
||||
}
|
||||
|
||||
$ldapconn = ldap_connect("ldap://intranet.epul3a.local")
|
||||
or die("Could not connect to LDAP server.");
|
||||
|
||||
ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3);
|
||||
ldap_set_option($ldapconn, LDAP_OPT_REFERRALS, 0);
|
||||
|
||||
$ldap_user = "CN=" . $_SESSION['user_pseudo'] . ",CN=Users,DC=epul3a,DC=local";
|
||||
|
||||
if (!@ldap_bind($ldapconn, $ldap_user, $_SESSION['password'])) {
|
||||
die("Could not bind to LDAP server: " . ldap_error($ldapconn));
|
||||
}
|
||||
|
||||
if (!@ldap_delete($ldapconn, $user_dn)) {
|
||||
die("Erreur lors de la suppression de l'utilisateur: " . ldap_error($ldapconn));
|
||||
}
|
||||
|
||||
ldap_close($ldapconn);
|
||||
}
|
||||
40
views/edit_user.php
Normal file
40
views/edit_user.php
Normal file
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
session_start();
|
||||
|
||||
if (!isset($_SESSION["login"]) || !$_SESSION["is_admin"]) {
|
||||
header("Location: ../index.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
require_once __DIR__ . '/../controllers/controllerAdmin.php';
|
||||
|
||||
if (!isset($_POST['user_dn'])) {
|
||||
echo "Utilisateur non spécifié.";
|
||||
exit;
|
||||
}
|
||||
|
||||
$user_dn = $_POST['user_dn'];
|
||||
$user = getUserDetails($user_dn); // Fonction à créer pour récupérer les détails d'un utilisateur
|
||||
$ous = getListOU(); // Fonction à créer pour récupérer la liste des OU
|
||||
|
||||
if (!$user) {
|
||||
echo "Utilisateur introuvable.";
|
||||
exit;
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
<h2>Modifier un utilisateur</h2>
|
||||
<form method="post" action="../controllers/update_user.php">
|
||||
<input type="hidden" name="user_dn" value="<?= htmlspecialchars($user_dn) ?>">
|
||||
<label>Nom:</label>
|
||||
<input type="text" name="cn" value="<?= htmlspecialchars($user['cn'][0]) ?>" required><br>
|
||||
|
||||
<label>Email:</label>
|
||||
<input type="email" name="mail" value="<?= htmlspecialchars($user['mail'][0] ?? '') ?>"><br>
|
||||
|
||||
<label>OU:</label>
|
||||
|
||||
|
||||
<button type="submit">Enregistrer</button>
|
||||
</form>
|
||||
46
views/list_users.php
Normal file
46
views/list_users.php
Normal file
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
session_start();
|
||||
|
||||
// Check if user is logged in and is admin
|
||||
if (!isset($_SESSION["login"]) || !$_SESSION["is_admin"]) {
|
||||
header("Location: ../index.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
require_once __DIR__ . '/../controllers/controllerAdmin.php';
|
||||
|
||||
echo "<h2>Gestion des utilisateurs</h2>";
|
||||
|
||||
// Display users table
|
||||
echo "<table border='1'>
|
||||
<tr>
|
||||
<th>Nom</th>
|
||||
<th>Email</th>
|
||||
<th>OU</th>
|
||||
<th>Actions</th>
|
||||
</tr>";
|
||||
|
||||
$users = listAllUsers();
|
||||
foreach ($users as $user) {
|
||||
$name = htmlspecialchars($user['cn'][0]);
|
||||
$email = htmlspecialchars($user['mail'][0] ?? 'N/A');
|
||||
$ou = htmlspecialchars($user['ou']);
|
||||
$dn = htmlspecialchars($user['distinguishedname'][0]);
|
||||
|
||||
echo "<tr>
|
||||
<td>$name</td>
|
||||
<td>$email</td>
|
||||
<td>$ou</td>
|
||||
<td>
|
||||
<form method='post' action='edit_user.php' style='display:inline;'>
|
||||
<input type='hidden' name='user_dn' value='$dn'>
|
||||
<input type='submit' value='Modifier'>
|
||||
</form>
|
||||
<form method='post' action='delete_user.php' style='display:inline;' onsubmit='return confirm(\"Confirmer la suppression ?\");'>
|
||||
<input type='hidden' name='user_dn' value='$dn'>
|
||||
<input type='submit' value='Supprimer'>
|
||||
</form>
|
||||
</td>
|
||||
</tr>";
|
||||
}
|
||||
echo "</table>";
|
||||
@@ -4,14 +4,24 @@ if (!isset($_SESSION["login"]) || $_SESSION["login"] !== true) {
|
||||
exit;
|
||||
}
|
||||
|
||||
echo "Bienvenue " . $_SESSION["user_pseudo"];
|
||||
require_once __DIR__ . '/../controllers/controllerAdmin.php';
|
||||
|
||||
// Récupérer les infos de l'utilisateur
|
||||
// $user_info = getUserByPseudo($_SESSION["user_pseudo"]);
|
||||
|
||||
echo "Bienvenue " . $_SESSION["user_pseudo"] . "!";
|
||||
|
||||
// Affichage du menu
|
||||
echo "<h2>Menu</h2>";
|
||||
echo "<ul>";
|
||||
if ($_SESSION["is_admin"]) {
|
||||
echo "<h2>Admin Dashboard</h2>";
|
||||
echo "<a href='controllers/create_user.php'>Créer un utilisateur</a><br>";
|
||||
echo "<a href='controllers/modify_user.php'>Modifier un utilisateur</a><br>";
|
||||
echo "<a href='controllers/delete_user.php'>Supprimer un utilisateur</a><br>";
|
||||
} else {
|
||||
echo "<h2>Utilisateur Standard</h2>";
|
||||
echo "<p>Vous pouvez consulter votre profil.</p>";
|
||||
echo "<li><a href='views/list_users.php'>Liste des utilisateurs</a></li>";
|
||||
echo "<li><a href='views/add_user.php'>Ajouter un utilisateur</a></li>";
|
||||
}
|
||||
echo "</ul>";
|
||||
|
||||
// Bouton de déconnexion
|
||||
echo "<form method='post' action='../controllers/logout.php'>";
|
||||
echo "<input type='submit' value='Déconnexion'>";
|
||||
echo "</form>";
|
||||
// Reste du code (admin/user)
|
||||
Reference in New Issue
Block a user