Admin::setValideCompte()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 7
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 4
nc 1
nop 1
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)) {
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated across your project.

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.

Loading history...
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
	}