diff --git a/tpCrudTwig/public/delete.php b/tpCrudTwig/public/delete.php deleted file mode 100644 index 3037227..0000000 --- a/tpCrudTwig/public/delete.php +++ /dev/null @@ -1,8 +0,0 @@ - GetUsers())); + +$_SESSION['message'] = $_SESSION['error'] = ""; diff --git a/tpCrudTwig/public/roles/add.php b/tpCrudTwig/public/roles/add.php new file mode 100644 index 0000000..e67dd09 --- /dev/null +++ b/tpCrudTwig/public/roles/add.php @@ -0,0 +1,21 @@ +name = $name; + + UpdateRole($role); + + $_SESSION['message'] = "Rôle modifié avec succès !"; + header('Location: /tpCrudTwig/public/roles/list.php'); + } +} +if (isset($_GET['id']) && !empty($_GET['id'])) { + $id = strip_tags($_GET['id']); + $role = GetRole($id); +} + +renderTwig("roles/edit.twig", array("role" => $role)); diff --git a/tpCrudTwig/public/roles/list.php b/tpCrudTwig/public/roles/list.php new file mode 100644 index 0000000..8b9e2b2 --- /dev/null +++ b/tpCrudTwig/public/roles/list.php @@ -0,0 +1,12 @@ + GetRoles()]); + +$_SESSION['message'] = $_SESSION['error'] = ""; diff --git a/tpCrudTwig/public/add.php b/tpCrudTwig/public/users/add.php similarity index 51% rename from tpCrudTwig/public/add.php rename to tpCrudTwig/public/users/add.php index ae97e05..f5163eb 100644 --- a/tpCrudTwig/public/add.php +++ b/tpCrudTwig/public/users/add.php @@ -1,7 +1,12 @@ GetRoles()]); diff --git a/tpCrudTwig/public/users/delete.php b/tpCrudTwig/public/users/delete.php new file mode 100644 index 0000000..96b8784 --- /dev/null +++ b/tpCrudTwig/public/users/delete.php @@ -0,0 +1,14 @@ +login = $login; $user->description = $description; - $user->role = $role; - + $user->role = GetRole((int)$role); + UpdateUser($user); - header('Location: index.php'); + $_SESSION['message'] = "Utilisateur modifié avec succès !"; + header('Location: /tpCrudTwig/public/index.php'); } } if (isset($_GET['id']) && !empty($_GET['id'])) { $id = strip_tags($_GET['id']); $user = GetUser($id); -} +} -renderTwig("users/edit.twig", array("user" => $user)); +renderTwig("users/edit.twig", array("user" => $user, "roles" => GetRoles())); diff --git a/tpCrudTwig/src/Role.php b/tpCrudTwig/src/Role.php index cb99c51..b5d1e7e 100644 --- a/tpCrudTwig/src/Role.php +++ b/tpCrudTwig/src/Role.php @@ -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(); +} diff --git a/tpCrudTwig/src/Twig.php b/tpCrudTwig/src/Twig.php index 0a6831c..df2340d 100644 --- a/tpCrudTwig/src/Twig.php +++ b/tpCrudTwig/src/Twig.php @@ -1,15 +1,25 @@ '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); } diff --git a/tpCrudTwig/src/User.php b/tpCrudTwig/src/User.php index e14e2f5..29b99cb 100644 --- a/tpCrudTwig/src/User.php +++ b/tpCrudTwig/src/User.php @@ -1,15 +1,17 @@ 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(); diff --git a/tpCrudTwig/templates/base.twig b/tpCrudTwig/templates/base.twig index e69de29..10cfd5b 100644 --- a/tpCrudTwig/templates/base.twig +++ b/tpCrudTwig/templates/base.twig @@ -0,0 +1,88 @@ + + + +
+ + +| ID | +Nom | + + + {# afficher les roles #} + {% for role in roles %} +|
|---|---|---|
| {{ role.id }} | +{{ role.name }} | ++ + + + | +
ID : {{ user.id }}
-Login : {{ user.login }}
-FirstName : {{ user.firstname }}
-LastName : {{ user.lastname }}
-Role : {{ user.role }}
-ID : {{ user.id }}
+Login : {{ user.login }}
+FirstName : {{ user.firstname }}
+LastName : {{ user.lastname }}
+Role : {{ user.role.name }}
+| ID | -Login | -Nom | -Prenom | -Rôle | -Actions | - - - {# afficher les utilisateurs #} - {% for user in users %} -
|---|---|---|---|---|---|
| {{ user.id }} | -{{ user.login }} | -{{ user.lastname }} | -{{ user.firstname }} | -{{ user.role }} | -- - - - | -
| ID | +Login | +Nom | +Prenom | +Rôle | +Actions | + + + {# afficher les utilisateurs #} + {% for user in users %} +
|---|---|---|---|---|---|
| {{ user.id }} | +{{ user.login }} | +{{ user.lastname }} | +{{ user.firstname }} | +{{ user.role.name }} | ++ + + + | +