New file |
0,0 → 1,313 |
<?php |
class GttCtrlActionAdminUtilisateur extends aControlleurAction { |
|
public function __construct(Registre $Registre) |
{ |
$Registre->ajouterEspace('AdminUtilisateur', 'admin_utilisateur'); |
$Registre->setTitre('Administrer les utilisateurs'); |
} |
|
public function executer() |
{ |
$aso_admin_utilisateur = array(); |
// Ajout du mode |
$aso_admin_utilisateur['mode'] = 'A';// Ajout |
|
// Récupération des utilisateur |
$Utilisateur = new Utilisateur(); |
|
// Vérification si l'utilisateur est admin |
$aso_admin_utilisateur['bool_mark_admin'] = false; |
if ($Utilisateur->getMarkAdmin() == 1) { |
$aso_admin_utilisateur['bool_mark_admin'] = true; |
} |
// Vérification si l'utilisateur doit apparaître dans le récapitulatif |
$aso_admin_utilisateur['bool_mark_recapitulatif'] = false; |
if ($Utilisateur->getMarkRecapitulatif() == 1) { |
$aso_admin_utilisateur['bool_mark_recapitulatif'] = true; |
} |
|
// Utilisateur vide par défaut |
$aso_admin_utilisateur['Utilisateur'] = clone $Utilisateur; |
|
// Recherche des utilisateurs existant |
$tab_u = $Utilisateur->consulter(Utilisateur::GU_TOUS); |
foreach ($tab_u as $u) { |
// Nous récupérons tous les statuts sauf le null (=0) |
if ($u->getIdUtilisateur() != 0) { |
$aso_utilisateur['id'] = $u->getIdUtilisateur(); |
$aso_utilisateur['libelle'] = $u->getNom().' '.$u->getPrenom(); |
$aso_admin_utilisateur['utilisateurs'][] = $aso_utilisateur; |
} |
} |
|
// Recherche des statuts des utilisateurs |
$UtilisateurStatut = new UtilisateurStatut(); |
$tab_us = $UtilisateurStatut->consulter(UtilisateurStatut::GUS_TOUS); |
foreach ($tab_us as $us) { |
// Nous récupérons tous les statuts sauf le null (=0) |
if ($us->getIdUtilisateurStatut() != 0) { |
$aso_us['id'] = $us->getIdUtilisateurStatut(); |
$aso_us['libelle'] = $us->getLibelle(); |
$aso_admin_utilisateur['utilisateur_statuts'][] = $aso_us; |
} |
} |
|
// Modification des titres, légendes et bouton |
$aso_admin_utilisateur['form_legend'] = 'Ajouter un utilisateur'; |
$aso_admin_utilisateur['form_bouton_value'] = 'Ajouter'; |
$aso_admin_utilisateur['form_bouton_id'] = 'btn_utilisateur_ajouter'; |
$aso_admin_utilisateur['form_url'] = 'index.php?action=admin-utilisateur_valider-ajouter'; |
|
//echo '<pre>'.print_r($aso_admin_utilisateur, true).'</pre>'; |
$this->getRegistre()->ajouterDonnee('admin_utilisateur', $aso_admin_utilisateur); |
} |
|
public function executerValiderAjouter() |
{ |
if (isset($_POST['btn_utilisateur_annuler'])) { |
// Action suivante |
$this->setSuivant('__defaut__'); |
} else if (isset($_POST['btn_utilisateur_ajouter'])) { |
// Vérification de l'utilisateur à ajouter |
$bool_ajouter = true; |
$Utilisateur = new Utilisateur(); |
$UtMail = $Utilisateur->consulter(Utilisateur::GU_MAIL, array($_POST['ut_email'])); |
if ((is_array($UtMail) && count($UtMail) > 1) || $UtMail instanceof Utilisateur) { |
$aso_admin_utilisateur['messages'][] = 'Un utilisateur avec le même courriel existe déjà !'; |
$bool_ajouter = false; |
} |
$this->verifierChampsCommuns($aso_admin_utilisateur, $bool_ajouter, 'A'); |
if ($bool_ajouter) { |
// Action suivante |
$this->setSuivant('ajouter'); |
} else { |
// Action suivante |
$this->setSuivant('__defaut__'); |
$this->getRegistre()->ajouterDonnee('admin_utilisateur', $aso_admin_utilisateur); |
} |
} |
} |
|
public function executerValiderModifier() |
{ |
if (isset($_POST['btn_utilisateur_annuler'])) { |
// Action suivante |
$this->setSuivant('__defaut__'); |
} else if (isset($_POST['btn_utilisateur_modifier'])) { |
// Vérification de l'utilisateur à modifier |
$bool_modifier = true; |
$Utilisateur = new Utilisateur(); |
$UtMail = $Utilisateur->consulter(Utilisateur::GU_MAIL, array($_POST['ut_email'])); |
if ((is_array($UtMail) && count($UtMail) > 1) || ($UtMail instanceof Utilisateur && $UtMail->getIdUtilisateur() != $_POST['ut_id_utilisateur'])) { |
$aso_admin_utilisateur['messages'][] = 'Un utilisateur avec le même courriel existe déjà !'; |
$bool_modifier = false; |
} |
$this->verifierChampsCommuns($aso_admin_utilisateur, $bool_modifier, 'M'); |
if ($bool_modifier) { |
// Action suivante |
$this->setSuivant('modifier'); |
} else { |
// Action suivante |
$_POST['btn_utilisateur_modifier'] = 'btn_utilisateur_modifier'; |
$_POST['utsu_id'] = $_POST['ut_id_utilisateur']; |
$this->setSuivant('editer'); |
$this->getRegistre()->ajouterDonnee('admin_utilisateur', $aso_admin_utilisateur); |
} |
} |
} |
|
public function verifierChampsCommuns(&$aso_admin_utilisateur, &$bool, $mode) |
{ |
// En modifcation, si le mot de passe est vide, on ne fait pas de changement dans la base de données |
if ($mode == 'A' || ($mode == 'M' && (!empty($_POST['ut_mot_de_passe']) || !empty($_POST['ut_mot_de_passe_confirmation'])))) { |
if (mb_strlen($_POST['ut_mot_de_passe']) < 6) { |
$aso_admin_utilisateur['messages'][] = 'Le mot de passe doit contenir au moins 6 caractères !'; |
$bool = false; |
} |
if ($_POST['ut_mot_de_passe'] != $_POST['ut_mot_de_passe_confirmation']) { |
$aso_admin_utilisateur['messages'][] = 'Les mots de passe saisies ne sont pas identique !'; |
$bool = false; |
} |
} |
if ($_POST['ut_temps_de_travail_jour'] > 24) { |
$aso_admin_utilisateur['messages'][] = 'Il est impossible que le temps de travail soit supérieur à 24h !'; |
$bool = false; |
} |
$aso_champs_tdt = array('ut_tdt_lundi' => 'Lundi', 'ut_tdt_mardi' => 'Mardi', 'ut_tdt_mercredi' => 'Mercredi', |
'ut_tdt_jeudi' => 'Jeudi', 'ut_tdt_vendredi' => 'Vendredi', 'ut_tdt_samedi' => 'Samedi', |
'ut_tdt_dimanche' => 'Dimanche'); |
foreach ($aso_champs_tdt as $champ_id => $libelle) { |
if ($_POST[$champ_id] > $_POST['ut_temps_de_travail_jour']) { |
$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 !"; |
$bool = false; |
} |
} |
$aso_champs_obligatoires = array('ut_nom' => 'Nom', 'ut_prenom' => 'Prénom', 'ut_email' => 'Courriel'); |
// En modifcation, si le mot de passe est vide cela peut être normal |
if ($mode == 'A' || ($mode == 'M' && (!empty($_POST['ut_mot_de_passe']) || !empty($_POST['ut_mot_de_passe_confirmation'])))) { |
$aso_champs_obligatoires['ut_mot_de_passe'] = 'Mot de passe'; |
} |
foreach ($aso_champs_obligatoires as $champ_id => $libelle) { |
if (empty($_POST[$champ_id])) { |
$aso_admin_utilisateur['messages'][] = "Le champ $libelle ne doit pas être vide !"; |
$bool = false; |
} |
} |
} |
|
public function executerEditer() |
{ |
// Ajout du statut d'utilisateur |
if (isset($_POST['btn_utilisateur_modifier'])) { |
// Ajout du mode |
$aso_admin_utilisateur['mode'] = 'M';// Modifier |
|
// Récupération des données de l'utilisateur à modifier |
$Utilisateur = new Utilisateur(); |
$Utilisateur->consulter(Utilisateur::GU_ID, $_POST['utsu_id'], true); |
$aso_admin_utilisateur['Utilisateur'] = $Utilisateur; |
// Vérification si l'utilisateur est admin |
$aso_admin_utilisateur['bool_mark_admin'] = false; |
if ($Utilisateur->getMarkAdmin() == 1) { |
$aso_admin_utilisateur['bool_mark_admin'] = true; |
} |
// Vérification si l'utilisateur doit apparaître dans le récapitulatif |
$aso_admin_utilisateur['bool_mark_recapitulatif'] = false; |
if ($Utilisateur->getMarkRecapitulatif() == 1) { |
$aso_admin_utilisateur['bool_mark_recapitulatif'] = true; |
} |
// Modification des titres, légendes et bouton |
$aso_admin_utilisateur['form_legend'] = 'Modifier un utilisateur'; |
$aso_admin_utilisateur['form_bouton_value'] = 'Modifier'; |
$aso_admin_utilisateur['form_bouton_id'] = 'btn_utilisateur_modifier'; |
$aso_admin_utilisateur['form_url'] = 'index.php?action=admin-utilisateur_valider-modifier'; |
|
$this->getRegistre()->ajouterDonnee('admin_utilisateur', $aso_admin_utilisateur); |
} else if (isset($_POST['btn_utilisateur_supprimer'])) { |
// Action suivante |
$this->setSuivant('supprimer'); |
} |
} |
|
public function executerAjouter() |
{ |
$Utilisateur = new Utilisateur(); |
$Utilisateur->setNom($_POST['ut_nom']); |
$Utilisateur->setPrenom($_POST['ut_prenom']); |
$Utilisateur->setAdresse($_POST['ut_adresse']); |
$Utilisateur->setVille($_POST['ut_ville']); |
$Utilisateur->setCodePostal($_POST['ut_code_postal']); |
$Utilisateur->setTelephone($_POST['ut_telephone']); |
$Utilisateur->setEmail($_POST['ut_email']); |
$Utilisateur->setPassword($_POST['ut_mot_de_passe']); |
//$Utilisateur->setCeStatut($_POST['ut_statut']); |
$Utilisateur->setCongesPayes($_POST['ut_conges_payes']); |
$Utilisateur->setTempsDeTravailJour($_POST['ut_temps_de_travail_jour']); |
$Utilisateur->setTempsDeTravailMois($_POST['ut_temps_de_travail_mois']); |
$Utilisateur->setTdtLundi($_POST['ut_tdt_lundi']); |
$Utilisateur->setTdtMardi($_POST['ut_tdt_mardi']); |
$Utilisateur->setTdtMercredi($_POST['ut_tdt_mercredi']); |
$Utilisateur->setTdtJeudi($_POST['ut_tdt_jeudi']); |
$Utilisateur->setTdtVendredi($_POST['ut_tdt_vendredi']); |
$Utilisateur->setTdtSamedi($_POST['ut_tdt_samedi']); |
$Utilisateur->setTdtDimanche($_POST['ut_tdt_dimanche']); |
$Utilisateur->setQuotaHeuresSupp($_POST['ut_quota_heures_supp']); |
if (!isset($_POST['ut_mark_admin'])) { |
$_POST['ut_mark_admin'] = 0; |
} |
$Utilisateur->setMarkAdmin($_POST['ut_mark_admin']); |
if (!isset($_POST['ut_mark_recapitulatif'])) { |
$_POST['ut_mark_recapitulatif'] = 0; |
} |
$Utilisateur->setMarkRecapitulatif($_POST['ut_mark_recapitulatif']); |
$Utilisateur->ajouter(); |
// Action suivante |
$this->setSuivant('__defaut__'); |
} |
|
|
public function executerModifier() |
{ |
$Utilisateur = new Utilisateur(); |
$Utilisateur->setIdUtilisateur($_POST['ut_id_utilisateur']); |
$Utilisateur->setNom($_POST['ut_nom']); |
$Utilisateur->setPrenom($_POST['ut_prenom']); |
$Utilisateur->setAdresse($_POST['ut_adresse']); |
$Utilisateur->setVille($_POST['ut_ville']); |
$Utilisateur->setCodePostal($_POST['ut_code_postal']); |
$Utilisateur->setTelephone($_POST['ut_telephone']); |
$Utilisateur->setEmail($_POST['ut_email']); |
if (isset($_POST['ut_mot_de_passe']) && !empty($_POST['ut_mot_de_passe'])) { |
$Utilisateur->setPassword($_POST['ut_mot_de_passe']); |
} |
//$Utilisateur->setCeStatut($_POST['ut_statut']); |
$Utilisateur->setCongesPayes($_POST['ut_conges_payes']); |
$Utilisateur->setTempsDeTravailJour($_POST['ut_temps_de_travail_jour']); |
$Utilisateur->setTempsDeTravailMois($_POST['ut_temps_de_travail_mois']); |
$Utilisateur->setTdtLundi($_POST['ut_tdt_lundi']); |
$Utilisateur->setTdtMardi($_POST['ut_tdt_mardi']); |
$Utilisateur->setTdtMercredi($_POST['ut_tdt_mercredi']); |
$Utilisateur->setTdtJeudi($_POST['ut_tdt_jeudi']); |
$Utilisateur->setTdtVendredi($_POST['ut_tdt_vendredi']); |
$Utilisateur->setTdtSamedi($_POST['ut_tdt_samedi']); |
$Utilisateur->setTdtDimanche($_POST['ut_tdt_dimanche']); |
|
$Utilisateur->setQuotaHeuresSupp($_POST['ut_quota_heures_supp']); |
if (!isset($_POST['ut_mark_admin'])) { |
$_POST['ut_mark_admin'] = 0; |
} |
$Utilisateur->setMarkAdmin($_POST['ut_mark_admin']); |
if (!isset($_POST['ut_mark_recapitulatif'])) { |
$_POST['ut_mark_recapitulatif'] = 0; |
} |
$Utilisateur->setMarkRecapitulatif($_POST['ut_mark_recapitulatif']); |
|
$Utilisateur->modifier(); |
// Action suivante |
$this->setSuivant('__defaut__'); |
} |
|
public function executerSupprimer() |
{ |
$aso_admin_utilisateur = array(); |
// Vérif du nombre d'utilisateur admin (doit être supérieur à 1) |
$Utilisateur = new Utilisateur(); |
$nbre_admin = $Utilisateur->consulter(Utilisateur::GU_ADMIN); |
if (count($nbre_admin) > 1) { |
trigger_error('Utilisateur admin > 1 -> OK', E_USER_NOTICE); |
// Vérif des travail_projets |
$TravailProjet = new TravailProjet(); |
$bool_existe = $TravailProjet->consulter(TravailProjet::GTP_UTILISATEUR, array($_POST['utsu_id'])); |
if ($bool_existe == false) { |
trigger_error('TravailProjet -> OK', E_USER_NOTICE); |
// Vérif des absences |
$Absence = new Absence(); |
$bool_existe = $Absence->consulter(Absence::GA_ID_UTILISATEUR, array($_POST['utsu_id'])); |
if ($bool_existe == false) { |
trigger_error('Absence -> OK', E_USER_NOTICE); |
// Suppression de l'utilisateur |
$Utilisateur = new Utilisateur(); |
$Utilisateur->setIdUtilisateur($_POST['utsu_id']); |
if ($Utilisateur->supprimer()) { |
$aso_admin_utilisateur['messages'][] = "L'utilisateur a été supprimé."; |
} |
} |
} |
} else { |
$aso_admin_utilisateur['messages'][] = "Il n'est pas possible de supprimer le seul administrateur!"; |
} |
|
// Message d'erreur si l'utilisateur contient des données |
if (isset($bool_existe) && $bool_existe != false) { |
$aso_admin_utilisateur['messages'][] = "Il n'est pas possible de supprimer un utilisateur contenant des données!"; |
} |
|
// Enregistrement du message |
$this->getRegistre()->ajouterDonnee('admin_utilisateur', $aso_admin_utilisateur); |
|
// Action suivante |
$this->setSuivant('__defaut__'); |
} |
} |
?> |