Passed
Push — master ( 1faf28...95951e )
by Anthony
02:22
created

GestionDroitAcces   A

Complexity

Total Complexity 33

Size/Duplication

Total Lines 215
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Importance

Changes 0
Metric Value
dl 0
loc 215
rs 9.3999
c 0
b 0
f 0
wmc 33
lcom 1
cbo 4
1
<?php
2
	namespace core\admin\droitsacces;
3
4
	use core\App;
5
6
	class GestionDroitAcces extends DroitAcces {
7
		use GetDetailListeAcces;
8
9
		//pour les droit_acces standard
10
		private $id_liste_droit_acces;
11
		private $nom_liste;
12
		private $droit_acces;
13
		private $nb_droit_acces;
14
15
		//pour les droits d'acces sur les page
16
		private $id_page;
17
		private $titre_page;
18
		private $nb_droit_acces_page;
19
20
		//pour la table identite
21
		private $id_identite;
22
		private $pseudo;
23
		private $nom;
24
		private $prenom;
25
		private $nb_user;
26
27
28
29
		//-------------------------- CONSTRUCTEUR ----------------------------------------------------------------------------//
30
		public function __construct($id_liste_droit_acces = null) {
31
			if ($id_liste_droit_acces === null) {
32
				$this->getListeDroitAccesAdmin();
33
			}
34
			else {
35
				$this->id_liste_droit_acces = $id_liste_droit_acces;
36
			}
37
		}
38
		//-------------------------- FIN CONSTRUCTEUR ----------------------------------------------------------------------------//
39
40
41
42
		//-------------------------- GETTER ----------------------------------------------------------------------------//
43
		//pour les droit_acces standard
44
		public function getNomListe() {
45
			return $this->nom_liste;
46
		}
47
		public function getDroitAcces() {
48
			return $this->droit_acces;
49
		}
50
		public function getNbDroitAcces() {
51
			return $this->nb_droit_acces;
52
		}
53
54
		//pour les droits d'acces sur les page
55
		public function getIdPage() {
56
			return $this->id_page;
57
		}
58
		public function getTitrePage() {
59
			return $this->titre_page;
60
		}
61
		public function getNbDroitAccesPage() {
62
			return $this->nb_droit_acces_page;
63
		}
64
65
		//pour la table identite
66
		public function getIdidentite() {
67
			return $this->id_identite;
68
		}
69
		public function getNom() {
70
			return $this->nom;
71
		}
72
		public function getPrenom() {
73
			return $this->prenom;
74
		}
75
		public function getPseudo() {
76
			return $this->pseudo;
77
		}
78
		public function getNbUser() {
79
			return $this->nb_user;
80
		}
81
82
		/**
83
		 * appellee dans le constructeur pour afficher les listes de droit d'acces
84
		 */
85
		private function getListeDroitAccesAdmin() {
86
			$dbc = App::getDb();
87
88
			//pour affichage de la liste des listes de droit d'acces
89
			//récupération des droits d'acces génériques
90
			$query = $dbc->select()->from("liste_droit_acces")->get();
91
92
			if ((is_array($query)) && (count($query) > 0)) {
93
				$id_liste_droit_acces = [];
94
				$nom_liste = [];
95
				$nb_droit_acces = [];
96
				$nb_droit_acces_page = [];
97
				$nb_user = [];
98
99
				foreach ($query as $obj) {
100
					$id_liste_droit_acces[] = $obj->ID_liste_droit_acces;
101
					$nom_liste[] = $obj->nom_liste;
102
103
					//récupération du nombre de droits d'acces pour cette liste
104
					$nb_droit_acces = $this->getNombreDroitAccesListe($obj->ID_liste_droit_acces);
105
106
					//récupération du nombre d'utilisateurs qui sont dans cette liste
107
					$nb_user = $this->getNombreUtilisateurListe($obj->ID_liste_droit_acces);
108
109
					//récupération du nombres de pages dans cette liste
110
					$nb_droit_acces_page = $this-> getNombrePageListe($obj->ID_liste_droit_acces);
111
				}
112
113
				$this->setListeDroitAcces($id_liste_droit_acces, $nom_liste, $nb_droit_acces, $nb_droit_acces_page, $nb_user);
114
			}
115
		}
116
117
		/**
118
		 * fonction qui récupère la liste des droits d'acces en texte en fonction de l'id de la liste
119
		 * @param $id_liste_droit_acces
120
		 */
121
		public function getListeDroitAccesDetailDroit() {
122
			$dbc = \core\App::getDb();
123
124
			$query = $dbc->select()->from("droit_acces")
125
				->from("liaison_liste_droit")
126
				->where("liaison_liste_droit.ID_liste_droit_acces", "=", $this->id_liste_droit_acces, "AND")
127
				->where("droit_acces.ID_droit_acces", "=", "liaison_liste_droit.ID_droit_acces", "", true)
128
				->get();
129
			if ((is_array($query)) && (count($query) > 0)) {
130
				$droit_acces = [];
131
132
				foreach ($query as $obj) {
133
					$droit_acces[] = $obj->droit_acces;
134
				}
135
136
				$this->setListeDroitAccesDetailDroit($droit_acces);
137
			}
138
		}
139
140
		/**
141
		 * 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
142
		 * @param $id_liste_droit_acces
143
		 */
144
		public function getListeDroitAccesDetailUser() {
145
			$dbc = \core\App::getDb();
146
147
			//récupératin des utilisateurs qui sont dans cette liste
148
			$query = $dbc->select()->from("identite")->where("liste_droit", "=", $this->id_liste_droit_acces)->get();
149
			if ((is_array($query)) && (count($query) > 0)) {
150
				$id_identite = [];
151
				$pseudo = [];
152
				$nom = [];
153
				$prenom = [];
154
155
				foreach ($query as $obj) {
156
					$id_identite[] = $obj->ID_identite;
157
					$pseudo[] = $obj->pseudo;
158
					$nom[] = $obj->nom;
159
					$prenom[] = $obj->prenom;
160
				}
161
162
				$this->setListeDroitAccesDetailUser($id_identite, $pseudo, $nom, $prenom);
163
			}
164
		}
165
166
		/**
167
		 * fonction qui récupère la liste des droits d'acces sur les pages en texte en fonction de l'id de la liste
168
		 * @param $id_liste_droit_acces
169
		 */
170
		public function getListeDroitAccesDetailPage() {
171
			$dbc = \core\App::getDb();
172
173
			//récupération des droits d'acces pour les pages
174
			$query = $dbc->select()->from("liste_droit_acces")
175
				->from("droit_acces_page")
176
				->from("page")
177
				->where("liste_droit_acces.ID_liste_droit_acces", "=", $this->id_liste_droit_acces, "AND")
178
				->where("liste_droit_acces.ID_liste_droit_acces", "=", "droit_acces_page.ID_liste_droit_acces", "AND", true)
179
				->where("droit_acces_page.ID_page", "=", "page.ID_page", "", true)
180
				->get();
181
182
			if ((is_array($query)) && (count($query) > 0)) {
183
				$id_page = [];
184
				$titre_page = [];
185
186
				foreach ($query as $obj) {
187
					$id_page[] = $obj->ID_page;
188
					$titre_page[] = $obj->titre;
189
				}
190
191
				$this->setListeDroitAccesDetailPage($id_page, $titre_page);
192
			}
193
		}
194
		//-------------------------- FIN GETTER ----------------------------------------------------------------------------//
195
196
197
198
		//-------------------------- SETTER ----------------------------------------------------------------------------//
199
		private function setListeDroitAcces($id_liste_droit_acces, $nom_liste, $nb_droit_acces, $nb_droit_acces_page, $nb_user) {
200
			$this->id_liste_droit_acces = $id_liste_droit_acces;
201
			$this->nom_liste = $nom_liste;
202
			$this->nb_droit_acces = $nb_droit_acces;
203
			$this->nb_droit_acces_page = $nb_droit_acces_page;
204
			$this->nb_user = $nb_user;
205
		}
206
		private function setListeDroitAccesDetailDroit($droit_acces) {
207
			$this->droit_acces = $droit_acces;
208
		}
209
		private function setListeDroitAccesDetailPage($id_page, $titre_page) {
210
			$this->id_page = $id_page;
211
			$this->titre_page = $titre_page;
212
		}
213
		private function setListeDroitAccesDetailUser($id_identite, $pseudo, $nom, $prenom) {
214
			$this->id_identite = $id_identite;
215
			$this->pseudo = $pseudo;
216
			$this->nom = $nom;
217
			$this->prenom = $prenom;
218
		}
219
		//-------------------------- FIN SETTER ----------------------------------------------------------------------------//
220
	}