<?php
//$Id$ 
//gen openMairie le 15/10/2010 15:55 
require_once ("../gen/obj/om_utilisateur.class.php");

class om_utilisateur extends om_utilisateur_gen {

    function om_utilisateur($id,&$db,$debug) {
        $this->constructeur($id,$db,$debug);
    }// fin constructeur

    function setvalF($val) {
        //
        parent::setvalF($val);

        /* Gestion des mises a jour du mot de passe */

        // si un mot de passe est soumis par formulaire
        if ($val["pwd"] != '') {

            // si le mot de passe contient une valeur 'valide' (!= "*****")
            if ($val["pwd"] != "*****") {

                // calcul du md5 et mise a jour dans la base
                $this->valF["pwd"] = md5($val["pwd"]);

            // si le mot de passe n'a pas ete modifie, aucune maj dans la base
            } else {
                unset($this->valF["pwd"]);
            }
        }
    }

    function cleSecondaire($id, &$db = NULL, $val = array(), $DEBUG = false) {
        // Initialisation de l'attribut correct a true
        $this->correct = true;
        // Recherche si le login a supprimer est identique au login de
        // l'utilisateur connecte
        $sql = "select * from ".DB_PREFIXE."om_utilisateur where om_utilisateur='".$id."'";
        $res = $db->query($sql);
        if (database::isError($res)) {
            $this->erreur_db($res->getDebugInfo(), $res->getMessage(), "");
        } else {
            //
            $row =& $res->fetchRow(DB_FETCHMODE_ASSOC);
            if ($row['login'] == $_SESSION ['login']) {
                $this->msg .= _("Vous ne pouvez pas supprimer votre utilisateur.")."<br/>";
                $this->correct = false;
            }
        }
        // Si la suppression n'est pas possible, on ajoute un message clair
        // pour l'utilisateur
        if ($this->correct == false) {
            $this->msg .= _("SUPPRESSION IMPOSSIBLE")."<br />";
        }
    }

    function setType(&$form,$maj) {
        //
        parent::setType($form, $maj);
        // Gestion du type d'utilisateur (DB ou LDAP)
        $form->setType("om_type", "hidden");
        // Test du MODE
        if ($maj == 0) {
            // Modes : AJOUTER
            // Gestion du mot de passe
            $form->setType("pwd", "password");
        } elseif ($maj == 1) {
            // Modes : AJOUTER
            // Gestion du mot de passe
            $form->setType("pwd", "password");
            // Gestion du login
            $form->setType("login", "hiddenstatic");
        }
        if ($maj < 2) { // ajouter et modifier
            $form->setType("instructeur", "checkbox");
        }
    }
    
    function setOnchange(&$form,$maj){
    // * mise en majuscule
    // * Put in capital letter
    parent::setOnchange($form,$maj);
        $form->setOnchange("nom","this.value=this.value.toUpperCase()");
    }

    function setVal(&$form,$maj,$validation,&$db,$DEBUG=null){
        //
        parent::setVal($form, $maj, $validation, $db, $DEBUG);
        //
        if ($validation == 0) {
            // Test du MODE
            if ($maj == 0) {
                // Mode : AJOUTER
                // Gestion du type d'utilisateur (DB ou LDAP)
                $form->setVal("om_type", "db");
            } else {
                // Modes : MODIFIER & SUPPRIMER
                // Gestion du mot de passe
                // Lié a setValF()
                $form->setVal('pwd', "*****");
            }
        }
    }

    function setValsousformulaire(&$form,$maj,$validation,$idxformulaire,$retourformulaire,$typeformulaire,&$db,$DEBUG=null){
        //
        parent::setValsousformulaire($form, $maj, $validation, $idxformulaire, $retourformulaire, $typeformulaire, $db, $DEBUG);
        //
        if ($validation == 0) {
            // Test du MODE
            if ($maj == 0) {
                // Mode : AJOUTER
                // Gestion du type d'utilisateur (DB ou LDAP)
                $form->setVal("om_type", "db");
            } else {
                // Modes : MODIFIER & SUPPRIMER
                // Gestion du mot de passe
                // Lié a setValF()
                $form->setVal("pwd", "*****");
            }
        }
    }
}// fin classe
?>
