1
|
|
|
<?php |
2
|
|
|
namespace core\admin; |
3
|
|
|
|
4
|
|
|
use core\App; |
5
|
|
|
use core\auth\Encrypt; |
6
|
|
|
use core\auth\Membre; |
7
|
|
|
use core\Configuration; |
8
|
|
|
use core\functions\ChaineCaractere; |
9
|
|
|
use core\HTML\flashmessage\FlashMessage; |
10
|
|
|
use core\mail\Mail; |
11
|
|
|
|
12
|
|
|
class Admin extends Membre { |
13
|
|
|
private $acces_admin; |
14
|
|
|
|
15
|
|
|
|
16
|
|
|
//-------------------------- CONSTRUCTEUR ----------------------------------------------------------------------------// |
17
|
|
|
public function __construct($id_identite) { |
18
|
|
|
$dbc = \core\App::getDb(); |
19
|
|
|
|
20
|
|
|
//on récupere le lvl de l'admin |
21
|
|
|
$query = $dbc->select("acces_admin")->from("identite")->where("ID_identite", "=", $id_identite)->get(); |
22
|
|
|
if (count($query) > 0) { |
23
|
|
|
foreach ($query as $obj) { |
24
|
|
|
$this->acces_admin = $obj->acces_admin; |
25
|
|
|
} |
26
|
|
|
} |
27
|
|
|
|
28
|
|
|
//si on ne passe pas dans le foreach -> on est pas admin donc on deco le compte |
29
|
|
|
if ($this->acces_admin != 1) { |
30
|
|
|
FlashMessage::setFlash("Vous n'êtes pas un administrateur, vous ne pouvez pas accéder à cette page"); |
31
|
|
|
header("location:".WEBROOT); |
32
|
|
|
} |
33
|
|
|
} |
34
|
|
|
//-------------------------- FIN CONSTRUCTEUR ----------------------------------------------------------------------------// |
35
|
|
|
|
36
|
|
|
|
37
|
|
|
|
38
|
|
|
//-------------------------- GETTER ----------------------------------------------------------------------------// |
39
|
|
|
public function getAccesAdmin() { |
40
|
|
|
return $this->acces_admin; |
41
|
|
|
} |
42
|
|
|
|
43
|
|
|
|
44
|
|
|
/** |
45
|
|
|
* Pour récupérer la liste de tous les users afin d'activer un compte ou modifier des trucs dessus |
46
|
|
|
* si archiver == null on récupère les utilisateurs actifs sur le site sinon on récupere les utilisateurs archives |
47
|
|
|
*/ |
48
|
|
|
public function getAllUser() { |
49
|
|
|
$dbc = \core\App::getDb(); |
50
|
|
|
$query = $dbc->select()->from("identite")->where("ID_identite", ">", 1)->get(); |
51
|
|
|
if ((is_array($query)) && (count($query) > 0)) { |
52
|
|
|
$values = []; |
53
|
|
|
foreach ($query as $obj) { |
54
|
|
|
$values[] = [ |
55
|
|
|
"id_identite" => $obj->ID_identite, |
56
|
|
|
"nom" => $obj->nom, |
57
|
|
|
"prenom" => $obj->prenom, |
58
|
|
|
"pseudo" => $obj->pseudo, |
59
|
|
|
"mail" => $obj->mail, |
60
|
|
|
"img_profil" => $obj->img_profil, |
61
|
|
|
"valide" => $obj->valide, |
62
|
|
|
"archiver" => $obj->archiver |
63
|
|
|
]; |
64
|
|
|
} |
65
|
|
|
App::setValues(["all_users" => $values]); |
66
|
|
|
} |
67
|
|
|
} |
68
|
|
|
|
69
|
|
|
/** |
70
|
|
|
* Fonctio qui premet de setter les différents élément d'un user |
71
|
|
|
* @param $id_identite |
72
|
|
|
*/ |
73
|
|
|
public function getunUser($id_identite) { |
74
|
|
|
$dbc = \core\App::getDb(); |
75
|
|
|
$query = $dbc->select()->from("identite")->where("ID_identite", "=", $id_identite); |
76
|
|
|
|
77
|
|
|
if ((is_array($query)) && (count($query) > 0)) { |
78
|
|
|
foreach ($query as $obj) { |
79
|
|
|
$this->id_identite = $obj->ID_identite; |
80
|
|
|
$this->nom = $obj->nom; |
81
|
|
|
$this->prenom = $obj->prenom; |
82
|
|
|
$this->img = $obj->img_profil; |
83
|
|
|
$this->mail = $obj->mail; |
84
|
|
|
$this->valide = $obj->valide; |
85
|
|
|
} |
86
|
|
|
} |
87
|
|
|
} |
88
|
|
|
|
89
|
|
|
/** |
90
|
|
|
* fonction qui si égale a 1 alors il y a une notification dans l'admin du site |
91
|
|
|
* @return mixed |
92
|
|
|
*/ |
93
|
|
|
public function getNotification() { |
94
|
|
|
$dbc = App::getDb(); |
95
|
|
|
|
96
|
|
|
$query = $dbc->select("admin")->from("notification")->get(); |
97
|
|
|
|
98
|
|
View Code Duplication |
if ((is_array($query)) && (count($query) > 0)) { |
|
|
|
|
99
|
|
|
foreach ($query as $obj) { |
100
|
|
|
return $obj->admin; |
101
|
|
|
} |
102
|
|
|
} |
103
|
|
|
} |
104
|
|
|
//-------------------------- FIN GETTER ----------------------------------------------------------------------------// |
105
|
|
|
|
106
|
|
|
|
107
|
|
|
|
108
|
|
|
//-------------------------- SETTER ----------------------------------------------------------------------------// |
109
|
|
|
|
110
|
|
|
/** |
111
|
|
|
* Fonction qui permet de valider un compte utilisateur pour qu'il puisse se conecter au site |
112
|
|
|
* @param $id_identite |
113
|
|
|
*/ |
114
|
|
|
public function setValideCompte($id_identite) { |
115
|
|
|
$dbc = \core\App::getDb(); |
116
|
|
|
|
117
|
|
|
$dbc->update("valide", 1)->from("identite")->where("ID_identite", "=", $id_identite)->set(); |
118
|
|
|
|
119
|
|
|
$this->getunUser($id_identite); |
120
|
|
|
} |
121
|
|
|
|
122
|
|
|
/** |
123
|
|
|
* fonction quir genere un mot de passe aleatoire pour le compte spécifié en param |
124
|
|
|
* @param $id_identite |
125
|
|
|
*/ |
126
|
|
|
public function setReinitialiserMdp($id_identite) { |
127
|
|
|
$dbc = \core\App::getDb(); |
128
|
|
|
$this->getunUser($id_identite); |
129
|
|
|
|
130
|
|
|
if (($this->mail != "") || ($this->mail != null)) { |
131
|
|
|
$mdp = ChaineCaractere::random(6); |
132
|
|
|
$mdp_encode = Encrypt::setEncryptMdp($mdp, $id_identite); |
133
|
|
|
|
134
|
|
|
FlashMessage::setFlash("Mot de passe réinitialisé avec succès ! L'utilisateur à reçu un E-mail avec son nouveau mot de passe", "success"); |
135
|
|
|
|
136
|
|
|
$dbc->update("mdp", $mdp_encode)->update("last_change_mdp", date("Y-m-d"))->from("identite")->where("ID_identite", "=", $id_identite)->set(); |
137
|
|
|
|
138
|
|
|
$mail = new Mail(); |
139
|
|
|
$mail->setEnvoyerMail("Réinitialisation de votre E-mail effectuée", "Votre mot de passe a été réinitialisé", $this->mail); |
140
|
|
|
} |
141
|
|
|
else { |
142
|
|
|
FlashMessage::setFlash("le mot de passe de $this->pseudo ne peu pas être réinitialisé car il ne possède pas d'E-mail"); |
143
|
|
|
$this->erreur = "le mot de passe de $this->pseudo ne peu pas être réinitialisé car il ne possède pas d'E-mail"; |
144
|
|
|
} |
145
|
|
|
} |
146
|
|
|
|
147
|
|
|
/** |
148
|
|
|
* Supprime le compte en question et enleve l'image de profil aussi |
149
|
|
|
* @param $id_identite |
150
|
|
|
*/ |
151
|
|
|
public function setArchiverCompte($id_identite) { |
152
|
|
|
$dbc = \core\App::getDb(); |
153
|
|
|
|
154
|
|
|
$dbc->update("archiver", 1)->from("identite")->where("ID_identite", "=", $id_identite)->set(); |
155
|
|
|
} |
156
|
|
|
|
157
|
|
|
/** |
158
|
|
|
* Supprime le compte en question et enleve l'image de profil aussi |
159
|
|
|
* @param $id_identite |
160
|
|
|
*/ |
161
|
|
|
public function setActiverCompte($id_identite) { |
162
|
|
|
$dbc = \core\App::getDb(); |
163
|
|
|
|
164
|
|
|
$dbc->update("archiver", "0")->from("identite")->where("ID_identite", "=", $id_identite)->set(); |
165
|
|
|
} |
166
|
|
|
|
167
|
|
|
/** |
168
|
|
|
* Supprime le compte en question et enleve l'image de profil aussi |
169
|
|
|
* @param $id_identite |
170
|
|
|
*/ |
171
|
|
|
public function setSupprimerCompte($id_identite) { |
172
|
|
|
$dbc = \core\App::getDb(); |
173
|
|
|
|
174
|
|
|
$oldimg_profil = ""; |
175
|
|
|
|
176
|
|
|
//test si il y a deja une img |
177
|
|
|
$query = $dbc->select("img_profil")->from("identite")->where("ID_identite", "=", $id_identite)->get(); |
178
|
|
|
|
179
|
|
|
if (count($query) > 0) { |
180
|
|
|
foreach ($query as $obj) { |
181
|
|
|
$oldimg_profil = $obj->img_profil; |
182
|
|
|
} |
183
|
|
|
} |
184
|
|
|
|
185
|
|
|
$oldimg_profil = explode("/", $oldimg_profil); |
186
|
|
|
if (end($oldimg_profil) != "defaut.png") { |
187
|
|
|
unlink("../../images/profil/".end($oldimg_profil)); |
188
|
|
|
} |
189
|
|
|
|
190
|
|
|
$dbc->delete()->from("identite")->where("ID_identite", "=", $id_identite)->del(); |
191
|
|
|
} |
192
|
|
|
|
193
|
|
|
/** |
194
|
|
|
* permet de dire qu'on a vue une notification dans l'administration du site internet |
195
|
|
|
*/ |
196
|
|
|
public static function setNotificationVue() { |
197
|
|
|
$dbc = App::getDb(); |
198
|
|
|
|
199
|
|
|
$dbc->update("admin", 0)->from("notification")->where("ID_notification", "=", 1)->set(); |
200
|
|
|
} |
201
|
|
|
//-------------------------- FIN SETTER ----------------------------------------------------------------------------// |
202
|
|
|
|
203
|
|
|
|
204
|
|
|
|
205
|
|
|
} |
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.
You can also find more detailed suggestions in the “Code” section of your repository.