package pack.validator;

import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.component.UIInput;
import javax.faces.context.FacesContext;
import javax.faces.validator.Validator;
import javax.faces.validator.ValidatorException;

import pack.dao.UtilisateurDao;
import pack.entities.Utilisateur;

public class AuthentificationValidator implements Validator {

	@EJB
	private UtilisateurDao utilisateurDao;
	private Utilisateur utilisateur;
	
	private static final String CHAMP_EMAIL = "composantEmail";
	
    private static final String MOTS_DE_PASSE_DIFFERENT = "Le mot de passe saisi non connu ";
	  private static final String CHAMP_MOT_DE_PASSE = "composantPassword";


@Override
public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException {
	
	
	/*
     * Récupération de l'attribut mot de passe parmi la liste des attributs
     * du composant confirmation
     */
    UIInput composantPassword = (UIInput) component.getAttributes().get( CHAMP_MOT_DE_PASSE);
    String pass= (String) composantPassword.getValue();
    
    UIInput composantEmail = (UIInput) component.getAttributes().get( CHAMP_EMAIL);
    String mail= (String) composantEmail.getValue();
    
 
    
    utilisateur= utilisateurDao.trouver(mail);
    
    if (utilisateur.getEmail()!=mail)
    {
    	throw new ValidatorException(
    		    
                new FacesMessage( FacesMessage.SEVERITY_ERROR, "mail non existant !", null ) );	
    	
    }
    
    else{
    	
    	if ( utilisateur.getMotDePasse()==pass) {
        
           
        }
        else
        {
        	throw new ValidatorException(
        
                new FacesMessage( FacesMessage.SEVERITY_ERROR, MOTS_DE_PASSE_DIFFERENT, null ) );	
        }
    	
    }
    
    
    

    
	
}
}