Subversion Repositories Applications.gtt

Rev

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