Subversion Repositories eFlore/Applications.coel

Rev

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

package org.tela_botanica.client.modeles;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;

import com.google.gwt.json.client.JSONObject;

public class Utilisateur extends aDonnee {

        private static final long serialVersionUID = -4016615552202089985L;
        
        public static final String PREFIXE = "cp";
        
        public Utilisateur() {
                initialiserUtilisateur(null, false);
        }

        public Utilisateur(String id, boolean identifie) {
                initialiserUtilisateur(id, identifie);
        }
        
        public Utilisateur(JSONObject utilisateur) {
                // l'objet JSON est une table de hachage
                Set<String> im = utilisateur.keySet();

                // Parcourt pour chaque clé
                for (Iterator<String> it = im.iterator(); it.hasNext();) {
                        // Si elle est associée à une valeur, nous l'ajoutons
                        String cle = it.next();
                        // Suppression de l'abréviation du champ. Inutile dans le contexte d'un objet
                        String cleObjet = cle.replaceFirst("^"+PREFIXE+"_", "");
                        // Valeur est vide par défaut
                        String valeur = "";
                        if (utilisateur.get(cle).isString() != null) {
                                valeur = utilisateur.get(cle).isString().stringValue();
                                this.set(cleObjet, valeur);
                        } else {
                                this.set(cleObjet, valeur);
                        }
                }
        }
        
        @Override
        protected String getPrefixe() {
                return PREFIXE;
        }

        private void initialiserUtilisateur(String id, boolean etreIdentifie) {
                setId(id);
                setIdentification(etreIdentifie);
        }
        
        
        // ID
        /**
         * Retourne l'id de l'utilisateur ou l'identifiant de session si la personne n'est pas identifiée.
         * @return String id de l'utilisateur
         */
        public String getId() {
                return renvoyerValeurCorrecte("id_personne");
        }
        public void setId(String id) {
                set("id_personne", id);
        }
        
        // NOM COMPLET
        /**
         * Retourne le nom complet et formaté de l'utilisateur
         * @return String nom complet
         */
        public String getNomComplet() {
                return renvoyerValeurCorrecte("fmt_nom_complet");
        }
        
        public void setNomComplet(String nom_complet) {
                set("fmt_nom_complet", nom_complet);
        }

        // PRÉNOM
        /**
         * Retourne le prénom de l'utilisateur
         * @return String prénom
         */
        public String getPrenom() {
                return renvoyerValeurCorrecte("prenom");
        }
        public void setPrenom(String prenom) {
                set("prenom", prenom);
        }
        
        // NOM
        /**
         * Retourne le nom de l'utilisateur
         * @return String nom
         */
        public String getNom() {
                return renvoyerValeurCorrecte("nom");
        }
        public void setNom(String nom) {
                set("nom", nom);
        }
        
        // LOGIN
        /**
         * Retourne le login de l'utilisateur ou l'identifiant de session si la personne n'est pas identifiée.
         * @return String login
         */
        public String getLogin() {
                return renvoyerValeurCorrecte("login");
        }
        public void setLogin(String l) {
                set("login", l);
        }
        
        // MOT DE PASSE
        /**
         * Retourne le mot de passe de l'utilisateur
         * @return String mot de passe
         */
        public String getMotDePasse() {
                return renvoyerValeurCorrecte("mot_de_passe");
        }
        public void setMotDePasse(String mdp) {
                set("mot_de_passe", mdp);
        }
        
        // PARAMÈTRE
        public String getParametre() {
                String xml = renvoyerValeurCorrecte("parametre");
                if (xml.equals("")) {
                        xml = "<?xml version='1.0' encoding='UTF-8'?>\n<parametres>\n</parametres>";
                }
                return xml;
        }
        public void setParametre(String param) {
                set("parametre", param);
        }
        
        // +---------------------------------------------------------------------------------------------------------------+
        // IDENTIFIÉ
        /**
         * Retourne vrai si utilisateur est identifié.
         * @return boolean
         */
        public boolean isIdentifie() {
                if (get("identifie").equals(true) && getLicence().equals("1"))  {
                        return true;
                }       else    {
                        return false;
                }
        }
        
        public void setIdentification(Boolean bool) {
                set("identifie", bool);
        }
        
        // EXISTE DANS ANNUAIRE
        /**
         * Renvoie si l'utilisateur est présent dans l'annuaire ou non
         * @return vrai s'il est présent
         */
        @SuppressWarnings("unchecked")
        public boolean existeDansAnnuaire()     {
                HashMap<String, String> infosAnnuaire = (HashMap<String, String>) get("infosAnnuaire");
                return !(infosAnnuaire == null || infosAnnuaire.size() == 0);
        }
        
        // INFOS DANS ANNUAIRE
        @SuppressWarnings("unchecked")
        public HashMap<String, String> getInfosAnnuaire() {
                if (existeDansAnnuaire())       {
                        return (HashMap<String, String>) get("infosAnnuaire");
                } else {
                        return null;
                }       
        }
        public void setInfosAnnuaire(JSONObject infosAnnuaire)  {
                // l'objet JSON est une table de hachage
                Set<String> im = infosAnnuaire.keySet();
                HashMap<String, String> mapAnnuaire = new HashMap<String, String>();
                
                // Parcourt pour chaque clé
                Iterator<String> it = im.iterator();
                while (it.hasNext()) {
                        String cle = it.next();
                        if (infosAnnuaire.get(cle).isString() != null) {
                                String valeur = infosAnnuaire.get(cle).isString().stringValue();
                                mapAnnuaire.put(cle, valeur);
                        }
                }
                
                if (mapAnnuaire.size() > 0)     {
                        this.set("infosAnnuaire", mapAnnuaire);
                }
        }
        public void majUtilisateurInfoAnnuaire()        {
                HashMap<String, String> infosAnnuaire = getInfosAnnuaire();
                setNom(infosAnnuaire.get("nom"));
                setPrenom(infosAnnuaire.get("prenom"));
                setLogin(infosAnnuaire.get("courriel"));
                setMotDePasse(infosAnnuaire.get("mot_de_passe"));
        }
        
        // LICENCE ACCEPTÉE
        public void setLicence(String licence)  {
                this.set("licenceAcceptee", licence);
        }
        
        public String getLicence()      {
                if (this.get("licenceAcceptee") != null)        {
                        return this.get("licenceAcceptee");
                } else {
                        return "";
                }
        }
}