Subversion Repositories Applications.gtt

Rev

Rev 48 | Rev 90 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

<?php
class GttCtrlActionAdminUtilisateur extends aControlleurAction {

        public function __construct(Registre $Registre)
        {
                $Registre->ajouterEspace('AdminUtilisateur', 'admin_utilisateur');
                $Registre->ajouterSquelette('admin_utilisateur', 'admin_utilisateur.tpl.html');
                $Registre->setTitre('Administrer les utilisateurs');
        }

        public function executer()
    {
        $aso_admin_utilisateur = array();

                // 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->getPrenom().' '.$u->getNom();
                        $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);
                        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);
                        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)
        {
                if (!preg_match('/^\w{6,}$/', $_POST['ut_mot_de_passe'])) {
                        $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_obligatoires = array('ut_nom' => 'Nom', 'ut_prenom' => 'Prénom', 'ut_email' => 'Courriel', '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'])) {
                        // 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();
                $UtilisateurMax = $Utilisateur->consulter(Utilisateur::GU_ID_MAX);
                $id_max = $UtilisateurMax->getIdUtilisateur();
                $Utilisateur->setIdUtilisateur(++$id_max);
                $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->setQuotaHeuresSupp($_POST['ut_quota_heures_supp']);
                $Utilisateur->setMarkAdmin($_POST['ut_mark_admin']);
                $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']);
                $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->setQuotaHeuresSupp($_POST['ut_quota_heures_supp']);
                $Utilisateur->setMarkAdmin($_POST['ut_mark_admin']);
                $Utilisateur->setMarkRecapitulatif($_POST['ut_mark_recapitulatif']);
        $Utilisateur->modifier();
                // Action suivante
        $this->setSuivant('__defaut__');
        }

    public function executerSupprimer()
    {
                // Suppression du statut d'utilisateur
                $Utilisateur = new Utilisateur();
                $Utilisateur->setIdUtilisateur($_POST['utsu_id']);
        $Utilisateur->supprimer();

                // TODO : Suppression des données de cet utilisateur

                // Action suivante
        $this->setSuivant('__defaut__');
    }
}
?>