Subversion Repositories Applications.gtt

Rev

Rev 145 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
48 jpm 1
<?php
2
class GttCtrlActionAdminUtilisateur extends aControlleurAction {
3
 
4
	public function __construct(Registre $Registre)
5
	{
6
		$Registre->ajouterEspace('AdminUtilisateur', 'admin_utilisateur');
7
		$Registre->setTitre('Administrer les utilisateurs');
8
	}
9
 
10
	public function executer()
11
    {
12
    	$aso_admin_utilisateur = array();
145 jpm 13
		// Ajout du mode
14
		$aso_admin_utilisateur['mode'] = 'A';// Ajout
48 jpm 15
 
103 jpm 16
		// Récupération des utilisateur
48 jpm 17
		$Utilisateur = new Utilisateur();
18
 
103 jpm 19
		// Vérification si l'utilisateur est admin
48 jpm 20
		$aso_admin_utilisateur['bool_mark_admin'] = false;
21
		if ($Utilisateur->getMarkAdmin() == 1) {
22
			$aso_admin_utilisateur['bool_mark_admin'] = true;
23
		}
103 jpm 24
		// Vérification si l'utilisateur doit apparaître dans le récapitulatif
48 jpm 25
		$aso_admin_utilisateur['bool_mark_recapitulatif'] = false;
26
		if ($Utilisateur->getMarkRecapitulatif() == 1) {
27
			$aso_admin_utilisateur['bool_mark_recapitulatif'] = true;
28
		}
29
 
103 jpm 30
		// Utilisateur vide par défaut
48 jpm 31
		$aso_admin_utilisateur['Utilisateur'] = clone $Utilisateur;
32
 
33
		// Recherche des utilisateurs existant
34
    	$tab_u = $Utilisateur->consulter(Utilisateur::GU_TOUS);
35
    	foreach ($tab_u as $u) {
103 jpm 36
    		// Nous récupérons tous les statuts sauf le null (=0)
48 jpm 37
    		if ($u->getIdUtilisateur() != 0) {
38
    			$aso_utilisateur['id'] = $u->getIdUtilisateur();
144 jpm 39
    			$aso_utilisateur['libelle'] = $u->getNom().' '.$u->getPrenom();
48 jpm 40
    			$aso_admin_utilisateur['utilisateurs'][] = $aso_utilisateur;
41
    		}
42
    	}
43
 
44
		// Recherche des statuts des utilisateurs
45
		$UtilisateurStatut = new UtilisateurStatut();
46
		$tab_us = $UtilisateurStatut->consulter(UtilisateurStatut::GUS_TOUS);
47
    	foreach ($tab_us as $us) {
103 jpm 48
    		// Nous récupérons tous les statuts sauf le null (=0)
48 jpm 49
    		if ($us->getIdUtilisateurStatut() != 0) {
50
    			$aso_us['id'] = $us->getIdUtilisateurStatut();
51
    			$aso_us['libelle'] = $us->getLibelle();
52
    			$aso_admin_utilisateur['utilisateur_statuts'][] = $aso_us;
53
    		}
54
    	}
55
 
103 jpm 56
		// Modification des titres, légendes et bouton
48 jpm 57
		$aso_admin_utilisateur['form_legend'] = 'Ajouter un utilisateur';
58
		$aso_admin_utilisateur['form_bouton_value'] = 'Ajouter';
59
		$aso_admin_utilisateur['form_bouton_id'] = 'btn_utilisateur_ajouter';
60
		$aso_admin_utilisateur['form_url'] = 'index.php?action=admin-utilisateur_valider-ajouter';
61
 
62
    	//echo '<pre>'.print_r($aso_admin_utilisateur, true).'</pre>';
63
		$this->getRegistre()->ajouterDonnee('admin_utilisateur', $aso_admin_utilisateur);
64
    }
65
 
66
    public function executerValiderAjouter()
67
    {
68
		if (isset($_POST['btn_utilisateur_annuler'])) {
69
			// Action suivante
70
    		$this->setSuivant('__defaut__');
71
    	} else if (isset($_POST['btn_utilisateur_ajouter'])) {
103 jpm 72
			// Vérification de l'utilisateur à ajouter
48 jpm 73
			$bool_ajouter = true;
74
			$Utilisateur = new Utilisateur();
75
			$UtMail = $Utilisateur->consulter(Utilisateur::GU_MAIL, array($_POST['ut_email']));
76
			if ((is_array($UtMail) && count($UtMail) > 1) || $UtMail instanceof Utilisateur) {
103 jpm 77
				$aso_admin_utilisateur['messages'][] = 'Un utilisateur avec le même courriel existe déjà !';
48 jpm 78
				$bool_ajouter = false;
79
			}
156 jpm 80
			$this->verifierChampsCommuns($aso_admin_utilisateur, $bool_ajouter, 'A');
48 jpm 81
			if ($bool_ajouter) {
82
				// Action suivante
83
		    	$this->setSuivant('ajouter');
84
			} else {
85
				// Action suivante
86
		    	$this->setSuivant('__defaut__');
87
				$this->getRegistre()->ajouterDonnee('admin_utilisateur', $aso_admin_utilisateur);
88
			}
89
		}
90
    }
91
 
92
	public function executerValiderModifier()
93
	{
94
		if (isset($_POST['btn_utilisateur_annuler'])) {
95
			// Action suivante
96
    		$this->setSuivant('__defaut__');
97
    	} else if (isset($_POST['btn_utilisateur_modifier'])) {
103 jpm 98
			// Vérification de l'utilisateur à modifier
48 jpm 99
			$bool_modifier = true;
100
			$Utilisateur = new Utilisateur();
101
			$UtMail = $Utilisateur->consulter(Utilisateur::GU_MAIL, array($_POST['ut_email']));
102
			if ((is_array($UtMail) && count($UtMail) > 1) || ($UtMail instanceof Utilisateur && $UtMail->getIdUtilisateur() != $_POST['ut_id_utilisateur'])) {
103 jpm 103
				$aso_admin_utilisateur['messages'][] = 'Un utilisateur avec le même courriel existe déjà !';
48 jpm 104
				$bool_modifier = false;
105
			}
156 jpm 106
			$this->verifierChampsCommuns($aso_admin_utilisateur, $bool_modifier, 'M');
48 jpm 107
			if ($bool_modifier) {
108
				// Action suivante
109
		    	$this->setSuivant('modifier');
110
			} else {
111
				// Action suivante
112
				$_POST['btn_utilisateur_modifier'] = 'btn_utilisateur_modifier';
113
				$_POST['utsu_id'] = $_POST['ut_id_utilisateur'];
114
		    	$this->setSuivant('editer');
115
				$this->getRegistre()->ajouterDonnee('admin_utilisateur', $aso_admin_utilisateur);
116
			}
117
		}
118
	}
119
 
145 jpm 120
	public function verifierChampsCommuns(&$aso_admin_utilisateur, &$bool, $mode)
48 jpm 121
	{
145 jpm 122
		// En modifcation, si le mot de passe est vide, on ne fait pas de changement dans la base de données
123
		if ($mode == 'A' || ($mode == 'M' && (!empty($_POST['ut_mot_de_passe']) || !empty($_POST['ut_mot_de_passe_confirmation'])))) {
124
			if (mb_strlen($_POST['ut_mot_de_passe']) < 6) {
125
				$aso_admin_utilisateur['messages'][] = 'Le mot de passe doit contenir au moins 6 caractères !';
126
				$bool = false;
127
			}
128
			if ($_POST['ut_mot_de_passe'] != $_POST['ut_mot_de_passe_confirmation']) {
129
				$aso_admin_utilisateur['messages'][] = 'Les mots de passe saisies ne sont pas identique !';
130
				$bool = false;
131
			}
48 jpm 132
		}
67 jpm 133
		if ($_POST['ut_temps_de_travail_jour'] > 24) {
103 jpm 134
			$aso_admin_utilisateur['messages'][] = 'Il est impossible que le temps de travail soit supérieur à 24h !';
48 jpm 135
			$bool = false;
136
		}
156 jpm 137
		$aso_champs_tdt = array('ut_tdt_lundi' => 'Lundi', 'ut_tdt_mardi' => 'Mardi', 'ut_tdt_mercredi' => 'Mercredi',
110 jpm 138
								'ut_tdt_jeudi' => 'Jeudi', 'ut_tdt_vendredi' => 'Vendredi', 'ut_tdt_samedi' => 'Samedi',
139
								'ut_tdt_dimanche' => 'Dimanche');
140
		foreach ($aso_champs_tdt as $champ_id => $libelle) {
141
			if ($_POST[$champ_id] > $_POST['ut_temps_de_travail_jour']) {
142
				$aso_admin_utilisateur['messages'][] = "Le champ temps de travail du $libelle ne doit pas être supérieur à la durée maximum du temps de travail journalier !";
143
				$bool = false;
144
			}
145
		}
145 jpm 146
		$aso_champs_obligatoires = array('ut_nom' => 'Nom', 'ut_prenom' => 'Prénom', 'ut_email' => 'Courriel');
147
		// En modifcation, si le mot de passe est vide cela peut être normal
148
		if ($mode == 'A' || ($mode == 'M' && (!empty($_POST['ut_mot_de_passe']) || !empty($_POST['ut_mot_de_passe_confirmation'])))) {
149
			$aso_champs_obligatoires['ut_mot_de_passe'] = 'Mot de passe';
150
		}
48 jpm 151
		foreach ($aso_champs_obligatoires as $champ_id => $libelle) {
152
			if (empty($_POST[$champ_id])) {
103 jpm 153
				$aso_admin_utilisateur['messages'][] = "Le champ $libelle ne doit pas être vide !";
48 jpm 154
				$bool = false;
155
			}
156
		}
157
	}
158
 
159
	public function executerEditer()
160
    {
161
		// Ajout du statut d'utilisateur
162
		if (isset($_POST['btn_utilisateur_modifier'])) {
145 jpm 163
			// Ajout du mode
164
			$aso_admin_utilisateur['mode'] = 'M';// Modifier
165
 
103 jpm 166
			// Récupération des données de l'utilisateur à modifier
48 jpm 167
			$Utilisateur = new Utilisateur();
168
			$Utilisateur->consulter(Utilisateur::GU_ID, $_POST['utsu_id'], true);
169
			$aso_admin_utilisateur['Utilisateur'] = $Utilisateur;
103 jpm 170
			// Vérification si l'utilisateur est admin
48 jpm 171
			$aso_admin_utilisateur['bool_mark_admin'] = false;
172
			if ($Utilisateur->getMarkAdmin() == 1) {
173
				$aso_admin_utilisateur['bool_mark_admin'] = true;
174
			}
103 jpm 175
			// Vérification si l'utilisateur doit apparaître dans le récapitulatif
48 jpm 176
			$aso_admin_utilisateur['bool_mark_recapitulatif'] = false;
177
			if ($Utilisateur->getMarkRecapitulatif() == 1) {
178
				$aso_admin_utilisateur['bool_mark_recapitulatif'] = true;
179
			}
103 jpm 180
			// Modification des titres, légendes et bouton
48 jpm 181
			$aso_admin_utilisateur['form_legend'] = 'Modifier un utilisateur';
182
			$aso_admin_utilisateur['form_bouton_value'] = 'Modifier';
183
			$aso_admin_utilisateur['form_bouton_id'] = 'btn_utilisateur_modifier';
184
			$aso_admin_utilisateur['form_url'] = 'index.php?action=admin-utilisateur_valider-modifier';
185
 
186
			$this->getRegistre()->ajouterDonnee('admin_utilisateur', $aso_admin_utilisateur);
187
		} else if (isset($_POST['btn_utilisateur_supprimer'])) {
188
			// Action suivante
189
    		$this->setSuivant('supprimer');
190
		}
191
    }
192
 
193
	public function executerAjouter()
194
	{
195
		$Utilisateur = new Utilisateur();
196
		$Utilisateur->setNom($_POST['ut_nom']);
197
		$Utilisateur->setPrenom($_POST['ut_prenom']);
198
		$Utilisateur->setAdresse($_POST['ut_adresse']);
199
		$Utilisateur->setVille($_POST['ut_ville']);
200
		$Utilisateur->setCodePostal($_POST['ut_code_postal']);
201
		$Utilisateur->setTelephone($_POST['ut_telephone']);
202
		$Utilisateur->setEmail($_POST['ut_email']);
203
		$Utilisateur->setPassword($_POST['ut_mot_de_passe']);
204
		//$Utilisateur->setCeStatut($_POST['ut_statut']);
205
		$Utilisateur->setCongesPayes($_POST['ut_conges_payes']);
67 jpm 206
		$Utilisateur->setTempsDeTravailJour($_POST['ut_temps_de_travail_jour']);
207
		$Utilisateur->setTempsDeTravailMois($_POST['ut_temps_de_travail_mois']);
110 jpm 208
		$Utilisateur->setTdtLundi($_POST['ut_tdt_lundi']);
209
		$Utilisateur->setTdtMardi($_POST['ut_tdt_mardi']);
210
		$Utilisateur->setTdtMercredi($_POST['ut_tdt_mercredi']);
211
		$Utilisateur->setTdtJeudi($_POST['ut_tdt_jeudi']);
212
		$Utilisateur->setTdtVendredi($_POST['ut_tdt_vendredi']);
213
		$Utilisateur->setTdtSamedi($_POST['ut_tdt_samedi']);
214
		$Utilisateur->setTdtDimanche($_POST['ut_tdt_dimanche']);
48 jpm 215
		$Utilisateur->setQuotaHeuresSupp($_POST['ut_quota_heures_supp']);
90 jpm 216
		if (!isset($_POST['ut_mark_admin'])) {
217
			$_POST['ut_mark_admin'] = 0;
218
		}
48 jpm 219
		$Utilisateur->setMarkAdmin($_POST['ut_mark_admin']);
90 jpm 220
		if (!isset($_POST['ut_mark_recapitulatif'])) {
221
			$_POST['ut_mark_recapitulatif'] = 0;
222
		}
48 jpm 223
		$Utilisateur->setMarkRecapitulatif($_POST['ut_mark_recapitulatif']);
224
    	$Utilisateur->ajouter();
225
		// Action suivante
226
    	$this->setSuivant('__defaut__');
227
	}
228
 
229
 
230
	public function executerModifier()
231
	{
232
		$Utilisateur = new Utilisateur();
233
		$Utilisateur->setIdUtilisateur($_POST['ut_id_utilisateur']);
234
		$Utilisateur->setNom($_POST['ut_nom']);
235
		$Utilisateur->setPrenom($_POST['ut_prenom']);
236
		$Utilisateur->setAdresse($_POST['ut_adresse']);
237
		$Utilisateur->setVille($_POST['ut_ville']);
238
		$Utilisateur->setCodePostal($_POST['ut_code_postal']);
239
		$Utilisateur->setTelephone($_POST['ut_telephone']);
240
		$Utilisateur->setEmail($_POST['ut_email']);
145 jpm 241
		if (isset($_POST['ut_mot_de_passe']) && !empty($_POST['ut_mot_de_passe'])) {
242
			$Utilisateur->setPassword($_POST['ut_mot_de_passe']);
243
		}
48 jpm 244
		//$Utilisateur->setCeStatut($_POST['ut_statut']);
245
		$Utilisateur->setCongesPayes($_POST['ut_conges_payes']);
67 jpm 246
		$Utilisateur->setTempsDeTravailJour($_POST['ut_temps_de_travail_jour']);
247
		$Utilisateur->setTempsDeTravailMois($_POST['ut_temps_de_travail_mois']);
110 jpm 248
		$Utilisateur->setTdtLundi($_POST['ut_tdt_lundi']);
249
		$Utilisateur->setTdtMardi($_POST['ut_tdt_mardi']);
250
		$Utilisateur->setTdtMercredi($_POST['ut_tdt_mercredi']);
251
		$Utilisateur->setTdtJeudi($_POST['ut_tdt_jeudi']);
252
		$Utilisateur->setTdtVendredi($_POST['ut_tdt_vendredi']);
253
		$Utilisateur->setTdtSamedi($_POST['ut_tdt_samedi']);
254
		$Utilisateur->setTdtDimanche($_POST['ut_tdt_dimanche']);
156 jpm 255
 
48 jpm 256
		$Utilisateur->setQuotaHeuresSupp($_POST['ut_quota_heures_supp']);
78 jpm 257
		if (!isset($_POST['ut_mark_admin'])) {
258
			$_POST['ut_mark_admin'] = 0;
259
		}
48 jpm 260
		$Utilisateur->setMarkAdmin($_POST['ut_mark_admin']);
78 jpm 261
		if (!isset($_POST['ut_mark_recapitulatif'])) {
262
			$_POST['ut_mark_recapitulatif'] = 0;
263
		}
48 jpm 264
		$Utilisateur->setMarkRecapitulatif($_POST['ut_mark_recapitulatif']);
156 jpm 265
 
48 jpm 266
    	$Utilisateur->modifier();
267
		// Action suivante
268
    	$this->setSuivant('__defaut__');
269
	}
270
 
271
    public function executerSupprimer()
272
    {
95 jpm 273
		$aso_admin_utilisateur = array();
103 jpm 274
		// Vérif du nombre d'utilisateur admin (doit être supérieur à 1)
48 jpm 275
		$Utilisateur = new Utilisateur();
95 jpm 276
		$nbre_admin = $Utilisateur->consulter(Utilisateur::GU_ADMIN);
277
		if (count($nbre_admin) > 1) {
278
			trigger_error('Utilisateur admin > 1 -> OK', E_USER_NOTICE);
103 jpm 279
			// Vérif des travail_projets
95 jpm 280
			$TravailProjet = new TravailProjet();
281
			$bool_existe = $TravailProjet->consulter(TravailProjet::GTP_UTILISATEUR, array($_POST['utsu_id']));
282
			if ($bool_existe == false) {
283
				trigger_error('TravailProjet -> OK', E_USER_NOTICE);
103 jpm 284
				// Vérif des absences
95 jpm 285
				$Absence = new Absence();
286
				$bool_existe = $Absence->consulter(Absence::GA_ID_UTILISATEUR, array($_POST['utsu_id']));
287
				if ($bool_existe == false) {
288
					trigger_error('Absence -> OK', E_USER_NOTICE);
289
					// Suppression de l'utilisateur
290
					$Utilisateur = new Utilisateur();
291
					$Utilisateur->setIdUtilisateur($_POST['utsu_id']);
292
			    	if ($Utilisateur->supprimer()) {
103 jpm 293
			    		$aso_admin_utilisateur['messages'][] = "L'utilisateur a été supprimé.";
95 jpm 294
			    	}
156 jpm 295
				}
95 jpm 296
			}
297
		} else {
298
			$aso_admin_utilisateur['messages'][] = "Il n'est pas possible de supprimer le seul administrateur!";
299
		}
156 jpm 300
 
103 jpm 301
		// Message d'erreur si l'utilisateur contient des données
95 jpm 302
		if (isset($bool_existe) && $bool_existe != false) {
103 jpm 303
			$aso_admin_utilisateur['messages'][] = "Il n'est pas possible de supprimer un utilisateur contenant des données!";
95 jpm 304
		}
48 jpm 305
 
95 jpm 306
		// Enregistrement du message
307
		$this->getRegistre()->ajouterDonnee('admin_utilisateur', $aso_admin_utilisateur);
156 jpm 308
 
48 jpm 309
		// Action suivante
310
    	$this->setSuivant('__defaut__');
311
    }
312
}
313
?>