e59-website/html/users.php
2024-03-12 14:23:10 +00:00

168 lines
5.8 KiB
PHP

<?php
require "../include/variables.php";
require "../include/functions.php";
if($_SESSION['role'] < 3) {
header("Location: index.php");
http_response_code(404);
die();
}
if(isset($_POST['userid']) && isset($_POST['role']) && isset($_POST['accreditation']) && $_POST['userid'] != $_SESSION['userid']) {
$bdd = connect($dbhost, $dbname, $dbuser, $dbpass);
$req = $bdd->prepare("UPDATE users SET role = :role, accreditation = :accreditation WHERE ID = :userid");
$req->bindParam(':role',$_POST['role']);
$req->bindParam(':accreditation',$_POST['accreditation']);
$req->bindParam(':userid', $_POST['userid']);
if ($req->execute()) {
$status = "Utilisateur mis à jour";
} else {
$status = "Erreur SQL";
}
}
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta name="robots" content="noindex">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="./src/css/style.css">
<style>
@media (prefers-color-scheme: dark) {
.body {
<?=$theme_dark?>
}
}
@media (prefers-color-scheme: light) {
.body {
<?=$theme_light?>
}
}
.user {
background-color: var(--banner-background);
display: flex;
padding: 0.5em 1em 0.5em 0.5em;
border-radius: 10em;
width: 50%;
margin: 0 auto;
}
.user-username {
}
.user-display-name {
font-weight: bold;
display: flex;
}
.user-display-name .certification {
transform: translate(0, -15%);
width: 1.5em;
margin-left: 0.5em;
}
.user-names {
margin: auto;
}
.user-pp {
height: 6em;
}
.user-pp-image {
width: 6em;
height: 6em;
border-radius: 6em;
}
</style>
<link rel="icon" href="./src/img/favicon.ico">
<title><?=$title?></title>
</head>
<body class="body">
<header>
<div class="pancontent">
<div class="athena-container">
<a href="<?=$root?>">
<img src="./src/img/athena-mono.png" class="athena">
</a>
</div>
<div class="content">
<div>
<div class="main-title">
<div class="title"><?=$header_title?></div>
<div class="subtitle"><?=$header_subtitle?></div>
</div>
</div>
</div>
</div>
</header>
<nav>
<div class="pancontent">
<?php nav($nav);?>
</div>
</nav>
<main>
<div class="content">
<div>
<div class="status"><?=$status?></div>
<?php
$bdd = connect($dbhost, $dbname, $dbuser, $dbpass);
$req = $bdd->prepare("SELECT ID, display_name, username, email, role, accreditation, profile_picture FROM users ORDER BY creation_date DESC");
$req->execute();
$resultat = $req->fetchAll(PDO::FETCH_ASSOC);
if ($resultat) {
foreach($resultat as $row) {
$user_pp = $row['profile_picture'] == NULL ? "https://abs.twimg.com/sticky/default_profile_images/default_profile_400x400.png" : $row['profile_picture'];
echo "<div class='user'>";
echo "<a href='user.php?user=" . $row['username'] . "'>";
echo "<div class='user-pp'><img src='" . $user_pp . "' class='user-pp-image'/></div></a>";
echo "<div>";
echo "<div class='user-names'>";
echo "<div class='user-display-name'>" . $row['display_name'] . "</div>";
echo "<div class='user-username'>@" . $row['username'] . "</div>";
echo "</div>";
echo "<div class='user-perms'>";
echo "<div><select name='accreditation' required>";
foreach($classifications as $id => $nom) {
if($row['accreditation'] == $id) {
echo '<option value="' . $id .'" selected>' . $nom . '</option>';
} else {
echo '<option value="' . $id .'">' . $nom . '</option>';
}
}
echo "</select>";
echo "<select name='role' required>";
foreach($roles as $id => $nom) {
if($row['accreditation'] == $id) {
echo '<option value="' . $id .'" selected>' . $nom . '</option>';
} else {
echo '<option value="' . $id .'">' . $nom . '</option>';
}
}
echo "</select></div>";
echo "<input type='hidden' name='userid' value='" . $row['ID'] . "'><input type='submit' value='Mettre à jour'></div></form></div>";
echo "</div>";
echo "</div>";
echo "</div>";
}
}
?>
</div>
</div>
</div>
</main>
<footer>
<div class="content">
<div>
<div><?=$copyright?></div>
</div>
</div>
</footer>
</body>
</html>