feat: add CSS styling
This commit is contained in:
269
assets/css/style.css
Normal file
269
assets/css/style.css
Normal file
@@ -0,0 +1,269 @@
|
||||
/* Reset et styles de base */
|
||||
* {
|
||||
margin: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
/* Menu Lists specific padding */
|
||||
.menu-content ul {
|
||||
padding-left: 40px;
|
||||
}
|
||||
|
||||
.menu-content ul ul {
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
/* Content containers */
|
||||
.menu-content,
|
||||
.profile-content {
|
||||
margin: 20px;
|
||||
padding: 15px;
|
||||
background: #fff;
|
||||
border-radius: 5px;
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.logout-form {
|
||||
position: absolute;
|
||||
top: 20px;
|
||||
right: 20px;
|
||||
background: transparent;
|
||||
border: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.logout-button {
|
||||
background-color: #3498db;
|
||||
color: white;
|
||||
padding: 10px 20px;
|
||||
border: none;
|
||||
border-radius: 4px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.logout-button:hover {
|
||||
background-color: #2980b9;
|
||||
}
|
||||
|
||||
.action-buttons {
|
||||
text-align: center;
|
||||
padding: 8px 0;
|
||||
}
|
||||
|
||||
.btn {
|
||||
display: inline-block;
|
||||
padding: 6px 12px;
|
||||
margin: 0 15px;
|
||||
border-radius: 4px;
|
||||
text-decoration: none;
|
||||
color: white;
|
||||
min-width: 80px;
|
||||
}
|
||||
|
||||
.btn-edit {
|
||||
background-color: #3498db;
|
||||
}
|
||||
|
||||
.btn-edit:hover {
|
||||
background-color: #2980b9;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.btn-delete {
|
||||
background-color: #e74c3c;
|
||||
}
|
||||
|
||||
.btn-delete:hover {
|
||||
background-color: #c0392b;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: Arial, sans-serif;
|
||||
line-height: 1.6;
|
||||
padding: 20px;
|
||||
background-color: #f4f4f4;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
/* En-têtes */
|
||||
h1,
|
||||
h2,
|
||||
h3 {
|
||||
color: #2c3e50;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 2em;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 2em;
|
||||
margin: 20px
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
/* Tableaux */
|
||||
table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
margin: 15px 0;
|
||||
background: #fff;
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
th,
|
||||
td {
|
||||
padding: 12px;
|
||||
text-align: left;
|
||||
border: 1px solid #ddd;
|
||||
}
|
||||
|
||||
th {
|
||||
background-color: #3498db;
|
||||
color: white;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
tr:nth-child(even) {
|
||||
background-color: #f9f9f9;
|
||||
}
|
||||
|
||||
/* Formulaires */
|
||||
form {
|
||||
background: #fff;
|
||||
padding: 20px;
|
||||
border-radius: 5px;
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
||||
max-width: 500px;
|
||||
margin: 20px auto;
|
||||
}
|
||||
|
||||
label {
|
||||
display: block;
|
||||
margin: 10px 0 5px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
input[type="text"],
|
||||
input[type="password"],
|
||||
input[type="email"],
|
||||
select {
|
||||
width: 100%;
|
||||
padding: 8px;
|
||||
margin-bottom: 10px;
|
||||
border: 1px solid #ddd;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
input[type="submit"],
|
||||
button {
|
||||
background-color: #3498db;
|
||||
color: white;
|
||||
padding: 10px 20px;
|
||||
border: none;
|
||||
border-radius: 4px;
|
||||
cursor: pointer;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
input[type="submit"]:hover,
|
||||
button:hover {
|
||||
background-color: #2980b9;
|
||||
}
|
||||
|
||||
/* Liens */
|
||||
a {
|
||||
color: #3498db;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
/* Menu Lists */
|
||||
.menu ul {
|
||||
list-style: none;
|
||||
padding-left: 20px;
|
||||
margin: 15px 0;
|
||||
}
|
||||
|
||||
.menu li {
|
||||
margin-bottom: 15px;
|
||||
padding: 10px;
|
||||
background: rgba(255, 255, 255, 0.8);
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.menu ul ul {
|
||||
margin-left: 20px;
|
||||
border-left: 3px solid #3498db;
|
||||
padding-left: 15px;
|
||||
}
|
||||
|
||||
.menu ul ul li {
|
||||
margin: 8px 0;
|
||||
padding: 5px 10px;
|
||||
background: rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
|
||||
.ou-list {
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.ou-section {
|
||||
padding: 15px;
|
||||
background: #fff;
|
||||
border-radius: 5px;
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
.ou-section h4 {
|
||||
color: #2c3e50;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.ou-section a {
|
||||
display: inline-block;
|
||||
margin: 5px 10px;
|
||||
padding: 5px 0;
|
||||
}
|
||||
|
||||
/* Messages */
|
||||
.error {
|
||||
color: #e74c3c;
|
||||
padding: 10px;
|
||||
background: #fde;
|
||||
border-left: 4px solid #e74c3c;
|
||||
margin: 10px 0;
|
||||
}
|
||||
|
||||
.success {
|
||||
color: #27ae60;
|
||||
padding: 10px;
|
||||
background: #dfd;
|
||||
border-left: 4px solid #27ae60;
|
||||
margin: 10px 0;
|
||||
}
|
||||
|
||||
/* Bouton de déconnexion */
|
||||
.logout-form {
|
||||
position: absolute;
|
||||
top: 20px;
|
||||
right: 20px;
|
||||
}
|
||||
|
||||
.logout-button {
|
||||
background-color: #e74c3c;
|
||||
}
|
||||
|
||||
.logout-button:hover {
|
||||
background-color: #c0392b;
|
||||
}
|
||||
@@ -366,7 +366,7 @@ class LDAPAuth
|
||||
$this->bindServiceAccount();
|
||||
|
||||
$filter = "(objectClass=user)";
|
||||
$attributes = ["givenName", "sn", "mail", "sAMAccountName"];
|
||||
$attributes = ["Name", "sn", "givenName","mail", "sAMAccountName"];
|
||||
$result = ldap_read($this->ad, $dn, $filter, $attributes);
|
||||
$entries = ldap_get_entries($this->ad, $result);
|
||||
|
||||
|
||||
31
test.php
31
test.php
@@ -1,31 +0,0 @@
|
||||
<?php
|
||||
$ldap_server = 'ldap://intranet.epul3a.local';
|
||||
$service_dn = "CN=Service LDAP Reader,CN=Users,DC=epul3a,DC=local";
|
||||
|
||||
|
||||
$service_pwd = "Test@123";
|
||||
|
||||
$ldapconn = ldap_connect($ldap_server);
|
||||
ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3);
|
||||
ldap_set_option($ldapconn, LDAP_OPT_REFERRALS, 0);
|
||||
|
||||
if (@ldap_bind($ldapconn, $service_dn, $service_pwd)) {
|
||||
echo "✅ Connexion réussie avec svc_ldap_read !";
|
||||
} else {
|
||||
echo "❌ Erreur de connexion : " . ldap_error($ldapconn);
|
||||
}
|
||||
|
||||
ldap_close($ldapconn);
|
||||
|
||||
// === TEST ===
|
||||
require_once __DIR__ . '/models/LDAPAuth.php';
|
||||
$ldap = new LDAPAuth();
|
||||
$result = $ldap->authenticate("a.gathor", "Test@123");
|
||||
|
||||
if ($result['success']) {
|
||||
echo "✅ Authentification réussie pour " . $result['dn'];
|
||||
} else {
|
||||
echo "❌ " . $result['message'];
|
||||
}
|
||||
|
||||
$ldap->close();
|
||||
@@ -5,6 +5,7 @@
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Authentification</title>
|
||||
<link rel="stylesheet" href="assets/css/style.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
@@ -12,6 +12,7 @@ if (!isset($_SESSION["login"]) || !$_SESSION["is_admin"]) {
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Créer un utilisateur</title>
|
||||
<link rel="stylesheet" href="../assets/css/style.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
@@ -14,6 +14,7 @@ $user_dn = urldecode($_GET['dn']);
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Supprimer un utilisateur</title>
|
||||
<link rel="stylesheet" href="../assets/css/style.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
@@ -19,6 +19,7 @@ $user_details = $ldapAuth->getUserDetailsByDn($user_dn);
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Modifier un utilisateur</title>
|
||||
<link rel="stylesheet" href="../assets/css/style.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
@@ -26,10 +27,13 @@ $user_details = $ldapAuth->getUserDetailsByDn($user_dn);
|
||||
<form action="../controllers/edit_user.php" method="post">
|
||||
<input type="hidden" name="dn" value="<?= htmlspecialchars($user_dn) ?>">
|
||||
|
||||
<input type="text" id="firstname" name="firstname" value="<?= htmlspecialchars($user_details['givenName'] ?? '') ?>">
|
||||
|
||||
<label for="lastname">Nom :</label>
|
||||
<input type="text" id="lastname" name="lastname" value="<?= htmlspecialchars($user_details['sn'] ?? '') ?>">
|
||||
|
||||
<label for="firstname">Prénom :</label>
|
||||
<input type="text" id="firstname" name="firstname" value="<?= htmlspecialchars($user_details['givenname'] ?? '') ?>">
|
||||
|
||||
<label for="email">E-mail :</label>
|
||||
<input type="email" id="email" name="email" value="<?= htmlspecialchars($user_details['mail'] ?? '') ?>">
|
||||
|
||||
<label for="new_password">Nouveau mot de passe :</label>
|
||||
|
||||
@@ -1,23 +1,33 @@
|
||||
<?php
|
||||
session_start();
|
||||
require_once __DIR__ . '/../controllers/controllerAdmin.php';
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
|
||||
if (!isset($_SESSION["login"]) || !$_SESSION["is_admin"]) {
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Liste des utilisateurs</title>
|
||||
<link rel="stylesheet" href="../assets/css/style.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<?php
|
||||
session_start();
|
||||
require_once __DIR__ . '/../controllers/controllerAdmin.php';
|
||||
|
||||
if (!isset($_SESSION["login"]) || !$_SESSION["is_admin"]) {
|
||||
header('Location: ../auth.php');
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
// Récupérer les utilisateurs selon l'OU
|
||||
$users = listUsers();
|
||||
// Récupérer les utilisateurs selon l'OU
|
||||
$users = listUsers();
|
||||
|
||||
// Afficher le tableau des utilisateurs
|
||||
echo "<h1>Gestion des utilisateurs</h1>";
|
||||
// Afficher le tableau des utilisateurs
|
||||
echo "<h1>Gestion des utilisateurs</h1>";
|
||||
|
||||
if (isset($_GET['ou'])) {
|
||||
if (isset($_GET['ou'])) {
|
||||
echo "<h2>OU : " . htmlspecialchars(urldecode($_GET['ou'])) . "</h2>";
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($users)) {
|
||||
if (!empty($users)) {
|
||||
echo "<table border='1'>";
|
||||
echo "<tr>
|
||||
<th>Nom</th>
|
||||
@@ -35,15 +45,15 @@ if (!empty($users)) {
|
||||
<td>" . ($entry['givenname'][0] ?? '') . "</td>
|
||||
<td>" . ($entry['mail'][0] ?? '') . "</td>
|
||||
<td>" . ($entry['distinguishedname'][0] ?? '') . "</td>
|
||||
<td>
|
||||
<a href='../views/edit_user.php?dn=" . urlencode($entry['distinguishedname'][0]) . "'>Modifier</a>
|
||||
<a href='../controllers/delete_user.php?dn=" . urlencode($entry['distinguishedname'][0]) . "' onclick='return confirm(\"Confirmer la suppression ?\")'>Supprimer</a>
|
||||
<td class='action-buttons'>
|
||||
<a href='../views/edit_user.php?dn=" . urlencode($entry['distinguishedname'][0]) . "' class='btn btn-edit'>Modifier</a>
|
||||
<a href='../controllers/delete_user.php?dn=" . urlencode($entry['distinguishedname'][0]) . "' class='btn btn-delete' onclick='return confirm(\"Confirmer la suppression ?\")'>Supprimer</a>
|
||||
</td>
|
||||
</tr>";
|
||||
}
|
||||
echo "</table>";
|
||||
} else {
|
||||
} else {
|
||||
echo "<p>Aucun utilisateur trouvé dans cette OU.</p>";
|
||||
}
|
||||
}
|
||||
|
||||
echo "<p><a href='../views/menu.php'>Retour au menu</a></p>";
|
||||
echo "<p><a href='../views/menu.php'>Retour au menu</a></p>";
|
||||
|
||||
@@ -1,21 +1,34 @@
|
||||
<?php
|
||||
if (session_status() == PHP_SESSION_NONE) {
|
||||
session_start();
|
||||
}
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
|
||||
if (!isset($_SESSION["login"]) || $_SESSION["login"] !== true) {
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Menu</title>
|
||||
<link rel="stylesheet" href="../assets/css/style.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<?php
|
||||
if (session_status() == PHP_SESSION_NONE) {
|
||||
session_start();
|
||||
}
|
||||
|
||||
if (!isset($_SESSION["login"]) || $_SESSION["login"] !== true) {
|
||||
header('Location: ../auth.php');
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
require_once __DIR__ . '/../controllers/controllerAdmin.php';
|
||||
require_once __DIR__ . '/../controllers/controllerAdmin.php';
|
||||
|
||||
echo "Bienvenue " . $_SESSION["sAMAccountName"] . "!";
|
||||
echo "Bienvenue " . $_SESSION["sAMAccountName"] . " !";
|
||||
|
||||
// Affichage du menu
|
||||
echo "<h2>Menu</h2>";
|
||||
echo "<ul>";
|
||||
if ($_SESSION["is_admin"]) {
|
||||
|
||||
if ($_SESSION["is_admin"]) {
|
||||
// Affichage du menu
|
||||
echo "<h2>Menu</h2>";
|
||||
echo "<div class='menu-content'>";
|
||||
echo "<ul>";
|
||||
echo "Vous êtes un administrateur.<br>";
|
||||
echo "Vous avez des droits sur les OUs suivantes :";
|
||||
echo "<ul>";
|
||||
@@ -35,18 +48,20 @@ if ($_SESSION["is_admin"]) {
|
||||
}
|
||||
|
||||
echo "<a href='../views/list_users.php'>Liste complète des utilisateurs des OUs administrées</a><br>";
|
||||
}
|
||||
echo "</ul>";
|
||||
}
|
||||
echo "</ul>";
|
||||
echo "</div>";
|
||||
|
||||
echo "<h2>Profil</h2>";
|
||||
echo "<h2>Profil</h2>";
|
||||
echo "<div class='profile-content'>";
|
||||
|
||||
$ldapAuth = new LDAPAuth();
|
||||
$user_dn = $ldapAuth->getUserDN($_SESSION['sAMAccountName']);
|
||||
$ldapAuth = new LDAPAuth();
|
||||
$user_dn = $ldapAuth->getUserDN($_SESSION['sAMAccountName']);
|
||||
|
||||
echo "<h3>Groupes de l'utilisateur</h3>";
|
||||
$userGroups = $ldapAuth->getUserGroups($user_dn);
|
||||
echo "<h3>Groupes de l'utilisateur</h3>";
|
||||
$userGroups = $ldapAuth->getUserGroups($user_dn);
|
||||
|
||||
if (!empty($userGroups) && isset($userGroups['count']) && $userGroups['count'] > 0) {
|
||||
if (!empty($userGroups) && isset($userGroups['count']) && $userGroups['count'] > 0) {
|
||||
echo "<table border='1' style='border-collapse: collapse; margin: 10px 0;'>
|
||||
<tr >
|
||||
<th>Groupe</th>
|
||||
@@ -59,24 +74,25 @@ if (!empty($userGroups) && isset($userGroups['count']) && $userGroups['count'] >
|
||||
</tr>";
|
||||
}
|
||||
echo "</table>";
|
||||
} else {
|
||||
} else {
|
||||
echo "<p>Aucun groupe trouvé pour cet utilisateur.</p>";
|
||||
}
|
||||
}
|
||||
|
||||
// Ajouter cette section après l'affichage des groupes
|
||||
$user_details = $ldapAuth->getUserDetails($_SESSION['sAMAccountName']);
|
||||
echo "<h3>Vos informations de compte :</h3>";
|
||||
echo "<table border='1'>";
|
||||
echo "<tr><th>Attribut</th><th>Valeur</th></tr>";
|
||||
foreach ($user_details as $key => $value) {
|
||||
// Ajouter cette section après l'affichage des groupes
|
||||
$user_details = $ldapAuth->getUserDetails($_SESSION['sAMAccountName']);
|
||||
echo "<h3>Vos informations de compte :</h3>";
|
||||
echo "<table border='1'>";
|
||||
echo "<tr><th>Attribut</th><th>Valeur</th></tr>";
|
||||
foreach ($user_details as $key => $value) {
|
||||
if (!is_array($value) && $key !== 'count') {
|
||||
echo "<tr><td>$key</td><td>$value</td></tr>";
|
||||
}
|
||||
}
|
||||
echo "</table>";
|
||||
}
|
||||
echo "</table>";
|
||||
echo "</div>";
|
||||
|
||||
// Bouton de déconnexion
|
||||
echo "<form method='post' action='../controllers/logout.php'>";
|
||||
echo "<input type='submit' value='Déconnexion'>";
|
||||
echo "</form>";
|
||||
// Bouton de déconnexion
|
||||
echo "<form method='post' action='../controllers/logout.php' class='logout-form'>";
|
||||
echo "<input type='submit' value='Déconnexion' class='logout-button'>";
|
||||
echo "</form>";
|
||||
// Reste du code (admin/user)
|
||||
Reference in New Issue
Block a user