Passed
Push — master ( 713bf0...5719dd )
by Anthony
02:44
created

GestionDroitAcces::__construct()   B

Complexity

Conditions 5
Paths 4

Size

Total Lines 36
Code Lines 19

Duplication

Lines 0
Ratio 0 %

Importance

Changes 3
Bugs 0 Features 0
Metric Value
c 3
b 0
f 0
dl 0
loc 36
rs 8.439
cc 5
eloc 19
nc 4
nop 1
1
<?php
2
	namespace core\admin\droitsacces;
3
4
	use core\App;
5
6
	class GestionDroitAcces extends DroitAcces {
7
		//pour les droit_acces standard
8
		private $id_liste_droit_acces;
0 ignored issues
show
Comprehensibility introduced by
Consider using a different property name as you override a private property of the parent class.
Loading history...
9
		private $nom_liste;
10
		private $droit_acces;
11
		private $nb_droit_acces;
12
13
		//pour les droits d'acces sur les page
14
		private $id_page;
15
		private $titre_page;
16
		private $nb_droit_acces_page;
17
18
		//pour la table identite
19
		private $id_identite;
0 ignored issues
show
Comprehensibility introduced by
Consider using a different property name as you override a private property of the parent class.
Loading history...
20
		private $pseudo;
21
		private $nom;
22
		private $prenom;
23
		private $nb_user;
24
25
26
27
		//-------------------------- CONSTRUCTEUR ----------------------------------------------------------------------------//
28
		public function __construct($id_liste_droit_acces = null) {
29
			$dbc = App::getDb();
30
31
			if ($id_liste_droit_acces == null) {
32
				//pour affichage de la liste des listes de droit d'acces
33
				//récupération des droits d'acces génériques
34
				$query = $dbc->query("SELECT * FROM liste_droit_acces");
35
36
				if ((is_array($query)) && (count($query) > 0)) {
37
					$id_liste_droit_acces = [];
38
					$nom_liste = [];
39
					$nb_droit_acces = [];
40
					$nb_droit_acces_page = [];
41
					$nb_user = [];
42
43
					foreach ($query as $obj) {
44
						$id_liste_droit_acces[] = $obj->ID_liste_droit_acces;
45
						$nom_liste[] = $obj->nom_liste;
46
47
						//récupération du nombre de droits d'acces pour cette liste
48
						$nb_droit_acces = $this->getNombreDroitAccesListe($obj->ID_liste_droit_acces);
49
50
						//récupération du nombre d'utilisateurs qui sont dans cette liste
51
						$nb_user = $this->getNombreUtilisateurListe($obj->ID_liste_droit_acces);
52
53
						//récupération du nombres de pages dans cette liste
54
						$nb_droit_acces_page = $this-> getNombrePageListe($obj->ID_liste_droit_acces);
55
					}
56
57
					$this->setListeDroitAcces($id_liste_droit_acces, $nom_liste, $nb_droit_acces, $nb_droit_acces_page, $nb_user);
58
				}
59
			}
60
			else {
61
				$this->id_liste_droit_acces = $id_liste_droit_acces;
62
			}
63
		}
64
		//-------------------------- FIN CONSTRUCTEUR ----------------------------------------------------------------------------//
65
66
67
68
		//-------------------------- GETTER ----------------------------------------------------------------------------//
69
		//pour les droit_acces standard
70
		public function getIdListeDroitAcces() {
71
			return $this->id_liste_droit_acces;
72
		}
73
		public function getNomListe() {
74
			return $this->nom_liste;
75
		}
76
		public function getDroitAcces() {
77
			return $this->droit_acces;
78
		}
79
		public function getNbDroitAcces() {
80
			return $this->nb_droit_acces;
81
		}
82
83
		//pour les droits d'acces sur les page
84
		public function getIdPage() {
85
			return $this->id_page;
86
		}
87
		public function getTitrePage() {
88
			return $this->titre_page;
89
		}
90
		public function getNbDroitAccesPage() {
91
			return $this->nb_droit_acces_page;
92
		}
93
94
		//pour la table identite
95
		public function getIdidentite() {
96
			return $this->id_identite;
97
		}
98
		public function getNom() {
99
			return $this->nom;
100
		}
101
		public function getPrenom() {
102
			return $this->prenom;
103
		}
104
		public function getPseudo() {
105
			return $this->pseudo;
106
		}
107
		public function getNbUser() {
108
			return $this->nb_user;
109
		}
110
111
		/**
112
		 * @param $id_liste_droit_acces
113
		 * @return array
114
		 */
115
		private function getNombreUtilisateurListe($id_liste_droit_acces) {
116
			$dbc = App::getDb();
117
118
			$nb_user = 0;
119
120
			$query2 = $dbc->query("SELECT count(ID_identite) as ID_identite FROM identite WHERE liste_droit=".$id_liste_droit_acces);
121
			if ((is_array($query2)) && (count($query2) > 0)) {
122
				foreach ($query2 as $obj2) {
123
					$nb_user[] = $obj2->ID_identite;
124
				}
125
			}
126
127
			return $nb_user;
128
		}
129
130
		/**
131
		 * @param $id_liste_droit_acces
132
		 * @return array
133
		 */
134
		private function getNombreDroitAccesListe($id_liste_droit_acces) {
135
			$dbc = App::getDb();
136
137
			$nb_droit_acces = 0;
138
139
			$query1 = $dbc->query("SELECT count(ID_droit_acces) as ID_droit_acces FROM liaison_liste_droit WHERE ID_liste_droit_acces =".$id_liste_droit_acces);
140
			if ((is_array($query1)) && (count($query1) > 0)) {
141
				foreach ($query1 as $obj1) {
142
					$nb_droit_acces[] = $obj1->ID_droit_acces;
143
				}
144
			}
145
146
			return $nb_droit_acces;
147
		}
148
149
		/**
150
		 * @param $id_liste_droit_acces
151
		 * @return array|int
152
		 */
153
		private function getNombrePageListe($id_liste_droit_acces) {
154
			$dbc = App::getDb();
155
156
			$nb_droit_acces_page = 0;
157
158
			$query3 = $dbc->query("SELECT count(ID_page) as ID_page FROM droit_acces_page WHERE ID_liste_droit_acces =".$id_liste_droit_acces);
159
			if ((is_array($query3)) && (count($query3) > 0)) {
160
				foreach ($query3 as $obj3) {
161
					$nb_droit_acces_page[] = $obj3->ID_page;
162
				}
163
			}
164
165
			return $nb_droit_acces_page;
166
		}
167
168
		/**
169
		 * fonction qui récupère la liste des droits d'acces en texte en fonction de l'id de la liste
170
		 * @param $id_liste_droit_acces
171
		 */
172
		public function getListeDroitAccesDetailDroit($id_liste_droit_acces = null) {
173
			$dbc = \core\App::getDb();
174
175
			if ($id_liste_droit_acces == null) $id_liste_droit_acces = $this->id_liste_droit_acces;
176
177
			$query = $dbc->query("SELECT * FROM droit_acces, liaison_liste_droit WHERE
178
										droit_acces.ID_droit_acces = liaison_liste_droit.ID_droit_acces AND
179
										liaison_liste_droit.ID_liste_droit_acces =".$id_liste_droit_acces);
180
			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...
181
				$droit_acces = [];
182
183
				foreach ($query as $obj) {
184
					$droit_acces[] = $obj->droit_acces;
185
				}
186
187
				$this->setListeDroitAccesDetailDroit($droit_acces);
188
			}
189
		}
190
191
		/**
192
		 * fonction qui récupère la liste des utilisateur dans une liste de droits d'acces en texte en fonction de l'id de la liste
193
		 * @param $id_liste_droit_acces
194
		 */
195
		public function getListeDroitAccesDetailUser($id_liste_droit_acces = null) {
196
			$dbc = \core\App::getDb();
197
198
			if ($id_liste_droit_acces == null) $id_liste_droit_acces = $this->id_liste_droit_acces;
199
200
			//récupératin des utilisateurs qui sont dans cette liste
201
			$query = $dbc->query("SELECT * FROM identite WHERE liste_droit=".$id_liste_droit_acces);
202
			if ((is_array($query)) && (count($query) > 0)) {
203
				$id_identite = [];
204
				$pseudo = [];
205
				$nom = [];
206
				$prenom = [];
207
208
				foreach ($query as $obj) {
209
					$id_identite[] = $obj->ID_identite;
210
					$pseudo[] = $obj->pseudo;
211
					$nom[] = $obj->nom;
212
					$prenom[] = $obj->prenom;
213
				}
214
215
				$this->setListeDroitAccesDetailUser($id_identite, $pseudo, $nom, $prenom);
216
			}
217
		}
218
219
		/**
220
		 * fonction qui récupère la liste des droits d'acces sur les pages en texte en fonction de l'id de la liste
221
		 * @param $id_liste_droit_acces
222
		 */
223
		public function getListeDroitAccesDetailPage($id_liste_droit_acces = null) {
224
			$dbc = \core\App::getDb();
225
226
			if ($id_liste_droit_acces == null) $id_liste_droit_acces = $this->id_liste_droit_acces;
227
228
			//récupération des droits d'acces pour les pages
229
			$query = $dbc->query("SELECT * FROM liste_droit_acces, droit_acces_page, page WHERE
230
									liste_droit_acces.ID_liste_droit_acces = droit_acces_page.ID_liste_droit_acces AND
231
									droit_acces_page.ID_page = page.ID_page AND
232
									liste_droit_acces.ID_liste_droit_acces = $id_liste_droit_acces
233
			");
234
			if ((is_array($query)) && (count($query) > 0)) {
235
				$id_page = [];
236
				$titre_page = [];
237
238
				foreach ($query as $obj) {
239
					$id_page[] = $obj->ID_page;
240
					$titre_page[] = $obj->titre;
241
				}
242
243
				$this->setListeDroitAccesDetailPage($id_page, $titre_page);
244
			}
245
		}
246
		//-------------------------- FIN GETTER ----------------------------------------------------------------------------//
247
248
249
250
		//-------------------------- SETTER ----------------------------------------------------------------------------//
251
		private function setListeDroitAcces($id_liste_droit_acces, $nom_liste, $nb_droit_acces, $nb_droit_acces_page, $nb_user) {
252
			$this->id_liste_droit_acces = $id_liste_droit_acces;
253
			$this->nom_liste = $nom_liste;
254
			$this->nb_droit_acces = $nb_droit_acces;
255
			$this->nb_droit_acces_page = $nb_droit_acces_page;
256
			$this->nb_user = $nb_user;
257
		}
258
		private function setListeDroitAccesDetailDroit($droit_acces) {
259
			$this->droit_acces = $droit_acces;
260
		}
261
		private function setListeDroitAccesDetailPage($id_page, $titre_page) {
262
			$this->id_page = $id_page;
263
			$this->titre_page = $titre_page;
264
		}
265
		private function setListeDroitAccesDetailUser($id_identite, $pseudo, $nom, $prenom) {
266
			$this->id_identite = $id_identite;
267
			$this->pseudo = $pseudo;
268
			$this->nom = $nom;
269
			$this->prenom = $prenom;
270
		}
271
		//-------------------------- FIN SETTER ----------------------------------------------------------------------------//
272
	}