Amélioration des fonctionnalités du panel admin, des évènements, et ajout de diagrammes UML.
Co-authored-by: Charpentier Juliette <juliette.charpentier1@etu.u-pec.fr>
This commit is contained in:
61
admin/users/add/add.php
Normal file
61
admin/users/add/add.php
Normal file
@@ -0,0 +1,61 @@
|
||||
<?php
|
||||
require_once $_SERVER['DOCUMENT_ROOT'] . '/tools/dbConnect.php';
|
||||
session_start();
|
||||
|
||||
if (isset($_COOKIE['userData'])) {
|
||||
$userDataEncoded = $_COOKIE['userData'];
|
||||
$userData = json_decode($userDataEncoded, true); // 'true' pour obtenir un tableau associatif
|
||||
|
||||
$email = $userData['email'];
|
||||
$name = $userData['name'];
|
||||
$familyName = $userData['familyName'];
|
||||
$role = $userData['role'];
|
||||
}
|
||||
|
||||
if ($_SERVER["REQUEST_METHOD"] == "POST") {
|
||||
$userName = htmlspecialchars($_POST["name"]);
|
||||
$userFamilyName = htmlspecialchars($_POST["family_name"]);
|
||||
$userEmail = htmlspecialchars($_POST["email"]);
|
||||
$usePassword = htmlspecialchars($_POST["password"]);
|
||||
$userUserRole = htmlspecialchars($_POST["role"]);
|
||||
}
|
||||
|
||||
$hashedPassword = sha1($userPassword);
|
||||
|
||||
$query = "SELECT mail FROM user WHERE mail = '$userEmail'";
|
||||
$result = mysqli_query($db, $query);
|
||||
|
||||
if (!$result) {
|
||||
die("Erreur lors de l'exécution de la requête.");
|
||||
}
|
||||
|
||||
$row = mysqli_fetch_assoc($result);
|
||||
|
||||
if ($row) {
|
||||
die("<p>Un utilisateur avec cette adresse mail existe déjà.</p>");
|
||||
}
|
||||
|
||||
$addUser = "INSERT INTO `user`(`mail`, `name`, `family_name`, `role`, `password`) VALUES ('$userEmail', '$userName', '$userFamilyName', '$userUserRole', '$hashedPassword')";
|
||||
|
||||
$resultAddUser = mysqli_query($db, $addUser);
|
||||
if (!$resultAddUser) {
|
||||
echo "<p class='text'>Erreur lors de l'exécution de la requête.</p>";
|
||||
} else {
|
||||
if (mysqli_affected_rows($db) > 0) {
|
||||
echo "<p class='text'>Utilisateur créé avec succès. </p>";
|
||||
|
||||
echo "<p class='text'>Prénom : " . $userName . "</p>";
|
||||
echo "<p class='text'>Nom : " . $userFamilyName . "</p>";
|
||||
echo "<p class='text'>Adresse mail : " . $userEmail . "</p>";
|
||||
echo "<p class='text'>Mot de passe : " . $userPassword . "</p>";
|
||||
echo "<p class='text'>Mot de passe hashé : " . $hashedPassword . "</p>";
|
||||
echo "<p class='text'>Rôle : " . $userUserRole . "</p>";
|
||||
include ($_SERVER['DOCUMENT_ROOT'] . '/tools/discordWebhookRegister.php');
|
||||
header("Location: /admin/users/?newuser=$userEmail");
|
||||
die();
|
||||
} else {
|
||||
echo "<p class='text'>Aucun utilisateur n\'a été ajouté.</p>";
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
80
admin/users/add/index.php
Normal file
80
admin/users/add/index.php
Normal file
@@ -0,0 +1,80 @@
|
||||
<?php
|
||||
require_once $_SERVER['DOCUMENT_ROOT'] . '/tools/dbConnect.php';
|
||||
session_start();
|
||||
|
||||
if (isset($_COOKIE['userData'])) {
|
||||
$userDataEncoded = $_COOKIE['userData'];
|
||||
$userData = json_decode($userDataEncoded, true); // 'true' pour obtenir un tableau associatif
|
||||
|
||||
$email = $userData['email'];
|
||||
$name = $userData['name'];
|
||||
$familyName = $userData['familyName'];
|
||||
$role = $userData['role'];
|
||||
}
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="stylesheet" href="/styles/main.css" />
|
||||
<link rel="stylesheet" href="/styles/header.css" />
|
||||
<link rel="stylesheet" href="/styles/footer.css" />
|
||||
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet" />
|
||||
|
||||
<link rel="icon" type="image/png" sizes="32x32"
|
||||
href="https://tickets.paris2024.org/obj/media/FR-Paris2024/specialLogos/favicons/favicon-32x32.png" />
|
||||
<script src="https://kit.fontawesome.com/f16a36bad3.js" crossorigin="anonymous"></script>
|
||||
<title>Jeux Olympiques - Paris 2024</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<?php include ($_SERVER['DOCUMENT_ROOT'] . '/views/header.php') ?>
|
||||
<!-- code de la page ici -->
|
||||
<!-- en t'appuyant sur la page /register/index.php, crée une page permettant de créer un utilisateur
|
||||
(avec menu déroulant pour le choix du rôle, à la place du code role) -->
|
||||
<div class="login-container">
|
||||
<img src="https://cdn-icons-png.flaticon.com/512/4139/4139948.png" alt="Avatar">
|
||||
<h2>Créer un compte</h2>
|
||||
<p>Créez un nouveau compte afin d'accéder à l'entièreté du site.</p>
|
||||
<form action="/admin/users/add/add.php" method="post">
|
||||
<div class="form-group">
|
||||
<label for="name"><span style="color:red;"><abbr title="Requis">*</abbr></span> Prénom</label>
|
||||
<input type="text" id="name" name="name" placeholder="Jean" required placeholder=" ">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="family_name"><span style="color:red;"><abbr title="Requis">*</abbr></span> Nom</label>
|
||||
<input type="text" id="family_name" name="family_name" placeholder="DUPONT" required placeholder=" ">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="email"><span style="color:red;"><abbr title="Requis">*</abbr></span> Adresse mail</label>
|
||||
<input type="email" id="email" name="email" placeholder="username@example.com" required placeholder=" ">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="password"><span style="color:red;"><abbr title="Requis">*</abbr></span> Mot de passe</label>
|
||||
<input type="password" id="password" name="password" required placeholder="••••••••" placeholder=" ">
|
||||
</div>
|
||||
|
||||
|
||||
<div class='form-group'>
|
||||
<label for='role'>Rôle à assigner</label>
|
||||
<select name='role' id='role'>
|
||||
<option>Administrateur</option>
|
||||
<option>Organisateur</option>
|
||||
<option>Sportif</option>
|
||||
<option>Spectateur</option>
|
||||
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<button type="submit" class="submit-button"><i class="fas fa-sign-in-alt"></i>
|
||||
Créer un compte</i></button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<?php include ($_SERVER['DOCUMENT_ROOT'] . '/views/footer.php') ?>
|
||||
</body>
|
||||
|
||||
</html>
|
40
admin/users/delete/index.php
Normal file
40
admin/users/delete/index.php
Normal file
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
require_once $_SERVER['DOCUMENT_ROOT'] . '/tools/dbConnect.php';
|
||||
session_start();
|
||||
|
||||
if (isset($_COOKIE['userData'])) {
|
||||
$userDataEncoded = $_COOKIE['userData'];
|
||||
$userData = json_decode($userDataEncoded, true); // 'true' pour obtenir un tableau associatif
|
||||
|
||||
$email = $userData['email'];
|
||||
$name = $userData['name'];
|
||||
$familyName = $userData['familyName'];
|
||||
$role = $userData['role'];
|
||||
}
|
||||
?>
|
||||
|
||||
<?php include ($_SERVER['DOCUMENT_ROOT'] . '/views/header.php') ?>=
|
||||
<!-- code de la page ici -->
|
||||
|
||||
<?php
|
||||
// script php ici
|
||||
if (isset($_GET['oldemail'])) {
|
||||
|
||||
// faire requete préparée à la bdd avec le mail, afin de supprimer l'utilisateur qui porte ce mail.
|
||||
$userEmail = htmlspecialchars($_GET['oldemail']);
|
||||
$stmt = mysqli_prepare($db, "DELETE FROM user WHERE mail=?");
|
||||
mysqli_stmt_bind_param($stmt, 's', $userEmail);
|
||||
$result = mysqli_stmt_execute($stmt);
|
||||
// si résultat de la requete renvoie != 0,
|
||||
echo "<p class='text'>L'utilisateur " . $userEmail . " a bien été supprimé.</p>";
|
||||
// rediriger l'utilisateur vers la page de gestion des utilisateurs
|
||||
include ($_SERVER['DOCUMENT_ROOT'] . '/views/footer.php');
|
||||
header("Location: /admin/users/?res=$userEmail");
|
||||
die();
|
||||
} else {
|
||||
include ($_SERVER['DOCUMENT_ROOT'] . '/views/footer.php');
|
||||
header("Location: /admin/users/?res=NONE");
|
||||
die();
|
||||
}
|
||||
|
||||
?>
|
48
admin/users/edit/index.php
Normal file
48
admin/users/edit/index.php
Normal file
@@ -0,0 +1,48 @@
|
||||
<?php
|
||||
require_once $_SERVER['DOCUMENT_ROOT'] . '/tools/dbConnect.php';
|
||||
session_start();
|
||||
|
||||
if (isset($_COOKIE['userData'])) {
|
||||
$userDataEncoded = $_COOKIE['userData'];
|
||||
$userData = json_decode($userDataEncoded, true); // 'true' pour obtenir un tableau associatif
|
||||
|
||||
$email = $userData['email'];
|
||||
$name = $userData['name'];
|
||||
$familyName = $userData['familyName'];
|
||||
$role = $userData['role'];
|
||||
}
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="stylesheet" href="/styles/main.css" />
|
||||
<link rel="stylesheet" href="/styles/header.css" />
|
||||
<link rel="stylesheet" href="/styles/footer.css" />
|
||||
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet" />
|
||||
|
||||
<link rel="icon" type="image/png" sizes="32x32"
|
||||
href="https://tickets.paris2024.org/obj/media/FR-Paris2024/specialLogos/favicons/favicon-32x32.png" />
|
||||
<script src="https://kit.fontawesome.com/f16a36bad3.js" crossorigin="anonymous"></script>
|
||||
<title>Titre de la page | Jeux Olympiques - Paris 2024</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<?php include ($_SERVER['DOCUMENT_ROOT'] . '/views/header.php') ?>=
|
||||
<!-- code de la page ici -->
|
||||
|
||||
<?php
|
||||
// script php ici
|
||||
if (isset($_GET['email'])) {
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
<?php include ($_SERVER['DOCUMENT_ROOT'] . '/views/footer.php') ?>
|
||||
</body>
|
||||
|
||||
</html>
|
@@ -57,6 +57,16 @@ if (isset($_COOKIE['userData'])) {
|
||||
echo "<p class='text'>Que souhaitez-vous faire ?</p>";
|
||||
// Affichage des utilisateurs
|
||||
echo "<div class='adm-users-container'>";
|
||||
// voir message de supression:
|
||||
if (isset($_GET['res'])) {
|
||||
$oldEmail = ($_GET['res']);
|
||||
echo "<p class='text' style='color:yellow; padding-left:0; text-align:center;'>L'utilisateur " . $oldEmail . " a bien été supprimé.</p>";
|
||||
}
|
||||
if (isset($_GET['newuser'])) {
|
||||
$newUserEmail = ($_GET['newuser']);
|
||||
echo "<p class='text' style='color:green; padding-left:0; text-align:center;'>L'utilisateur " . $newUserEmail . " a bien été créé.🦆</p>";
|
||||
|
||||
}
|
||||
$users = mysqli_query($db, "SELECT * FROM `user`");
|
||||
echo "<table class='table'>";
|
||||
echo "<tr>";
|
||||
@@ -72,17 +82,14 @@ if (isset($_COOKIE['userData'])) {
|
||||
echo "<td>" . $row['name'] . "</td>";
|
||||
echo "<td>" . $row['family_name'] . "</td>";
|
||||
echo "<td>" . $row['role'] . "</td>";
|
||||
echo "<td><a href='/admin/users/edit?email=" . $row['mail'] . "'>Modifier</a> | <a href='/admin/users/delete?email=" . $row['mail'] . "'>Supprimer</a></td>";
|
||||
echo "<td><a href='/admin/users/edit?email=" . $row['mail'] . "'>Modifier</a> | <a href='/admin/users/delete?oldemail=" . $row['mail'] . "'>Supprimer</a></td>";
|
||||
echo "</tr>";
|
||||
}
|
||||
echo "</table>";
|
||||
echo "</div>";
|
||||
echo "<a href='/admin/users/add'>Ajouter un utilisateur</a>
|
||||
";
|
||||
echo "<a href='/admin'>Retour au panel d'administration</a>
|
||||
";
|
||||
echo "<a href='/'>Retour à l'accueil</a>
|
||||
";
|
||||
echo "<button class='button-submit'><a href='/admin/users/add'>Ajouter un utilisateur</a></button>";
|
||||
echo "<button class='button-submit'><a href='/admin'>Retour au panel d'administration</a></button>";
|
||||
echo "<button class='button-submit'><a href='/'>Retour à l'accueil</a></button>";
|
||||
|
||||
//contenu de la page admin
|
||||
} ?>
|
||||
|
Reference in New Issue
Block a user