Passed
Push — master ( 9db407...b7ae74 )
by Anthony
02:58
created

GestionDroitAcces::getNbUser()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 3
rs 10
cc 1
eloc 2
nc 1
nop 0
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
						$query1 = $dbc->query("SELECT count(ID_droit_acces) as ID_droit_acces FROM liaison_liste_droit WHERE ID_liste_droit_acces =".$obj->ID_liste_droit_acces);
49
						if ((is_array($query1)) && (count($query1) > 0)) {
50
							foreach ($query1 as $obj1) {
51
								$nb_droit_acces[] = $obj1->ID_droit_acces;
52
							}
53
						}
54
55
56
						//récupération du nombre d'utilisateurs qui sont dans cette liste
57
						$query2 = $dbc->query("SELECT count(ID_identite) as ID_identite FROM identite WHERE liste_droit=".$obj->ID_liste_droit_acces);
58
						if ((is_array($query2)) && (count($query2) > 0)) {
59
							foreach ($query2 as $obj2) {
60
								$nb_user[] = $obj2->ID_identite;
61
							}
62
						}
63
64
65
						//récupération du nombres de pages dans cette liste
66
						$query3 = $dbc->query("SELECT count(ID_page) as ID_page FROM droit_acces_page WHERE ID_liste_droit_acces = $obj->ID_liste_droit_acces");
67
						if ((is_array($query3)) && (count($query3) > 0)) {
68
							foreach ($query3 as $obj3) {
69
								$nb_droit_acces_page[] = $obj3->ID_page;
70
							}
71
						}
72
					}
73
74
					$this->setListeDroitAcces($id_liste_droit_acces, $nom_liste, $nb_droit_acces, $nb_droit_acces_page, $nb_user);
75
				}
76
			}
77
			else {
78
				$this->id_liste_droit_acces = $id_liste_droit_acces;
79
			}
80
		}
81
		//-------------------------- FIN CONSTRUCTEUR ----------------------------------------------------------------------------//
82
83
84
85
		//-------------------------- GETTER ----------------------------------------------------------------------------//
86
		//pour les droit_acces standard
87
		public function getIdListeDroitAcces() {
88
			return $this->id_liste_droit_acces;
89
		}
90
		public function getNomListe() {
91
			return $this->nom_liste;
92
		}
93
		public function getDroitAcces() {
94
			return $this->droit_acces;
95
		}
96
		public function getNbDroitAcces() {
97
			return $this->nb_droit_acces;
98
		}
99
100
		//pour les droits d'acces sur les page
101
		public function getIdPage() {
102
			return $this->id_page;
103
		}
104
		public function getTitrePage() {
105
			return $this->titre_page;
106
		}
107
		public function getNbDroitAccesPage() {
108
			return $this->nb_droit_acces_page;
109
		}
110
111
		//pour la table identite
112
		public function getIdidentite() {
113
			return $this->id_identite;
114
		}
115
		public function getNom() {
116
			return $this->nom;
117
		}
118
		public function getPrenom() {
119
			return $this->prenom;
120
		}
121
		public function getPseudo() {
122
			return $this->pseudo;
123
		}
124
		public function getNbUser() {
125
			return $this->nb_user;
126
		}
127
128
		/**
129
		 * fonction qui récupère la liste des droits d'acces en texte en fonction de l'id de la liste
130
		 * @param $id_liste_droit_acces
131
		 */
132
		public function getListeDroitAccesDetailDroit($id_liste_droit_acces = null) {
133
			$dbc = \core\App::getDb();
134
135
			if ($id_liste_droit_acces == null) $id_liste_droit_acces = $this->id_liste_droit_acces;
136
137
			$query = $dbc->query("SELECT * FROM droit_acces, liaison_liste_droit WHERE
138
										droit_acces.ID_droit_acces = liaison_liste_droit.ID_droit_acces AND
139
										liaison_liste_droit.ID_liste_droit_acces =".$id_liste_droit_acces);
140 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...
141
				$droit_acces = [];
142
143
				foreach ($query as $obj) {
144
					$droit_acces[] = $obj->droit_acces;
145
				}
146
147
				$this->setListeDroitAccesDetailDroit($droit_acces);
148
			}
149
		}
150
151
		/**
152
		 * 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
153
		 * @param $id_liste_droit_acces
154
		 */
155
		public function getListeDroitAccesDetailUser($id_liste_droit_acces = null) {
156
			$dbc = \core\App::getDb();
157
158
			if ($id_liste_droit_acces == null) $id_liste_droit_acces = $this->id_liste_droit_acces;
159
160
			//récupératin des utilisateurs qui sont dans cette liste
161
			$query = $dbc->query("SELECT * FROM identite WHERE liste_droit=".$id_liste_droit_acces);
162
			if ((is_array($query)) && (count($query) > 0)) {
163
				$id_identite = [];
164
				$pseudo = [];
165
				$nom = [];
166
				$prenom = [];
167
168
				foreach ($query as $obj) {
169
					$id_identite[] = $obj->ID_identite;
170
					$pseudo[] = $obj->pseudo;
171
					$nom[] = $obj->nom;
172
					$prenom[] = $obj->prenom;
173
				}
174
175
				$this->setListeDroitAccesDetailUser($id_identite, $pseudo, $nom, $prenom);
176
			}
177
		}
178
179
		/**
180
		 * fonction qui récupère la liste des droits d'acces sur les pages en texte en fonction de l'id de la liste
181
		 * @param $id_liste_droit_acces
182
		 */
183
		public function getListeDroitAccesDetailPage($id_liste_droit_acces = null) {
184
			$dbc = \core\App::getDb();
185
186
			if ($id_liste_droit_acces == null) $id_liste_droit_acces = $this->id_liste_droit_acces;
187
188
			//récupération des droits d'acces pour les pages
189
			$query = $dbc->query("SELECT * FROM liste_droit_acces, droit_acces_page, page WHERE
190
									liste_droit_acces.ID_liste_droit_acces = droit_acces_page.ID_liste_droit_acces AND
191
									droit_acces_page.ID_page = page.ID_page AND
192
									liste_droit_acces.ID_liste_droit_acces = $id_liste_droit_acces
193
			");
194
			if ((is_array($query)) && (count($query) > 0)) {
195
				$id_page = [];
196
				$titre_page = [];
197
198
				foreach ($query as $obj) {
199
					$id_page[] = $obj->ID_page;
200
					$titre_page[] = $obj->titre;
201
				}
202
203
				$this->setListeDroitAccesDetailPage($id_page, $titre_page);
204
			}
205
		}
206
		//-------------------------- FIN GETTER ----------------------------------------------------------------------------//
207
208
209
210
		//-------------------------- SETTER ----------------------------------------------------------------------------//
211
		private function setListeDroitAcces($id_liste_droit_acces, $nom_liste, $nb_droit_acces, $nb_droit_acces_page, $nb_user) {
212
			$this->id_liste_droit_acces = $id_liste_droit_acces;
213
			$this->nom_liste = $nom_liste;
214
			$this->nb_droit_acces = $nb_droit_acces;
215
			$this->nb_droit_acces_page = $nb_droit_acces_page;
216
			$this->nb_user = $nb_user;
217
		}
218
		private function setListeDroitAccesDetailDroit($droit_acces) {
219
			$this->droit_acces = $droit_acces;
220
		}
221
		private function setListeDroitAccesDetailPage($id_page, $titre_page) {
222
			$this->id_page = $id_page;
223
			$this->titre_page = $titre_page;
224
		}
225
		private function setListeDroitAccesDetailUser($id_identite, $pseudo, $nom, $prenom) {
226
			$this->id_identite = $id_identite;
227
			$this->pseudo = $pseudo;
228
			$this->nom = $nom;
229
			$this->prenom = $prenom;
230
		}
231
		//-------------------------- FIN SETTER ----------------------------------------------------------------------------//
232
	}