From 52faa489fa9b2fc870a92c747152c51a42028549 Mon Sep 17 00:00:00 2001 From: Persson-dev Date: Fri, 25 Oct 2024 16:49:52 +0200 Subject: [PATCH] enorme push --- tpCrudTwig/public/delete.php | 8 -- tpCrudTwig/public/images/suisse.png | Bin 0 -> 7283 bytes tpCrudTwig/public/index.php | 10 ++- tpCrudTwig/public/roles/add.php | 21 ++++++ tpCrudTwig/public/roles/delete.php | 14 ++++ tpCrudTwig/public/roles/details.php | 0 tpCrudTwig/public/roles/edit.php | 32 ++++++++ tpCrudTwig/public/roles/list.php | 12 +++ tpCrudTwig/public/{ => users}/add.php | 22 ++++-- tpCrudTwig/public/users/delete.php | 14 ++++ tpCrudTwig/public/{ => users}/details.php | 7 +- tpCrudTwig/public/{ => users}/edit.php | 21 ++++-- tpCrudTwig/src/Role.php | 20 ++++- tpCrudTwig/src/Twig.php | 18 ++++- tpCrudTwig/src/User.php | 14 ++-- tpCrudTwig/templates/base.twig | 88 ++++++++++++++++++++++ tpCrudTwig/templates/roles/add.twig | 16 ++++ tpCrudTwig/templates/roles/edit.twig | 17 +++++ tpCrudTwig/templates/roles/index.twig | 36 +++++++++ tpCrudTwig/templates/users/add.twig | 62 +++++++-------- tpCrudTwig/templates/users/details.twig | 47 ++++++------ tpCrudTwig/templates/users/edit.twig | 52 ++++++------- tpCrudTwig/templates/users/index.twig | 83 ++++++++++---------- 23 files changed, 448 insertions(+), 166 deletions(-) delete mode 100644 tpCrudTwig/public/delete.php create mode 100644 tpCrudTwig/public/images/suisse.png create mode 100644 tpCrudTwig/public/roles/add.php create mode 100644 tpCrudTwig/public/roles/delete.php create mode 100644 tpCrudTwig/public/roles/details.php create mode 100644 tpCrudTwig/public/roles/edit.php create mode 100644 tpCrudTwig/public/roles/list.php rename tpCrudTwig/public/{ => users}/add.php (51%) create mode 100644 tpCrudTwig/public/users/delete.php rename tpCrudTwig/public/{ => users}/details.php (64%) rename tpCrudTwig/public/{ => users}/edit.php (61%) create mode 100644 tpCrudTwig/templates/roles/add.twig create mode 100644 tpCrudTwig/templates/roles/edit.twig create mode 100644 tpCrudTwig/templates/roles/index.twig 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 @@ -b3Lam%nY~jO7H>z zfNgjqeJl1qY5m%=nSG}Zrq}=gd}Sdv_ADzxAdt@RrBJ=eKvpoF3?v6pDF8sw>#55Q z3>l2D{+izz4ClgoweBZ{zAE(@VhtiDd?rc-p{rL)-K_Akf-!Y{T;zp_HQ~9vF0aU5 zZc3=~G;ndZ+gv)d!=*S}EB)N)TqUD2g6TVxTEG3O(=o4mtA$H@)))ht^7kO=zT+MG z{{7mq<=Um89IgYVET~93=*2~U^Y-b}QIEpui`-QMPSmo>{wLjCpTk!fTx+r6&ySAW zopzb}Ht^Tms+4=XDhH1BhMlDE7MyoQW=(7lTaL60doddN4sjyPDN66^()g^Wy{xBa z7~G zn9Qz^y*XD^aPd}}Z|rX6ER#dWsXd~ra(N1)eL;urge3AdnW+bvcctx98q9VoQukXq zoS%A0{F~~-k98~KHTNC#W}9DR&YoQk7&P%9oG?}%-5ScjN;s?Dq^jQRaO=(|2LI={ zM#=cF6`zMIkuevdn0K|pPB{19EP?6CS(uz<=;?u>_0Ux8p77f|>Xbrx4H+B6~3%+%GmtC&}qZwJ8F%VSO;KG|UOr{$0nW_Jj=SnfJAHSsEgMwDSo z11X<*{PJ_Pw&x|!vAvT`#kU{FryO$dFY74p&1sEOpQ>yss+fZ0T;Z0nOe85<<>Djs zrvxTWEuynWrmrvUP?WOYV>v`qgj%beNXmi99O>6LtUY@&GI~J*;p80aB9jj**;dQf zNF=ph0_O|KMER*_)K=BDeA%BZasSaywDn->y`>C;7LT!qyY9#Pg^HHtB9Z2`MM^gL zuXR4dbf+E$P{Bskwk~U>iyhs8=fuH_rwoEqXsI>aDwr zbGw*qkSM_il-nf-7dw!d_*g4P(zA&$VxMm`dwd`ddVnFWq=>??UTI%zb`D9n_qmwT z_5o+-cb>Z>recp$uurIu@K=w)&e)r_I3wQvxthaASx42PJwH2Ii>KG+6~0O8S4=#f zRy+TBXv-X}!JdC2)MV!Eycr<_Z=iU)aAY;v;wqT*&~beH0AW$+Y^nG#c`LK?NE%os z%GuN)G}POb%DKYdubRf5sV;|9YQVchc1U$lc+Qyiyui4041&v^mMl`SbL| z&ESZkm9CCW@!}kh>^gP0n|F5A7u|W1ASGoch)2xw&8Nu%QYTsUX*`QcRs$ExS$&-Hw>Duy1L*#rZEciL(Ms2zdKsO7#_ zlslM^b-R}LioHpV*PTK+Zk=f^DYEA2SP;m%ysPeJaM^?2(?~^)QT4y1 zZ&r)tnI8~4Kx!47%xK{Dlfl-N=MvR9+;OXGfU5Mud>l0H` zQC@byM?x1KI^DYPeA%CZl;u-=RbI*D6w7*gjuE@f>hblW^ZPNAoab$9raBuYmP}fW zQ)gux56UmSm>UWlKR=LHZx#I&slAHSe12$YHh-Le)P~3}$#RTu3MtAezs2vEDCH1V z*z>{8%XRW;B-dS^_wvEySdf6rR7c8i`GN_Tba<)NSdyHFpfFNQ1IHh3vmCBHBtIHf z%qL~A$iU^EQ|amBXtQX1q1~A0vTOHtbSl_7lc>zMasc2X&E;^!bImxmP~gb61wOcC6pW z?q&oxhp~EJR8nZ=9GZo16#yc7$~Gpm0Lhnlv8EuyHC-pys#_HXk~iODIA7AmVOU$4 zl9Z5V+1X1R`$*u(sf!m7X==%_35155!xJ&h`<|S<@>WdtGT0Jzf;vM9NB{Lipg9Z| zmVMR?qzXL+=Qyhmof>?(w^?UQ$WpTWyy3ZhP4~w3WtZJm?f68v8w$|`sdMx5OBi_Y z_)E(~ejPJbRZfCf9#_!{=JrwNjE~*TQ(e0f>Xq{GCgwKZwv!)9Ee-Ynj1{eCZ;!ow z`#M_H!YXItL-4|-RI7e7Ii#{rLG`z);M6;hH4xi{K_9BGWk?;6sY;r#mXmHQ31t$b zY}H@46wirB`?gYD--vceOHR_A{oO=0`^VlqF2p8}J~e}h8PaaVe7Ge3*UdK5j!n1m zF)5ey226rQDQBIDu@X*XFZ~5bjocJ4&b2#nPw7?t(pll@XI`gBw`UVx#JsaBS@0}+ zBIUta+ls6$s>ahmSGdlY$L+zryPRbDpw)dxy7<7!!<6enAzSh^{Owc}dffREp5i3I zvI*C=$tgyJWO1BQ@DB`J-kVF?rY`rXfp8(`n&GBWjhADYuLPJ&(YEv4V}~^NPl@hS z|ASOluk-eB-e9H&NYuR8e+kj zLnYO|j{a7aTZE?@(mVN^CvqsdihZvV?rS9m+ z;&fhbO>257uldB$@4*e{TGf))f#eGs=8&n_SMNOhlW#enJH;g}u4n#LFk=hPydvIk zPpkDjg^-Uy_aidt&+leh?_M0&QWn7P*9mmy2)Np!b52YXJSQepeR7f7^)S9I_UeHI z{%xL^hFZ?|A0VQe9^5f3k2ErJmYA3mjNLWbKU~>~&NYs@Ko~pbh^3azb4ZODe{DTe zbU?x^Tc+{Br|2%=(3gpW`7Z8Q=sxV|@TvATuJo(#EbTWXmz9b+`#HQOlTq`y<&3Q< zceg>DUKhWVd~n{r=auJsayf2~ep;0cK`-paQ>z<(dX7bz&#sG>Y|Y3mBelL7w3E|s zQ%wx;tnNQG*ZzDgqvlq@+Dpv*qaEL5cAU4J&l-t1$e$)}DI{bK0B}T8_4F+8dU`)! z;MuS3X-Cg%8rA4X*10<6THO#3O&(0h!a4}<^lMiV$vSX-r=!2h{dvACNLfWlT$ERJ zb$s28<7Z2X1d5`7UpNLQ-{y>gGd_MalzL~-}4ATn~gdL1XX zj16pt6!l)IdUY6M}~ z06t_E0T|@tO=Dt%G(j785H$b}(&7bb zFh~@vmA=6b2=HsWG0b8rL(BMG~hZW!Ohp7r3nJD*MUF%^P!uX{tZuK{$PR42Q-L4hr%E#P#+)Y z?;1=NE`Sa4!=eAG!L(ubrBEv})7PItB;x|eG?vWo5G3N?`gDJW_eMA*B9!b+_F;=M z*;ZkHm^8$jTKuiCPJuhshrXf3Ci@Rb7M1dgtUr8PU)c!fcSqRjf8+ik{WJCrVYZa1 zDOTT?=)dkBUSAWmZXZkXB~nS)jUf@PMnaJ=FffXuiUuQ5FcR1e0f&K+a3V=n6@hR= zkcq!R;b}}3fkq^+L$SdjR5p$(0SQMEF{)rU3Yh>#VpND=H3|g|Mo=h7I2i$RBcWiw zL6|eB?5ZSq|L)Z~6p0O`hEgNAQBW#in5r8Qj6@>QU^f_n0!G15Xc*CrKtQ;C_l88o z8u&7N2<&uHeF*MkD4piMVPlhQ$wLu5Wj@%$P6aC64x3&9Sc^E zK_;+#88*JY-kP9wmw@Y<8|4ku_?{FaDw8b{yk7A?YTlac_x&7I8N-#-fK=REblB#Y>VQYFDjC@`7LCm2bjAi!#BWK}Q< zg;ay7xw(;1MD(BNOkWBskia18y0ar?N5d|ljc9-h8&oR(DIMrRUgt>#js(M0z;J{O zOce`9V^Qe+DsZfd3JCfmVCed;{u!|b^#5?8u_5r=F~HXQKF2;@*ryfr@8jwRXX`Zn z4}U*$@jtY{hW^*cKjQaay8fl>A2INcg#WFsf9d*14E!VEf2-^NjV|6_4G)>dehUg@ zw=+eO3_o@&wAszXP#+);kO1t4^TY(OXSULf9GC!rK+XEaQSWdYs>x0AhT7o3W_5O>(vzq|5tY+1by^@`9sp6oC&jNEnZSt07O zY()(tV~+gQP$#dA;Z-J=(d3zwZzyA;6X`+F(dcz@xH`2{kb{Hm+(wuMirVR0Vj^uE z+vEfB0yi|DeAb0`FNd6^QYte#dYwMeT~S8g*1oM`SA%vraQ@W#gPeqj0d-y_l|xz= SMYpo^1i<6W^otH0iTV#$e&>Dw literal 0 HcmV?d00001 diff --git a/tpCrudTwig/public/index.php b/tpCrudTwig/public/index.php index a61ba0a..9e06843 100644 --- a/tpCrudTwig/public/index.php +++ b/tpCrudTwig/public/index.php @@ -1,6 +1,12 @@ 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 @@ + + + + + + + {% block title %}{% endblock %} + + + + +
+ +
+ +
+ {% block content %} + {% endblock %} + {% if message is not empty %} + + {% endif %} + {% if error is not empty %} + + {% endif %} +
+
+ {% block footer %} + © Copyright {{ "now"|date('Y') }} de Simon Pribylski. + {% endblock %} +
+ + + + + \ No newline at end of file diff --git a/tpCrudTwig/templates/roles/add.twig b/tpCrudTwig/templates/roles/add.twig new file mode 100644 index 0000000..e30163d --- /dev/null +++ b/tpCrudTwig/templates/roles/add.twig @@ -0,0 +1,16 @@ +{% extends "base.twig" %} + +{% block title %}Ajouter rôle{% endblock %} + + + +{% block content %} + +

Ajouter un rôle

+ + +{% endblock %} \ No newline at end of file diff --git a/tpCrudTwig/templates/roles/edit.twig b/tpCrudTwig/templates/roles/edit.twig new file mode 100644 index 0000000..426b2e2 --- /dev/null +++ b/tpCrudTwig/templates/roles/edit.twig @@ -0,0 +1,17 @@ +{% extends "base.twig" %} + +{% block title %}Modification du rôle{% endblock %} + + + +{% block content %} + +

Modifier un rôle

+
+ + + + +
+ +{% endblock %} \ No newline at end of file diff --git a/tpCrudTwig/templates/roles/index.twig b/tpCrudTwig/templates/roles/index.twig new file mode 100644 index 0000000..5d3c717 --- /dev/null +++ b/tpCrudTwig/templates/roles/index.twig @@ -0,0 +1,36 @@ +{% extends "base.twig" %} + +{% block title %}Liste des rôles{% endblock %} + + + + +{% block content %} + +

Liste des rôles

+ + + + + + + {# afficher les roles #} + {% for role in roles %} + + + + + + {% endfor %} + +
IDNom
{{ role.id }}{{ role.name }} + + + +
+ + +{% endblock %} \ No newline at end of file diff --git a/tpCrudTwig/templates/users/add.twig b/tpCrudTwig/templates/users/add.twig index 5630e48..c699739 100644 --- a/tpCrudTwig/templates/users/add.twig +++ b/tpCrudTwig/templates/users/add.twig @@ -1,33 +1,35 @@ - - +{% extends "base.twig" %} - - - - {# #} - {# #} - Ajouter utilisateur - +{% block title %}Ajouter utilisateur{% endblock %} - -
-

Ajouter un utilisateur

- -
- - \ No newline at end of file + +{% block content %} + +

Ajouter un utilisateur

+ + +{% endblock %} \ No newline at end of file diff --git a/tpCrudTwig/templates/users/details.twig b/tpCrudTwig/templates/users/details.twig index e73cc49..cc15101 100644 --- a/tpCrudTwig/templates/users/details.twig +++ b/tpCrudTwig/templates/users/details.twig @@ -1,29 +1,24 @@ - - +{% extends "base.twig" %} - - - Détails de l'utilisateur - - {# #} - {# #} - +{% block title %}Détails de l'utilisateur{% endblock %} - -
-

Détails pour l’utilisateur {{ user.login }}

-
-

ID : {{ user.id }}

-

Login : {{ user.login }}

-

FirstName : {{ user.firstname }}

-

LastName : {{ user.lastname }}

-

Role : {{ user.role }}

-
-
- - -
-
- - \ No newline at end of file + +{% block content %} + +

Détails pour l’utilisateur {{ user.login }}

+
+

ID : {{ user.id }}

+

Login : {{ user.login }}

+

FirstName : {{ user.firstname }}

+

LastName : {{ user.lastname }}

+

Role : {{ user.role.name }}

+
+
+ + +
+ +{% endblock %} \ No newline at end of file diff --git a/tpCrudTwig/templates/users/edit.twig b/tpCrudTwig/templates/users/edit.twig index 6566bc1..1af12f3 100644 --- a/tpCrudTwig/templates/users/edit.twig +++ b/tpCrudTwig/templates/users/edit.twig @@ -1,30 +1,28 @@ - - +{% extends "base.twig" %} - - - - Modification de l'utilisateur - - {# #} - {# #} - +{% block title %}Modification de l'utilisateur{% endblock %} - -
-

Modifier un utilisateur

-
- - - - - - - - -
-
- - \ No newline at end of file + +{% block content %} + +

Modifier un utilisateur

+
+ + + + + + + + +
+ +{% endblock %} \ No newline at end of file diff --git a/tpCrudTwig/templates/users/index.twig b/tpCrudTwig/templates/users/index.twig index a742497..8813c99 100644 --- a/tpCrudTwig/templates/users/index.twig +++ b/tpCrudTwig/templates/users/index.twig @@ -1,48 +1,43 @@ +{% extends "base.twig" %} - - +{% block title %}Liste des utilisateurs{% endblock %} - - - - {# #} - {# #} - - Liste des utilisateurs - - -
-

Liste des utilisateurs

- - - - - - - - - - - {# afficher les utilisateurs #} - {% for user in users %} - - - - - - - - - {% endfor %} - -
IDLoginNomPrenomRôleActions
{{ user.id }}{{ user.login }}{{ user.lastname }}{{ user.firstname }}{{ user.role }} - - - -
- -
- - \ No newline at end of file + +{% block content %} + +

Liste des utilisateurs

+ + + + + + + + + + + {# afficher les utilisateurs #} + {% for user in users %} + + + + + + + + + {% endfor %} + +
IDLoginNomPrenomRôleActions
{{ user.id }}{{ user.login }}{{ user.lastname }}{{ user.firstname }}{{ user.role.name }} + + + +
+ + +{% endblock %} \ No newline at end of file