enorme push

This commit is contained in:
2024-10-25 16:49:52 +02:00
parent 829d121268
commit 52faa489fa
23 changed files with 448 additions and 166 deletions

View File

@@ -28,7 +28,7 @@ function AddRole(string $name): void
CloseDataBase();
}
function GetRole(int $id): Role
function GetRole(int $id)
{
global $db;
@@ -64,7 +64,7 @@ function GetRoles(): array
$roles = array();
foreach ($result as $role) {
array_push($roles, new User($role));
array_push($roles, new Role($role));
}
return $roles;
@@ -78,9 +78,23 @@ function UpdateRole(Role $role): void
$sql = "UPDATE `roles` SET `name`=:name WHERE `id`=:id;";
$query = $db->prepare($sql);
$query->bindValue(':login', $role->name, PDO::PARAM_STR);
$query->bindValue(':name', $role->name, PDO::PARAM_STR);
$query->bindValue(':id', $role->id, PDO::PARAM_INT);
$query->execute();
CloseDataBase();
}
function DeleteRole(int $id)
{
global $db;
ConnectDataBase();
$sql = "DELETE FROM `roles` WHERE `id`=:id;";
$query = $db->prepare($sql);
$query->bindValue(':id', $id, PDO::PARAM_INT);
$query->execute();
CloseDataBase();
}

View File

@@ -1,15 +1,25 @@
<?php
/* inclure l'autoloader */
require_once('../vendor/autoload.php');
function renderTwig(string $file, $donnees) {
$SERVER_ROOT = $_SERVER['DOCUMENT_ROOT'] . "/tpCrudTwig";
require_once($SERVER_ROOT . '/vendor/autoload.php');
function renderTwig(string $file, $donnees)
{
global $SERVER_ROOT;
/* templates chargés à partir du système de fichiers (répertoire vue) */
$loader = new Twig\Loader\FilesystemLoader('../templates');
$loader = new Twig\Loader\FilesystemLoader($SERVER_ROOT . "/templates");
/* options : prod = cache dans le répertoire cache, dev = pas de cache */
$options_prod = array('cache' => 'cache', 'autoescape' => true);
$options_dev = array('cache' => false, 'autoescape' => true);
/* stocker la configuration */
$twig = new Twig\Environment($loader);
$message = isset($_SESSION['message']) ? $_SESSION['message'] : "";
$error = isset($_SESSION['error']) ? $_SESSION['error'] : "";
$donnees["message"] = $message;
$donnees["error"] = $error;
/* charger+compiler le template, exécuter, envoyer le résultat au navigateur */
echo $twig->render($file, $donnees);
}

View File

@@ -1,15 +1,17 @@
<?php
require_once('DataBase.php');
require_once('Role.php');
class User {
class User
{
public int $id;
public string $login;
public string $password;
public string $firstname;
public string $lastname;
public string $description;
public int $role;
public Role $role;
public bool $enabled;
function __construct(array $table)
@@ -20,12 +22,12 @@ class User {
$this->firstname = $table['firstname'];
$this->lastname = $table['lastname'];
$this->description = $table['description'];
$this->role = $table['role'];
$this->role = GetRole((int) $table['role']);
$this->enabled = $table['enabled'];
}
}
function GetUsers() : array
function GetUsers(): array
{
global $db;
@@ -47,7 +49,7 @@ function GetUsers() : array
return $users;
}
function GetUser(int $id) : User
function GetUser(int $id): User
{
global $db;
@@ -95,7 +97,7 @@ function UpdateUser(User $user)
$query = $db->prepare($sql);
$query->bindValue(':login', $user->login, PDO::PARAM_STR);
$query->bindValue(':description', $user->description, PDO::PARAM_STR);
$query->bindValue(':role', $user->role, PDO::PARAM_INT);
$query->bindValue(':role', $user->role->id, PDO::PARAM_INT);
$query->bindValue(':id', $user->id, PDO::PARAM_INT);
$query->execute();