Subversion Repositories Applications.gtt

Rev

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