<?php
class GttCtrlActionAdminUtilisateurStatut extends aControlleurAction {

	public function __construct(Registre $Registre)
	{
		$Registre->ajouterEspace('AdminUtilisateurStatut', 'admin_utilisateur_statut');
		$Registre->setTitre('Administrer les statuts des utilisateurs');
	}

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

		// Récupération des statuts d'utilisateur
		$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_us['statuts'][] = $aso_us;
    		}
    	}

    	//echo '<pre>'.print_r($aso_admin_us, true).'</pre>';
		$this->getRegistre()->ajouterDonnee('admin_utilisateur_statut', $aso_admin_us);
    }

    public function executerValiderAjouter()
    {
		// Ajout du statut d'utilisateur
		$UtilisateurStatut = new UtilisateurStatut();
		$bool_existe = $UtilisateurStatut->consulter(UtilisateurStatut::GUS_LIBELLE, array($_POST['usaj_libelle']));
		if ($bool_existe == false) {
			$UtilisateurStatut->setLibelle($_POST['usaj_libelle']);
    		$UtilisateurStatut->ajouter();
		} else {
			$aso_admin_us['message'] = 'Ce statut d\'utilisateur existe déjà !';
			$this->getRegistre()->ajouterDonnee('admin_utilisateur_statut', $aso_admin_us);
		}

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

    public function executerValiderSupprimer()
    {
		// Suppression du statut d'utilisateur
		$UtilisateurStatut = new UtilisateurStatut();
		$UtilisateurStatut->setIdUtilisateurStatut($_POST['ussu_id']);
    	$UtilisateurStatut->supprimer();

		// Mise à jour des utilisateurs possédant ce statut
		$Utilisateur = new Utilisateur();
		$tab_u = $Utilisateur->consulter(Utilisateur::GU_CE_STATUT, $_POST['ussu_id']);
		if ($tab_u != false) {
			foreach ($tab_u as $u) {
	    		$Ancien = clone $u;
	    		$u->setCeStatut(0);
	    		$u->modifier($Ancien);
	    	}
		}

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