Merge pull request #71 from ThomasRubini/manage-users-view

This commit is contained in:
Thomas Rubini 2023-01-24 21:00:24 +01:00 committed by GitHub
commit d0648e30d0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 66 additions and 20 deletions

View File

@ -20,19 +20,19 @@ final class ManageUserController
private function searchViewAction(Array $A_urlParams = null, Array $A_postParams = null, Array $A_getParams = null)
{
View::show("manageUser/search");
View::show("manageUser/manage_users", array("QUERY" => null));
}
private function searchQueryViewAction(Array $A_urlParams = null, Array $A_postParams = null, Array $A_getParams = null)
{
$S_query = $A_getParams["query"];
$A_results = UserModel::searchUsers($S_query);
var_dump($A_results);
echo "Terme de recherche choisi: $S_query";
View::show("manageUser/search");
$A_results = UserModel::searchUsers($S_query);
View::show("manageUser/manage_users", array(
"QUERY" => $S_query,
"RESULTS" => $A_results)
);
}
}

View File

@ -66,6 +66,12 @@ final class UserModel extends UserSessionModel
$stmt->execute();
}
private static function createFromRow($A_row, $I_ID){
$O_user = new UserModel($A_row["EMAIL"],$A_row["USERNAME"],$A_row["PASS_HASH"],$A_row["LAST_SEEN"],$A_row["FIRST_SEEN"],$A_row["ADMIN"],$A_row["DISABLED"]);
$O_user->I_ID = $I_ID;
return $O_user;
}
public static function getByID($I_id){
$O_model = Model::get();
$stmt = $O_model->prepare("SELECT * FROM USER WHERE ID=:id");
@ -75,9 +81,7 @@ final class UserModel extends UserSessionModel
$row = $stmt->fetch();
if ($row === false) return null;
$O_user = new UserModel($row["EMAIL"],$row["USERNAME"],$row["PASS_HASH"],$row["LAST_SEEN"],$row["FIRST_SEEN"],$row["ADMIN"],$row["DISABLED"]);
$O_user->I_ID = $I_id;
return $O_user;
return self::createFromRow($row, $I_id);
}
public static function isEmailInDatabase($S_email){
@ -117,11 +121,15 @@ final class UserModel extends UserSessionModel
return $row["PROFILE_PIC"];
}
public function getProfilePicLink(){
return "/user/profilePic/".$this->I_ID;
}
public static function searchUsers($S_query)
{
$O_model = Model::get();
$stmt = $O_model->prepare("
SELECT ID, EMAIL, USERNAME
SELECT *
FROM USER
WHERE USER.USERNAME LIKE :full_query
OR USER.EMAIL LIKE :full_query
@ -130,8 +138,13 @@ final class UserModel extends UserSessionModel
$S_full_query = "%".$S_query."%";
$stmt->bindParam("full_query", $S_full_query);
$stmt->execute();
$rows = $stmt->fetchAll();
return $rows;
$A_users = array();
foreach($stmt->fetchAll() as $row){
array_push($A_users, self::createFromRow($row, $row["ID"]));
}
return $A_users;
}
public static function anonymiseByID($I_id){

View File

@ -0,0 +1,40 @@
<main>
<h1 class="accounts_management_title">Gestion de comptes</h1>
<form method="GET" action="/manageUser/search">
<label for="username">Saisissez un nom d'utilisateur</label>
<input type="search" id="username" name="query" placeholder="Nom de l'utilisateur">
</form>
<section>
<?php
$S_query = $A_view["QUERY"];
if ($S_query === null) {
echo '<h2 class="username_required_title">Nom d\'utilisateur requis</h2>
<p class="username_required_description">Un nom d\'utilisateur est requis pour gérer des utilisateurs.</p>';
} else {
$A_results = $A_view["RESULTS"];
echo '<h3 class="username_searched">' . $S_query . '</h3>';
if (empty($A_results)) {
echo '<h2 class="no_user_results_title">Aucun résultat</h2>
<p class="no_user_results_description">Vérifiez l\'orthographe et la casse de votre saisie.</p>';
} else {
echo '<ul class="user_account_list">';
foreach ($A_results as $O_user) {
echo '<li class="user_account" data-id="' . $O_user->I_ID . '">
<img class="user_acccount_picture" src=' . $O_user->getProfilePicLink() . ' alt="Photo de profil de ' . $O_user->S_USERNAME . '">
<h3 class="user_account_name">' . $O_user->S_USERNAME . '</h3>
</li>';
}
echo '</ul>
<form method="POST" action="manage_users">
<input id="accounts_to_manage" type="text" hidden>
<input type="submit" name="enable" value="Activer">
<input type="submit" name="disable" value="Désactiver">
<input type="submit" value="Supprimer">
</form>';
}
}
?>
</section>
</main>

View File

@ -1,7 +0,0 @@
<p> Default view </p>
<p> Please search : </p>
<form action="/manageUser/search" method="GET">
<input name="query">
<input type="submit" value="Chercher">
</form>